]> git.sesse.net Git - vlc/blobdiff - plugins/gnome/gnome_callbacks.c
* Ported Glide and MGA plugins to the new module API. MGA never worked,
[vlc] / plugins / gnome / gnome_callbacks.c
index ce2ae4920f6182ea649b227500658a4e25485e18..53bb37631c4d6e9868a4ea5a904218b603190d1e 100644 (file)
@@ -20,6 +20,9 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
 
+#define MODULE_NAME gnome
+#include "modules_inner.h"
+
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
@@ -37,6 +40,7 @@
 
 #include "interface.h"
 #include "intf_plst.h"
+#include "intf_msg.h"
 
 #include "gnome_sys.h"
 #include "gnome_callbacks.h"
@@ -171,7 +175,7 @@ on_toolbar_play_clicked                (GtkButton       *button,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_PLAY );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
     }
 }
 
@@ -184,7 +188,7 @@ on_toolbar_pause_clicked               (GtkButton       *button,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_PAUSE );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_PAUSE );
     }
 }
 
@@ -244,7 +248,7 @@ on_popup_play_activate                 (GtkMenuItem     *menuitem,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_PLAY );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
     }
 }
 
@@ -257,7 +261,7 @@ on_popup_pause_activate                (GtkMenuItem     *menuitem,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_PAUSE );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_PAUSE );
     }
 }
 
@@ -379,7 +383,7 @@ on_popup_slow_activate                 (GtkMenuItem     *menuitem,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_SLOWER );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_SLOWER );
     }
 }
 
@@ -392,7 +396,7 @@ on_popup_fast_activate                 (GtkMenuItem     *menuitem,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_FASTER );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_FASTER );
     }
 }
 
@@ -405,7 +409,7 @@ on_toolbar_slow_clicked                (GtkButton       *button,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_SLOWER );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_SLOWER );
     }
 }
 
@@ -418,7 +422,7 @@ on_toolbar_fast_clicked                (GtkButton       *button,
 
     if( p_intf->p_input != NULL )
     {
-        input_SetRate( p_intf->p_input, INPUT_RATE_FASTER );
+        input_SetStatus( p_intf->p_input, INPUT_STATUS_FASTER );
     }
 }
 
@@ -431,15 +435,17 @@ on_hscale_button_release_event         (GtkWidget       *widget,
     intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
 
     GtkAdjustment *p_adj = gtk_range_get_adjustment( GTK_RANGE(widget) );
-    off_t i_seek = (p_adj->value * p_intf->p_input->stream.i_size) / 100;
+    off_t i_seek;
 
     vlc_mutex_lock( &p_intf->p_sys->change_lock );
 
-    p_intf->p_sys->b_scale_isfree = 1;
     if( p_intf->p_input != NULL )
     {
+        i_seek = (p_adj->value *
+                  p_intf->p_input->stream.pp_areas[0]->i_size) / 100;
         input_Seek( p_intf->p_input, i_seek );
     }
+    p_intf->p_sys->b_scale_isfree = 1;
 
     vlc_mutex_unlock( &p_intf->p_sys->change_lock );
 
@@ -526,3 +532,55 @@ on_menubar_modules_activate            (GtkMenuItem     *menuitem,
     gdk_window_raise( p_intf->p_sys->p_modules->window );
 }
 
+
+void
+on_intf_window_drag_data_received      (GtkWidget       *widget,
+                                        GdkDragContext  *drag_context,
+                                        gint             x,
+                                        gint             y,
+                                        GtkSelectionData *data,
+                                        guint            info,
+                                        guint            time,
+                                        gpointer         user_data)
+{
+    char *psz_text = data->data;
+    int i_len      = strlen( psz_text );
+
+    switch( info )
+    {
+    case DROP_ACCEPT_TEXT_PLAIN: /* FIXME: handle multiple files */
+
+        if( i_len < 1 )
+        {
+            return;
+        }
+
+        /* get rid of ' ' at the end */
+        *( psz_text + i_len - 1 ) = 0;
+
+        intf_WarnMsg( 1, "intf: dropped text/uri-list data `%s'", psz_text );
+        intf_PlstAdd( p_main->p_playlist, PLAYLIST_END, psz_text );
+
+        break;
+
+    case DROP_ACCEPT_TEXT_URI_LIST: /* FIXME: handle multiple files */
+
+        if( i_len < 2 )
+        {
+            return;
+        }
+
+        /* get rid of \r\n at the end */
+        *( psz_text + i_len - 2 ) = 0;
+
+        intf_WarnMsg( 1, "intf: dropped text/uri-list data `%s'", psz_text );
+        intf_PlstAdd( p_main->p_playlist, PLAYLIST_END, psz_text );
+        break;
+
+    default:
+
+        intf_ErrMsg( "intf error: unknown dropped type");
+        break;
+    }
+}
+