[SCM] gsequencer/upstream: fixed fully seekable

jkraehemann-guest at users.alioth.debian.org jkraehemann-guest at users.alioth.debian.org
Sun Jun 14 16:07:07 UTC 2015


The following commit has been merged in the upstream branch:
commit f06074d0bf6d8a314c468838c461ab405c05cc21
Author: Joël Krähemann <weedlight at gmail.com>
Date:   Thu Jun 11 22:36:12 2015 +0200

    fixed fully seekable

diff --git a/.deps/ags-ags_seekable.Po b/.deps/ags-ags_seekable.Po
index a8b26a8..e83a759 100644
--- a/.deps/ags-ags_seekable.Po
+++ b/.deps/ags-ags_seekable.Po
@@ -117,7 +117,8 @@ ags-ags_seekable.o: src/ags/object/ags_seekable.c \
  /usr/include/glib-2.0/gobject/gtypeplugin.h \
  /usr/include/glib-2.0/gobject/gvaluearray.h \
  /usr/include/glib-2.0/gobject/gvaluetypes.h \
- /usr/include/glib-2.0/gobject/gobject-autocleanups.h
+ /usr/include/glib-2.0/gobject/gobject-autocleanups.h \
+ src/ags/object/ags_marshal.h
 
 /usr/include/stdc-predef.h:
 
@@ -402,3 +403,5 @@ src/ags/object/ags_seekable.h:
 /usr/include/glib-2.0/gobject/gvaluetypes.h:
 
 /usr/include/glib-2.0/gobject/gobject-autocleanups.h:
+
+src/ags/object/ags_marshal.h:
diff --git a/src/ags/X/ags_editor.c b/src/ags/X/ags_editor.c
index 316d0ca..a4aa2a1 100644
--- a/src/ags/X/ags_editor.c
+++ b/src/ags/X/ags_editor.c
@@ -340,6 +340,7 @@ ags_editor_disconnect(AgsConnectable *connectable)
 void
 ags_editor_real_machine_changed(AgsEditor *editor, AgsMachine *machine)
 {
+  AgsWindow *window;
   guint pads;
 
   if(editor->selected_machine == machine){
@@ -349,9 +350,11 @@ ags_editor_real_machine_changed(AgsEditor *editor, AgsMachine *machine)
   editor->selected_machine = machine;
 
   if(machine == NULL){
+    ags_note_edit_set_map_height(editor->note_edit,
+				 0);
     return;
   }
-
+  
   editor->set_audio_channels_handler = g_signal_connect(machine->audio, "set-audio-channels\0",
 							G_CALLBACK(ags_editor_set_audio_channels_callback), editor);
   editor->set_pads_handler = g_signal_connect(machine->audio, "set-pads\0",
diff --git a/src/ags/X/ags_editor_callbacks.c b/src/ags/X/ags_editor_callbacks.c
index 8e8022e..1c735ff 100644
--- a/src/ags/X/ags_editor_callbacks.c
+++ b/src/ags/X/ags_editor_callbacks.c
@@ -114,27 +114,6 @@ void
 ags_editor_change_position_callback(AgsNavigation *navigation, gdouble tact,
 				    AgsEditor *editor)
 {
-  cairo_t *cr;
-  gdouble loop_start, loop_end;
-  gdouble position;
-
-  if(!gtk_toggle_button_get_active((GtkToggleButton *) navigation->scroll)){
-    return;
-  }
-
-  loop_start = gtk_spin_button_get_value(navigation->loop_left_tact);
-  loop_end = gtk_spin_button_get_value(navigation->loop_right_tact);
-
-  if(!gtk_toggle_button_get_active((GtkToggleButton *) navigation->loop) || tact <= loop_end){
-    position = tact * editor->note_edit->control_current.control_width;
-  }else{
-    position = loop_start * editor->note_edit->control_current.control_width;
-  }
-
-  /* scroll */
-  if(position - (0.125 * editor->note_edit->control_current.control_width) > 0.0){
-    gtk_range_set_value(GTK_RANGE(editor->note_edit->hscrollbar),
-			position - (0.125 * editor->note_edit->control_current.control_width));
-  }
+  //empty since no auto-scroll
 }
 
diff --git a/src/ags/X/ags_navigation.c b/src/ags/X/ags_navigation.c
index d156759..1cc197a 100644
--- a/src/ags/X/ags_navigation.c
+++ b/src/ags/X/ags_navigation.c
@@ -209,7 +209,7 @@ ags_navigation_init(AgsNavigation *navigation)
 
   navigation->current_bpm = 120.0;
 
-  navigation->rewind = (GtkToggleButton *) g_object_new(GTK_TYPE_TOGGLE_BUTTON,
+  navigation->rewind = (GtkToggleButton *) g_object_new(GTK_TYPE_BUTTON,
 							"image\0", (GtkWidget *) gtk_image_new_from_stock(GTK_STOCK_MEDIA_REWIND, GTK_ICON_SIZE_LARGE_TOOLBAR),
 							NULL);
   gtk_box_pack_start((GtkBox *) hbox, (GtkWidget *) navigation->rewind, FALSE, FALSE, 0);
@@ -234,7 +234,7 @@ ags_navigation_init(AgsNavigation *navigation)
 						NULL);
   gtk_box_pack_start((GtkBox *) hbox, (GtkWidget *) navigation->next, FALSE, FALSE, 0);
 
-  navigation->forward = (GtkToggleButton *) g_object_new(GTK_TYPE_TOGGLE_BUTTON,
+  navigation->forward = (GtkToggleButton *) g_object_new(GTK_TYPE_BUTTON,
 							 "image\0", (GtkWidget *) gtk_image_new_from_stock(GTK_STOCK_MEDIA_FORWARD, GTK_ICON_SIZE_LARGE_TOOLBAR),
 							 NULL);
   gtk_box_pack_start((GtkBox *) hbox, (GtkWidget *) navigation->forward, FALSE, FALSE, 0);
diff --git a/src/ags/X/editor/ags_machine_selection.c b/src/ags/X/editor/ags_machine_selection.c
index 9410546..4ba2e95 100644
--- a/src/ags/X/editor/ags_machine_selection.c
+++ b/src/ags/X/editor/ags_machine_selection.c
@@ -168,6 +168,7 @@ ags_machine_selection_run(AgsMachineSelection *machine_selection)
 
   gtk_widget_show_all((GtkWidget *) vbox);
 
+  //FIXME:JK: don't do this
   response = gtk_dialog_run(GTK_DIALOG(machine_selection));
 
   if(response == GTK_RESPONSE_ACCEPT){
diff --git a/src/ags/X/editor/ags_note_edit.c b/src/ags/X/editor/ags_note_edit.c
index bf81293..a206937 100644
--- a/src/ags/X/editor/ags_note_edit.c
+++ b/src/ags/X/editor/ags_note_edit.c
@@ -127,7 +127,7 @@ ags_note_edit_init(AgsNoteEdit *note_edit)
 
   note_edit->width = 0;
   note_edit->height = 0;
-  note_edit->map_width = AGS_NOTE_EDIT_MAX_CONTROLS * 64;
+  note_edit->map_width = AGS_NOTE_EDIT_MAX_CONTROLS * 16 * 64;
   note_edit->map_height = 78;
 
   note_edit->control_height = 14;
diff --git a/src/ags/X/editor/ags_note_edit_callbacks.c b/src/ags/X/editor/ags_note_edit_callbacks.c
index 01b4155..376a4d9 100644
--- a/src/ags/X/editor/ags_note_edit_callbacks.c
+++ b/src/ags/X/editor/ags_note_edit_callbacks.c
@@ -31,10 +31,17 @@ gboolean
 ags_note_edit_drawing_area_expose_event(GtkWidget *widget, GdkEventExpose *event, AgsNoteEdit *note_edit)
 {
   AgsEditor *editor;
-
+  guint width;
+  
   editor = (AgsEditor *) gtk_widget_get_ancestor(GTK_WIDGET(note_edit),
 						 AGS_TYPE_EDITOR);
 
+  width = widget->allocation.width;
+  gtk_adjustment_set_upper(GTK_RANGE(note_edit->hscrollbar)->adjustment,
+			   (gdouble) (note_edit->map_width - width));
+  gtk_adjustment_set_upper(note_edit->ruler->adjustment,
+			   (gdouble) (note_edit->map_width - width) / note_edit->control_current.control_width);
+  
   if(editor->selected_machine != NULL){
     AgsMachine *machine;
 
@@ -93,7 +100,7 @@ ags_note_edit_drawing_area_configure_event(GtkWidget *widget, GdkEventConfigure
 }
 
 gboolean
-ags_note_edit_drawing_area_button_press_event (GtkWidget *widget, GdkEventButton *event, AgsNoteEdit *note_edit)
+ags_note_edit_drawing_area_button_press_event(GtkWidget *widget, GdkEventButton *event, AgsNoteEdit *note_edit)
 {
   AgsMachine *machine;
   AgsEditor *editor;
diff --git a/src/ags/audio/recall/ags_count_beats_audio_run.c b/src/ags/audio/recall/ags_count_beats_audio_run.c
index a5f5756..3f3ee8d 100644
--- a/src/ags/audio/recall/ags_count_beats_audio_run.c
+++ b/src/ags/audio/recall/ags_count_beats_audio_run.c
@@ -204,6 +204,10 @@ ags_count_beats_audio_run_get_type()
 				&ags_countable_interface_info);
 
     g_type_add_interface_static(ags_type_count_beats_audio_run,
+				AGS_TYPE_SEEKABLE,
+				&ags_seekable_interface_info);
+
+    g_type_add_interface_static(ags_type_count_beats_audio_run,
 				AGS_TYPE_PLUGIN,
 				&ags_plugin_interface_info);
   }
@@ -664,20 +668,38 @@ ags_count_beats_audio_run_seek(AgsSeekable *seekable,
 			       guint steps,
 			       gboolean move_forward)
 {
+  AgsDevout *devout;
   AgsDelayAudio *delay_audio;
   AgsDelayAudioRun *delay_audio_run;
   AgsCountBeatsAudioRun *count_beats_audio_run;
-
+  gdouble delay;
+  guint seq_steps;
+  
   count_beats_audio_run = AGS_COUNT_BEATS_AUDIO_RUN(seekable);
   delay_audio_run = count_beats_audio_run->delay_audio_run;
   delay_audio = AGS_RECALL_AUDIO_RUN(delay_audio_run)->recall_audio;
+
+  devout = AGS_DEVOUT(AGS_RECALL(count_beats_audio_run)->devout);
+  
+  delay = devout->delay[devout->tic_counter];
+  seq_steps = (steps % (guint) delay_audio->sequencer_duration->port_value.ags_port_double);
   
   if(move_forward){
     count_beats_audio_run->notation_counter += steps;
-    count_beats_audio_run->sequencer_counter += (steps % (guint) delay_audio->sequencer_duration->port_value.ags_port_double);
+
+    if(delay * count_beats_audio_run->sequencer_counter + seq_steps < (guint) delay_audio->sequencer_duration->port_value.ags_port_double){
+      count_beats_audio_run->sequencer_counter += seq_steps / delay;
+    }else{
+      count_beats_audio_run->sequencer_counter = (guint) (seq_steps / delay + count_beats_audio_run->sequencer_counter) % (guint) (delay_audio->sequencer_duration->port_value.ags_port_double / delay);
+    }
   }else{
     count_beats_audio_run->notation_counter -= steps;
-    count_beats_audio_run->sequencer_counter -= (steps % (guint) delay_audio->sequencer_duration->port_value.ags_port_double);
+
+    if(delay * count_beats_audio_run->sequencer_counter - seq_steps >= 0){
+      count_beats_audio_run->sequencer_counter -= seq_steps / delay;
+    }else{
+      count_beats_audio_run->sequencer_counter = (guint) (delay_audio->sequencer_duration->port_value.ags_port_double / delay) - (seq_steps / delay - count_beats_audio_run->sequencer_counter);
+    }
   }
 }
 
diff --git a/src/ags/audio/task/ags_seek_devout.c b/src/ags/audio/task/ags_seek_devout.c
index 32da527..0e12926 100644
--- a/src/ags/audio/task/ags_seek_devout.c
+++ b/src/ags/audio/task/ags_seek_devout.c
@@ -154,7 +154,7 @@ ags_seek_devout_launch(AgsTask *task)
   audio = AGS_DEVOUT(seek_devout->devout)->audio;
 
   while(audio != NULL){
-    recall = AGS_AUDIO(audio->data)->recall;
+    recall = AGS_AUDIO(audio->data)->play;
 
     while(recall != NULL){
       if(AGS_IS_SEEKABLE(recall->data)){
diff --git a/src/ags/object/ags_marshal.c b/src/ags/object/ags_marshal.c
index 157b693..9218eb8 100644
--- a/src/ags/object/ags_marshal.c
+++ b/src/ags/object/ags_marshal.c
@@ -86,7 +86,44 @@ g_cclosure_user_marshal_ULONG__VOID (GClosure     *closure,
   g_value_set_ulong (return_value, v_return);
 }
 
-/* VOID:UINT,UINT (ags_marshallers.list:2) */
+/* VOID:UINT,BOOLEAN (ags_marshallers.list:2) */
+void
+g_cclosure_user_marshal_VOID__UINT_BOOLEAN (GClosure     *closure,
+                                            GValue       *return_value G_GNUC_UNUSED,
+                                            guint         n_param_values,
+                                            const GValue *param_values,
+                                            gpointer      invocation_hint G_GNUC_UNUSED,
+                                            gpointer      marshal_data)
+{
+  typedef void (*GMarshalFunc_VOID__UINT_BOOLEAN) (gpointer     data1,
+                                                   guint        arg_1,
+                                                   gboolean     arg_2,
+                                                   gpointer     data2);
+  register GMarshalFunc_VOID__UINT_BOOLEAN callback;
+  register GCClosure *cc = (GCClosure*) closure;
+  register gpointer data1, data2;
+
+  g_return_if_fail (n_param_values == 3);
+
+  if (G_CCLOSURE_SWAP_DATA (closure))
+    {
+      data1 = closure->data;
+      data2 = g_value_peek_pointer (param_values + 0);
+    }
+  else
+    {
+      data1 = g_value_peek_pointer (param_values + 0);
+      data2 = closure->data;
+    }
+  callback = (GMarshalFunc_VOID__UINT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+  callback (data1,
+            g_marshal_value_peek_uint (param_values + 1),
+            g_marshal_value_peek_boolean (param_values + 2),
+            data2);
+}
+
+/* VOID:UINT,UINT (ags_marshallers.list:3) */
 void
 g_cclosure_user_marshal_VOID__UINT_UINT (GClosure     *closure,
                                          GValue       *return_value G_GNUC_UNUSED,
@@ -123,7 +160,7 @@ g_cclosure_user_marshal_VOID__UINT_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:UINT,UINT,UINT (ags_marshallers.list:3) */
+/* VOID:UINT,UINT,UINT (ags_marshallers.list:4) */
 void
 g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
                                               GValue       *return_value G_GNUC_UNUSED,
@@ -162,7 +199,7 @@ g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:UINT,DOUBLE,UINT (ags_marshallers.list:4) */
+/* VOID:UINT,DOUBLE,UINT (ags_marshallers.list:5) */
 void
 g_cclosure_user_marshal_VOID__UINT_DOUBLE_UINT (GClosure     *closure,
                                                 GValue       *return_value G_GNUC_UNUSED,
@@ -201,7 +238,7 @@ g_cclosure_user_marshal_VOID__UINT_DOUBLE_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:UINT,INT (ags_marshallers.list:5) */
+/* VOID:UINT,INT (ags_marshallers.list:6) */
 void
 g_cclosure_user_marshal_VOID__UINT_INT (GClosure     *closure,
                                         GValue       *return_value G_GNUC_UNUSED,
@@ -238,7 +275,7 @@ g_cclosure_user_marshal_VOID__UINT_INT (GClosure     *closure,
             data2);
 }
 
-/* VOID:UINT,DOUBLE (ags_marshallers.list:6) */
+/* VOID:UINT,DOUBLE (ags_marshallers.list:7) */
 void
 g_cclosure_user_marshal_VOID__UINT_DOUBLE (GClosure     *closure,
                                            GValue       *return_value G_GNUC_UNUSED,
@@ -275,7 +312,7 @@ g_cclosure_user_marshal_VOID__UINT_DOUBLE (GClosure     *closure,
             data2);
 }
 
-/* VOID:ULONG,UINT (ags_marshallers.list:7) */
+/* VOID:ULONG,UINT (ags_marshallers.list:8) */
 void
 g_cclosure_user_marshal_VOID__ULONG_UINT (GClosure     *closure,
                                           GValue       *return_value G_GNUC_UNUSED,
@@ -312,7 +349,7 @@ g_cclosure_user_marshal_VOID__ULONG_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:DOUBLE,DOUBLE (ags_marshallers.list:8) */
+/* VOID:DOUBLE,DOUBLE (ags_marshallers.list:9) */
 void
 g_cclosure_user_marshal_VOID__DOUBLE_DOUBLE (GClosure     *closure,
                                              GValue       *return_value G_GNUC_UNUSED,
@@ -349,7 +386,7 @@ g_cclosure_user_marshal_VOID__DOUBLE_DOUBLE (GClosure     *closure,
             data2);
 }
 
-/* VOID:ULONG,UINT,UINT (ags_marshallers.list:9) */
+/* VOID:ULONG,UINT,UINT (ags_marshallers.list:10) */
 void
 g_cclosure_user_marshal_VOID__ULONG_UINT_UINT (GClosure     *closure,
                                                GValue       *return_value G_GNUC_UNUSED,
@@ -388,7 +425,7 @@ g_cclosure_user_marshal_VOID__ULONG_UINT_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:STRING,UINT (ags_marshallers.list:10) */
+/* VOID:STRING,UINT (ags_marshallers.list:11) */
 void
 g_cclosure_user_marshal_VOID__STRING_UINT (GClosure     *closure,
                                            GValue       *return_value G_GNUC_UNUSED,
@@ -425,7 +462,7 @@ g_cclosure_user_marshal_VOID__STRING_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:STRING,POINTER (ags_marshallers.list:11) */
+/* VOID:STRING,POINTER (ags_marshallers.list:12) */
 void
 g_cclosure_user_marshal_VOID__STRING_POINTER (GClosure     *closure,
                                               GValue       *return_value G_GNUC_UNUSED,
@@ -462,7 +499,7 @@ g_cclosure_user_marshal_VOID__STRING_POINTER (GClosure     *closure,
             data2);
 }
 
-/* VOID:OBJECT,UINT (ags_marshallers.list:12) */
+/* VOID:OBJECT,UINT (ags_marshallers.list:13) */
 void
 g_cclosure_user_marshal_VOID__OBJECT_UINT (GClosure     *closure,
                                            GValue       *return_value G_GNUC_UNUSED,
@@ -499,7 +536,7 @@ g_cclosure_user_marshal_VOID__OBJECT_UINT (GClosure     *closure,
             data2);
 }
 
-/* VOID:OBJECT,OBJECT (ags_marshallers.list:13) */
+/* VOID:OBJECT,OBJECT (ags_marshallers.list:14) */
 void
 g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure     *closure,
                                              GValue       *return_value G_GNUC_UNUSED,
@@ -536,7 +573,7 @@ g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure     *closure,
             data2);
 }
 
-/* VOID:OBJECT,OBJECT,OBJECT,INT,BOOLEAN (ags_marshallers.list:14) */
+/* VOID:OBJECT,OBJECT,OBJECT,INT,BOOLEAN (ags_marshallers.list:15) */
 void
 g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_INT_BOOLEAN (GClosure     *closure,
                                                                 GValue       *return_value G_GNUC_UNUSED,
@@ -579,7 +616,7 @@ g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_INT_BOOLEAN (GClosure     *cl
             data2);
 }
 
-/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,UINT,INT,BOOLEAN (ags_marshallers.list:15) */
+/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,UINT,INT,BOOLEAN (ags_marshallers.list:16) */
 void
 g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_UINT_INT_BOOLEAN (GClosure     *closure,
                                                                                           GValue       *return_value G_GNUC_UNUSED,
@@ -630,7 +667,7 @@ g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_UINT_INT
             data2);
 }
 
-/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT (ags_marshallers.list:16) */
+/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT (ags_marshallers.list:17) */
 void
 g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT (GClosure     *closure,
                                                                                        GValue       *return_value G_GNUC_UNUSED,
@@ -679,7 +716,7 @@ g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_O
             data2);
 }
 
-/* BOOLEAN:OBJECT,OBJECT (ags_marshallers.list:17) */
+/* BOOLEAN:OBJECT,OBJECT (ags_marshallers.list:18) */
 void
 g_cclosure_user_marshal_BOOLEAN__OBJECT_OBJECT (GClosure     *closure,
                                                 GValue       *return_value G_GNUC_UNUSED,
@@ -720,7 +757,7 @@ g_cclosure_user_marshal_BOOLEAN__OBJECT_OBJECT (GClosure     *closure,
   g_value_set_boolean (return_value, v_return);
 }
 
-/* STRING:ULONG,STRING,STRING,STRING,STRING,UINT,POINTER (ags_marshallers.list:18) */
+/* STRING:ULONG,STRING,STRING,STRING,STRING,UINT,POINTER (ags_marshallers.list:19) */
 void
 g_cclosure_user_marshal_STRING__ULONG_STRING_STRING_STRING_STRING_UINT_POINTER (GClosure     *closure,
                                                                                 GValue       *return_value G_GNUC_UNUSED,
@@ -771,7 +808,7 @@ g_cclosure_user_marshal_STRING__ULONG_STRING_STRING_STRING_STRING_UINT_POINTER (
   g_value_take_string (return_value, v_return);
 }
 
-/* POINTER:VOID (ags_marshallers.list:19) */
+/* POINTER:VOID (ags_marshallers.list:20) */
 void
 g_cclosure_user_marshal_POINTER__VOID (GClosure     *closure,
                                        GValue       *return_value G_GNUC_UNUSED,
@@ -808,7 +845,7 @@ g_cclosure_user_marshal_POINTER__VOID (GClosure     *closure,
   g_value_set_pointer (return_value, v_return);
 }
 
-/* OBJECT:VOID (ags_marshallers.list:20) */
+/* OBJECT:VOID (ags_marshallers.list:21) */
 void
 g_cclosure_user_marshal_OBJECT__VOID (GClosure     *closure,
                                       GValue       *return_value G_GNUC_UNUSED,
@@ -845,7 +882,7 @@ g_cclosure_user_marshal_OBJECT__VOID (GClosure     *closure,
   g_value_take_object (return_value, v_return);
 }
 
-/* OBJECT:STRING,STRING,STRING (ags_marshallers.list:21) */
+/* OBJECT:STRING,STRING,STRING (ags_marshallers.list:22) */
 void
 g_cclosure_user_marshal_OBJECT__STRING_STRING_STRING (GClosure     *closure,
                                                       GValue       *return_value G_GNUC_UNUSED,
@@ -888,7 +925,7 @@ g_cclosure_user_marshal_OBJECT__STRING_STRING_STRING (GClosure     *closure,
   g_value_take_object (return_value, v_return);
 }
 
-/* OBJECT:OBJECT,POINTER,POINTER (ags_marshallers.list:22) */
+/* OBJECT:OBJECT,POINTER,POINTER (ags_marshallers.list:23) */
 void
 g_cclosure_user_marshal_OBJECT__OBJECT_POINTER_POINTER (GClosure     *closure,
                                                         GValue       *return_value G_GNUC_UNUSED,
@@ -931,7 +968,7 @@ g_cclosure_user_marshal_OBJECT__OBJECT_POINTER_POINTER (GClosure     *closure,
   g_value_take_object (return_value, v_return);
 }
 
-/* OBJECT:OBJECT,OBJECT (ags_marshallers.list:23) */
+/* OBJECT:OBJECT,OBJECT (ags_marshallers.list:24) */
 void
 g_cclosure_user_marshal_OBJECT__OBJECT_OBJECT (GClosure     *closure,
                                                GValue       *return_value G_GNUC_UNUSED,
diff --git a/src/ags/object/ags_marshal.h b/src/ags/object/ags_marshal.h
index d2085d7..422cf6d 100644
--- a/src/ags/object/ags_marshal.h
+++ b/src/ags/object/ags_marshal.h
@@ -14,7 +14,15 @@ extern void g_cclosure_user_marshal_ULONG__VOID (GClosure     *closure,
                                                  gpointer      invocation_hint,
                                                  gpointer      marshal_data);
 
-/* VOID:UINT,UINT (ags_marshallers.list:2) */
+/* VOID:UINT,BOOLEAN (ags_marshallers.list:2) */
+extern void g_cclosure_user_marshal_VOID__UINT_BOOLEAN (GClosure     *closure,
+                                                        GValue       *return_value,
+                                                        guint         n_param_values,
+                                                        const GValue *param_values,
+                                                        gpointer      invocation_hint,
+                                                        gpointer      marshal_data);
+
+/* VOID:UINT,UINT (ags_marshallers.list:3) */
 extern void g_cclosure_user_marshal_VOID__UINT_UINT (GClosure     *closure,
                                                      GValue       *return_value,
                                                      guint         n_param_values,
@@ -22,7 +30,7 @@ extern void g_cclosure_user_marshal_VOID__UINT_UINT (GClosure     *closure,
                                                      gpointer      invocation_hint,
                                                      gpointer      marshal_data);
 
-/* VOID:UINT,UINT,UINT (ags_marshallers.list:3) */
+/* VOID:UINT,UINT,UINT (ags_marshallers.list:4) */
 extern void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
                                                           GValue       *return_value,
                                                           guint         n_param_values,
@@ -30,7 +38,7 @@ extern void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure     *closure,
                                                           gpointer      invocation_hint,
                                                           gpointer      marshal_data);
 
-/* VOID:UINT,DOUBLE,UINT (ags_marshallers.list:4) */
+/* VOID:UINT,DOUBLE,UINT (ags_marshallers.list:5) */
 extern void g_cclosure_user_marshal_VOID__UINT_DOUBLE_UINT (GClosure     *closure,
                                                             GValue       *return_value,
                                                             guint         n_param_values,
@@ -38,7 +46,7 @@ extern void g_cclosure_user_marshal_VOID__UINT_DOUBLE_UINT (GClosure     *closur
                                                             gpointer      invocation_hint,
                                                             gpointer      marshal_data);
 
-/* VOID:UINT,INT (ags_marshallers.list:5) */
+/* VOID:UINT,INT (ags_marshallers.list:6) */
 extern void g_cclosure_user_marshal_VOID__UINT_INT (GClosure     *closure,
                                                     GValue       *return_value,
                                                     guint         n_param_values,
@@ -46,7 +54,7 @@ extern void g_cclosure_user_marshal_VOID__UINT_INT (GClosure     *closure,
                                                     gpointer      invocation_hint,
                                                     gpointer      marshal_data);
 
-/* VOID:UINT,DOUBLE (ags_marshallers.list:6) */
+/* VOID:UINT,DOUBLE (ags_marshallers.list:7) */
 extern void g_cclosure_user_marshal_VOID__UINT_DOUBLE (GClosure     *closure,
                                                        GValue       *return_value,
                                                        guint         n_param_values,
@@ -54,7 +62,7 @@ extern void g_cclosure_user_marshal_VOID__UINT_DOUBLE (GClosure     *closure,
                                                        gpointer      invocation_hint,
                                                        gpointer      marshal_data);
 
-/* VOID:ULONG,UINT (ags_marshallers.list:7) */
+/* VOID:ULONG,UINT (ags_marshallers.list:8) */
 extern void g_cclosure_user_marshal_VOID__ULONG_UINT (GClosure     *closure,
                                                       GValue       *return_value,
                                                       guint         n_param_values,
@@ -62,7 +70,7 @@ extern void g_cclosure_user_marshal_VOID__ULONG_UINT (GClosure     *closure,
                                                       gpointer      invocation_hint,
                                                       gpointer      marshal_data);
 
-/* VOID:DOUBLE,DOUBLE (ags_marshallers.list:8) */
+/* VOID:DOUBLE,DOUBLE (ags_marshallers.list:9) */
 extern void g_cclosure_user_marshal_VOID__DOUBLE_DOUBLE (GClosure     *closure,
                                                          GValue       *return_value,
                                                          guint         n_param_values,
@@ -70,7 +78,7 @@ extern void g_cclosure_user_marshal_VOID__DOUBLE_DOUBLE (GClosure     *closure,
                                                          gpointer      invocation_hint,
                                                          gpointer      marshal_data);
 
-/* VOID:ULONG,UINT,UINT (ags_marshallers.list:9) */
+/* VOID:ULONG,UINT,UINT (ags_marshallers.list:10) */
 extern void g_cclosure_user_marshal_VOID__ULONG_UINT_UINT (GClosure     *closure,
                                                            GValue       *return_value,
                                                            guint         n_param_values,
@@ -78,7 +86,7 @@ extern void g_cclosure_user_marshal_VOID__ULONG_UINT_UINT (GClosure     *closure
                                                            gpointer      invocation_hint,
                                                            gpointer      marshal_data);
 
-/* VOID:STRING,UINT (ags_marshallers.list:10) */
+/* VOID:STRING,UINT (ags_marshallers.list:11) */
 extern void g_cclosure_user_marshal_VOID__STRING_UINT (GClosure     *closure,
                                                        GValue       *return_value,
                                                        guint         n_param_values,
@@ -86,7 +94,7 @@ extern void g_cclosure_user_marshal_VOID__STRING_UINT (GClosure     *closure,
                                                        gpointer      invocation_hint,
                                                        gpointer      marshal_data);
 
-/* VOID:STRING,POINTER (ags_marshallers.list:11) */
+/* VOID:STRING,POINTER (ags_marshallers.list:12) */
 extern void g_cclosure_user_marshal_VOID__STRING_POINTER (GClosure     *closure,
                                                           GValue       *return_value,
                                                           guint         n_param_values,
@@ -94,7 +102,7 @@ extern void g_cclosure_user_marshal_VOID__STRING_POINTER (GClosure     *closure,
                                                           gpointer      invocation_hint,
                                                           gpointer      marshal_data);
 
-/* VOID:OBJECT,UINT (ags_marshallers.list:12) */
+/* VOID:OBJECT,UINT (ags_marshallers.list:13) */
 extern void g_cclosure_user_marshal_VOID__OBJECT_UINT (GClosure     *closure,
                                                        GValue       *return_value,
                                                        guint         n_param_values,
@@ -102,7 +110,7 @@ extern void g_cclosure_user_marshal_VOID__OBJECT_UINT (GClosure     *closure,
                                                        gpointer      invocation_hint,
                                                        gpointer      marshal_data);
 
-/* VOID:OBJECT,OBJECT (ags_marshallers.list:13) */
+/* VOID:OBJECT,OBJECT (ags_marshallers.list:14) */
 extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure     *closure,
                                                          GValue       *return_value,
                                                          guint         n_param_values,
@@ -110,7 +118,7 @@ extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT (GClosure     *closure,
                                                          gpointer      invocation_hint,
                                                          gpointer      marshal_data);
 
-/* VOID:OBJECT,OBJECT,OBJECT,INT,BOOLEAN (ags_marshallers.list:14) */
+/* VOID:OBJECT,OBJECT,OBJECT,INT,BOOLEAN (ags_marshallers.list:15) */
 extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_INT_BOOLEAN (GClosure     *closure,
                                                                             GValue       *return_value,
                                                                             guint         n_param_values,
@@ -118,7 +126,7 @@ extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_INT_BOOLEAN (GClo
                                                                             gpointer      invocation_hint,
                                                                             gpointer      marshal_data);
 
-/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,UINT,INT,BOOLEAN (ags_marshallers.list:15) */
+/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,UINT,INT,BOOLEAN (ags_marshallers.list:16) */
 extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_UINT_INT_BOOLEAN (GClosure     *closure,
                                                                                                       GValue       *return_value,
                                                                                                       guint         n_param_values,
@@ -126,7 +134,7 @@ extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJ
                                                                                                       gpointer      invocation_hint,
                                                                                                       gpointer      marshal_data);
 
-/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT (ags_marshallers.list:16) */
+/* VOID:OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT,OBJECT (ags_marshallers.list:17) */
 extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJECT (GClosure     *closure,
                                                                                                    GValue       *return_value,
                                                                                                    guint         n_param_values,
@@ -134,7 +142,7 @@ extern void g_cclosure_user_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT_OBJECT_OBJ
                                                                                                    gpointer      invocation_hint,
                                                                                                    gpointer      marshal_data);
 
-/* BOOLEAN:OBJECT,OBJECT (ags_marshallers.list:17) */
+/* BOOLEAN:OBJECT,OBJECT (ags_marshallers.list:18) */
 extern void g_cclosure_user_marshal_BOOLEAN__OBJECT_OBJECT (GClosure     *closure,
                                                             GValue       *return_value,
                                                             guint         n_param_values,
@@ -142,7 +150,7 @@ extern void g_cclosure_user_marshal_BOOLEAN__OBJECT_OBJECT (GClosure     *closur
                                                             gpointer      invocation_hint,
                                                             gpointer      marshal_data);
 
-/* STRING:ULONG,STRING,STRING,STRING,STRING,UINT,POINTER (ags_marshallers.list:18) */
+/* STRING:ULONG,STRING,STRING,STRING,STRING,UINT,POINTER (ags_marshallers.list:19) */
 extern void g_cclosure_user_marshal_STRING__ULONG_STRING_STRING_STRING_STRING_UINT_POINTER (GClosure     *closure,
                                                                                             GValue       *return_value,
                                                                                             guint         n_param_values,
@@ -150,7 +158,7 @@ extern void g_cclosure_user_marshal_STRING__ULONG_STRING_STRING_STRING_STRING_UI
                                                                                             gpointer      invocation_hint,
                                                                                             gpointer      marshal_data);
 
-/* POINTER:VOID (ags_marshallers.list:19) */
+/* POINTER:VOID (ags_marshallers.list:20) */
 extern void g_cclosure_user_marshal_POINTER__VOID (GClosure     *closure,
                                                    GValue       *return_value,
                                                    guint         n_param_values,
@@ -158,7 +166,7 @@ extern void g_cclosure_user_marshal_POINTER__VOID (GClosure     *closure,
                                                    gpointer      invocation_hint,
                                                    gpointer      marshal_data);
 
-/* OBJECT:VOID (ags_marshallers.list:20) */
+/* OBJECT:VOID (ags_marshallers.list:21) */
 extern void g_cclosure_user_marshal_OBJECT__VOID (GClosure     *closure,
                                                   GValue       *return_value,
                                                   guint         n_param_values,
@@ -166,7 +174,7 @@ extern void g_cclosure_user_marshal_OBJECT__VOID (GClosure     *closure,
                                                   gpointer      invocation_hint,
                                                   gpointer      marshal_data);
 
-/* OBJECT:STRING,STRING,STRING (ags_marshallers.list:21) */
+/* OBJECT:STRING,STRING,STRING (ags_marshallers.list:22) */
 extern void g_cclosure_user_marshal_OBJECT__STRING_STRING_STRING (GClosure     *closure,
                                                                   GValue       *return_value,
                                                                   guint         n_param_values,
@@ -174,7 +182,7 @@ extern void g_cclosure_user_marshal_OBJECT__STRING_STRING_STRING (GClosure     *
                                                                   gpointer      invocation_hint,
                                                                   gpointer      marshal_data);
 
-/* OBJECT:OBJECT,POINTER,POINTER (ags_marshallers.list:22) */
+/* OBJECT:OBJECT,POINTER,POINTER (ags_marshallers.list:23) */
 extern void g_cclosure_user_marshal_OBJECT__OBJECT_POINTER_POINTER (GClosure     *closure,
                                                                     GValue       *return_value,
                                                                     guint         n_param_values,
@@ -182,7 +190,7 @@ extern void g_cclosure_user_marshal_OBJECT__OBJECT_POINTER_POINTER (GClosure
                                                                     gpointer      invocation_hint,
                                                                     gpointer      marshal_data);
 
-/* OBJECT:OBJECT,OBJECT (ags_marshallers.list:23) */
+/* OBJECT:OBJECT,OBJECT (ags_marshallers.list:24) */
 extern void g_cclosure_user_marshal_OBJECT__OBJECT_OBJECT (GClosure     *closure,
                                                            GValue       *return_value,
                                                            guint         n_param_values,
diff --git a/src/ags/object/ags_marshallers.list b/src/ags/object/ags_marshallers.list
index ce088a2..903ae53 100644
--- a/src/ags/object/ags_marshallers.list
+++ b/src/ags/object/ags_marshallers.list
@@ -1,4 +1,5 @@
 ULONG:VOID
+VOID:UINT,BOOLEAN
 VOID:UINT,UINT
 VOID:UINT,UINT,UINT
 VOID:UINT,DOUBLE,UINT
diff --git a/src/ags/object/ags_seekable.c b/src/ags/object/ags_seekable.c
index b33ac7b..fb486b3 100644
--- a/src/ags/object/ags_seekable.c
+++ b/src/ags/object/ags_seekable.c
@@ -18,26 +18,47 @@
 
 #include <ags/object/ags_seekable.h>
 
-void ags_seekable_base_init(AgsSeekableInterface *interface);
+#include <ags/object/ags_marshal.h>
+
+void ags_seekable_class_init(AgsSeekableInterface *interface);
 
 GType
 ags_seekable_get_type()
 {
-  static GType ags_type_seekable = 0;
-
-  if(!ags_type_seekable){
-    static const GTypeInfo ags_seekable_info = {
-      sizeof(AgsSeekableInterface),
-      (GBaseInitFunc) ags_seekable_base_init,
-      NULL, /* base_finalize */
-    };
-
-    ags_type_seekable = g_type_register_static(G_TYPE_INTERFACE,
-					       "AgsSeekable\0", &ags_seekable_info,
-					       0);
+  static GType seekable_type = 0;
+
+  if(!seekable_type){
+    seekable_type = g_type_register_static_simple (G_TYPE_INTERFACE,
+						   "AgsSeekable\0",
+						   sizeof (AgsSeekableInterface),
+						   (GClassInitFunc) ags_seekable_class_init,
+						   0, NULL, 0);
   }
+  
+  return seekable_type;
+}
 
-  return(ags_type_seekable);
+void
+ags_seekable_class_init(AgsSeekableInterface *interface)
+{
+  /**
+   * AgsSeekable::seek:
+   * @seekable: the object
+   * @steps: relative seeking
+   * @forward: direction to seek, if %TRUE seek forward
+   *
+   * The ::seek signal notifies about changed position
+   * of sequencer.
+   */
+  g_signal_new("seek\0",
+	       G_TYPE_FROM_INTERFACE(interface),
+	       G_SIGNAL_RUN_LAST,
+	       G_STRUCT_OFFSET(AgsSeekableInterface, seek),
+	       NULL, NULL,
+	       g_cclosure_user_marshal_VOID__UINT_BOOLEAN,
+	       G_TYPE_NONE, 2,
+	       G_TYPE_UINT,
+	       G_TYPE_BOOLEAN);
 }
 
 void

-- 
gsequencer packaging



More information about the pkg-multimedia-commits mailing list