[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