Hello community, here is the log from the commit of package gsequencer for openSUSE:Factory checked in at 2018-06-22 13:35:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gsequencer (Old) and /work/SRC/openSUSE:Factory/.gsequencer.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gsequencer" Fri Jun 22 13:35:48 2018 rev:14 rq:618308 version:1.4.32 Changes: -------- --- /work/SRC/openSUSE:Factory/gsequencer/gsequencer.changes 2018-05-13 16:06:50.566440645 +0200 +++ /work/SRC/openSUSE:Factory/.gsequencer.new/gsequencer.changes 2018-06-22 13:35:53.017540650 +0200 @@ -1,0 +2,6 @@ +Thu Jun 21 10:38:57 UTC 2018 - [email protected] + +- new upstream v1.4.32 fixed seeking position and improved object + references. + +------------------------------------------------------------------- Old: ---- gsequencer-1.4.31.tar.gz New: ---- gsequencer-1.4.32.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gsequencer.spec ++++++ --- /var/tmp/diff_new_pack.awvENo/_old 2018-06-22 13:35:54.649480321 +0200 +++ /var/tmp/diff_new_pack.awvENo/_new 2018-06-22 13:35:54.653480173 +0200 @@ -18,7 +18,7 @@ %define libagssonumber 1 %define libgsequencersonumber 0 Name: gsequencer -Version: 1.4.31 +Version: 1.4.32 Release: 0 Summary: Audio processing engine License: GPL-3.0+ AND AGPL-3.0+ AND GFDL-1.3 ++++++ gsequencer-1.4.31.tar.gz -> gsequencer-1.4.32.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ChangeLog new/gsequencer-1.4.32/ChangeLog --- old/gsequencer-1.4.31/ChangeLog 2018-05-10 23:35:34.000000000 +0200 +++ new/gsequencer-1.4.32/ChangeLog 2018-06-21 07:37:21.000000000 +0200 @@ -1,3 +1,16 @@ +ags (1.4.32) + + [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ] + * reworked CoreAudio output + * improved mutex locks in ags_navigation_callbacks.c + * improved midi2xml.1.xml to do file attribution + * improved midi2xml to output usage as no parameter was given + * fixed wrong loop condition in ags_apply_presets.c + * fixed unsafe reference count in ags_audio.c and ags_channel.c + * fixed wrong reference count in ags_recycling_context.c + * fixed AgsSeekSoundcard to use recall context + * fixed AgsSeekSoundcard to use correct mutex variable + ags (1.4.31) [ Joël Krähemann (Maintainer of Advanced Gtk+ Sequencer) ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/X/ags_menu_action_callbacks.c new/gsequencer-1.4.32/ags/X/ags_menu_action_callbacks.c --- old/gsequencer-1.4.31/ags/X/ags_menu_action_callbacks.c 2018-03-04 20:27:35.000000000 +0100 +++ new/gsequencer-1.4.32/ags/X/ags_menu_action_callbacks.c 2018-06-17 20:55:40.000000000 +0200 @@ -53,7 +53,9 @@ #include <stdio.h> #include <sys/stat.h> +#ifndef AGS_WITH_QUARTZ #include <X11/Xlib.h> +#endif void ags_menu_action_open_response_callback(GtkFileChooserDialog *file_chooser, gint response, gpointer data); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/X/ags_navigation_callbacks.c new/gsequencer-1.4.32/ags/X/ags_navigation_callbacks.c --- old/gsequencer-1.4.31/ags/X/ags_navigation_callbacks.c 2018-03-04 20:27:35.000000000 +0100 +++ new/gsequencer-1.4.32/ags/X/ags_navigation_callbacks.c 2018-06-21 07:04:52.000000000 +0200 @@ -114,11 +114,36 @@ AgsNavigation *navigation) { AgsWindow *window; + + AgsMutexManager *mutex_manager; + + gdouble note_offset; gdouble tact; + pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; + + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); - tact = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)) / 16.0; + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + + /* move */ + pthread_mutex_lock(soundcard_mutex); + + note_offset = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)); + + pthread_mutex_unlock(soundcard_mutex); + + tact = note_offset / 16.0; gtk_spin_button_set_value(navigation->position_tact, tact + @@ -130,11 +155,36 @@ AgsNavigation *navigation) { AgsWindow *window; + + AgsMutexManager *mutex_manager; + + gdouble note_offset; gdouble tact; + pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; + + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); - tact = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)) / 16.0; + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + + /* move */ + pthread_mutex_lock(soundcard_mutex); + + note_offset = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)); + + pthread_mutex_unlock(soundcard_mutex); + + tact = note_offset / 16.0; gtk_spin_button_set_value(navigation->position_tact, tact + @@ -243,11 +293,36 @@ AgsNavigation *navigation) { AgsWindow *window; + + AgsMutexManager *mutex_manager; + + gdouble note_offset; gdouble tact; + pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; + + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); - tact = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)) / 16.0; + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + + /* move */ + pthread_mutex_lock(soundcard_mutex); + + note_offset = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)); + + pthread_mutex_unlock(soundcard_mutex); + + tact = note_offset / 16.0; gtk_spin_button_set_value(navigation->position_tact, tact + @@ -259,11 +334,37 @@ AgsNavigation *navigation) { AgsWindow *window; + + AgsMutexManager *mutex_manager; + + gdouble note_offset; gdouble tact; + pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; + + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); - tact = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)) / 16.0; + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + + + /* move */ + pthread_mutex_lock(soundcard_mutex); + + note_offset = ags_soundcard_get_note_offset(AGS_SOUNDCARD(window->soundcard)); + + pthread_mutex_unlock(soundcard_mutex); + + tact = note_offset / 16.0; gtk_spin_button_set_value(navigation->position_tact, tact + @@ -288,20 +389,36 @@ guint loop_left, loop_right; pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; pthread_mutex_t *audio_mutex; GValue do_loop_value = {0,}; + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); machines_start = machines = gtk_container_get_children(GTK_CONTAINER(window->machines)); + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + loop_left = 16 * navigation->loop_left_tact->adjustment->value; loop_right = 16 * navigation->loop_right_tact->adjustment->value; + pthread_mutex_lock(soundcard_mutex); + ags_soundcard_set_loop(AGS_SOUNDCARD(window->soundcard), loop_left, loop_right, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); + + pthread_mutex_unlock(soundcard_mutex); g_value_init(&do_loop_value, G_TYPE_BOOLEAN); g_value_set_boolean(&do_loop_value, @@ -318,10 +435,6 @@ audio = machine->audio; - /* get mutex manager and application mutex */ - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); - /* get audio mutex */ pthread_mutex_lock(application_mutex); @@ -389,21 +502,37 @@ guint loop_left, loop_right; pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; pthread_mutex_t *audio_mutex; GValue value = {0,}; + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); machines_start = machines = gtk_container_get_children(GTK_CONTAINER(window->machines)); + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + loop_left = 16 * navigation->loop_left_tact->adjustment->value; loop_right = 16 * navigation->loop_right_tact->adjustment->value; + pthread_mutex_lock(soundcard_mutex); + ags_soundcard_set_loop(AGS_SOUNDCARD(window->soundcard), loop_left, loop_right, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(navigation->loop))); + pthread_mutex_unlock(soundcard_mutex); + g_value_init(&value, G_TYPE_DOUBLE); g_value_set_double(&value, loop_left); @@ -418,10 +547,6 @@ #endif audio = machine->audio; - - /* get mutex manager and application mutex */ - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); /* get audio mutex */ pthread_mutex_lock(application_mutex); @@ -472,21 +597,37 @@ guint loop_left, loop_right; pthread_mutex_t *application_mutex; + pthread_mutex_t *soundcard_mutex; pthread_mutex_t *audio_mutex; GValue value = {0,}; + mutex_manager = ags_mutex_manager_get_instance(); + application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); + window = AGS_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(navigation))); machines_start = machines = gtk_container_get_children(GTK_CONTAINER(window->machines)); + /* get soundcard mutex */ + pthread_mutex_lock(application_mutex); + + soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, + window->soundcard); + + pthread_mutex_unlock(application_mutex); + loop_left = 16 * navigation->loop_left_tact->adjustment->value; loop_right = 16 * navigation->loop_right_tact->adjustment->value; + pthread_mutex_lock(soundcard_mutex); + ags_soundcard_set_loop(AGS_SOUNDCARD(window->soundcard), loop_left, loop_right, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(navigation->loop))); + pthread_mutex_unlock(soundcard_mutex); + g_value_init(&value, G_TYPE_DOUBLE); g_value_set_double(&value, loop_right); @@ -501,10 +642,6 @@ #endif audio = machine->audio; - - /* get mutex manager and application mutex */ - mutex_manager = ags_mutex_manager_get_instance(); - application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); /* get audio mutex */ pthread_mutex_lock(application_mutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/X/ags_window.c new/gsequencer-1.4.32/ags/X/ags_window.c --- old/gsequencer-1.4.31/ags/X/ags_window.c 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/ags/X/ags_window.c 2018-06-17 20:55:40.000000000 +0200 @@ -43,7 +43,7 @@ #include <ags/X/thread/ags_gui_thread.h> #ifdef AGS_WITH_QUARTZ -#include <gtkmacintegration-gtk2/gtkosxapplication.h> +#include <gtkmacintegration/gtkosxapplication.h> #endif #include <stdlib.h> @@ -838,10 +838,14 @@ "soundcard", soundcard, NULL); + pthread_mutex_lock(application_mutex); + g_object_set(application_context, "window", window, NULL); + pthread_mutex_unlock(application_mutex); + /* context menu */ window->context_menu = ags_context_menu_new(); gtk_widget_set_events(GTK_WIDGET(window), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/X/ags_xorg_application_context.c new/gsequencer-1.4.32/ags/X/ags_xorg_application_context.c --- old/gsequencer-1.4.31/ags/X/ags_xorg_application_context.c 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/ags/X/ags_xorg_application_context.c 2018-06-04 22:48:04.000000000 +0200 @@ -62,7 +62,7 @@ #endif #ifdef AGS_WITH_QUARTZ -#include <gtkmacintegration-gtk2/gtkosxapplication.h> +#include <gtkmacintegration/gtkosxapplication.h> #endif #include <sys/types.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/X/thread/ags_gui_thread.c new/gsequencer-1.4.32/ags/X/thread/ags_gui_thread.c --- old/gsequencer-1.4.31/ags/X/thread/ags_gui_thread.c 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/ags/X/thread/ags_gui_thread.c 2018-06-04 22:48:04.000000000 +0200 @@ -40,7 +40,7 @@ #endif #ifdef AGS_WITH_QUARTZ -#include <gtkmacintegration-gtk2/gtkosxapplication.h> +#include <gtkmacintegration/gtkosxapplication.h> #endif #include <libxml/parser.h> @@ -63,7 +63,10 @@ #include <gdk/gdk.h> +#ifndef AGS_WITH_QUARTZ #include <fontconfig/fontconfig.h> +#endif + #include <math.h> void ags_gui_thread_signal_handler(int signr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/ags_audio.c new/gsequencer-1.4.32/ags/audio/ags_audio.c --- old/gsequencer-1.4.31/ags/audio/ags_audio.c 2018-05-10 18:10:02.000000000 +0200 +++ new/gsequencer-1.4.32/ags/audio/ags_audio.c 2018-06-17 20:56:31.000000000 +0200 @@ -4227,8 +4227,10 @@ /* remove audio connection */ pthread_mutex_lock(mutex); - audio->audio_connection = g_list_remove(audio->audio_connection, audio_connection); - g_object_unref(audio_connection); + if(g_list_find(audio->audio_connection, audio_connection) != NULL){ + audio->audio_connection = g_list_remove(audio->audio_connection, audio_connection); + g_object_unref(audio_connection); + } pthread_mutex_unlock(mutex); } @@ -4303,8 +4305,10 @@ /* remove preset */ pthread_mutex_lock(mutex); - audio->preset = g_list_remove(audio->preset, preset); - g_object_unref(preset); + if(g_list_find(audio->preset, preset) != NULL){ + audio->preset = g_list_remove(audio->preset, preset); + g_object_unref(preset); + } pthread_mutex_unlock(mutex); } @@ -4377,13 +4381,15 @@ /* remove recall id */ pthread_mutex_lock(mutex); - audio->notation = g_list_remove(audio->notation, - notation); - g_object_set(notation, - "audio", NULL, - NULL); - - g_object_unref(notation); + if(g_list_find(audio->notation, notation) != NULL){ + audio->notation = g_list_remove(audio->notation, + notation); + g_object_set(notation, + "audio", NULL, + NULL); + + g_object_unref(notation); + } pthread_mutex_unlock(mutex); } @@ -4457,8 +4463,10 @@ /* remove recall id */ pthread_mutex_lock(mutex); - audio->automation = g_list_remove(audio->automation, automation); - g_object_unref(automation); + if(g_list_find(audio->automation, automation) != NULL){ + audio->automation = g_list_remove(audio->automation, automation); + g_object_unref(automation); + } pthread_mutex_unlock(mutex); } @@ -4531,8 +4539,10 @@ /* remove recall id */ pthread_mutex_lock(mutex); - audio->wave = g_list_remove(audio->wave, wave); - g_object_unref(wave); + if(g_list_find(audio->wave, wave) != NULL){ + audio->wave = g_list_remove(audio->wave, wave); + g_object_unref(wave); + } pthread_mutex_unlock(mutex); } @@ -4771,8 +4781,10 @@ /* remove recall container */ pthread_mutex_lock(mutex); - audio->container = g_list_remove(audio->container, recall_container); - g_object_unref(recall_container); + if(g_list_find(audio->container, recall_container) != NULL){ + audio->container = g_list_remove(audio->container, recall_container); + g_object_unref(recall_container); + } pthread_mutex_unlock(mutex); } @@ -4835,18 +4847,22 @@ if(play){ pthread_mutex_lock(audio->play_mutex); - audio->play = g_list_remove(audio->play, recall); - + if(g_list_find(audio->play, recall) != NULL){ + audio->play = g_list_remove(audio->play, recall); + g_object_unref(G_OBJECT(recall)); + } + pthread_mutex_unlock(audio->play_mutex); }else{ pthread_mutex_lock(audio->recall_mutex); - audio->recall = g_list_remove(audio->recall, recall); - + if(g_list_find(audio->recall, recall) != NULL){ + audio->recall = g_list_remove(audio->recall, recall); + g_object_unref(G_OBJECT(recall)); + } + pthread_mutex_unlock(audio->recall_mutex); } - - g_object_unref(G_OBJECT(recall)); } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/ags_channel.c new/gsequencer-1.4.32/ags/audio/ags_channel.c --- old/gsequencer-1.4.31/ags/audio/ags_channel.c 2018-05-10 18:11:41.000000000 +0200 +++ new/gsequencer-1.4.32/ags/audio/ags_channel.c 2018-06-17 20:56:35.000000000 +0200 @@ -2742,10 +2742,12 @@ /* remove recall id */ pthread_mutex_lock(mutex); - channel->remote_channel = g_list_remove(channel->remote_channel, - remote_channel); - g_object_unref(G_OBJECT(remote_channel)); - + if(g_list_find(channel->remote_channel, remote_channel) != NULL){ + channel->remote_channel = g_list_remove(channel->remote_channel, + remote_channel); + g_object_unref(G_OBJECT(remote_channel)); + } + pthread_mutex_unlock(mutex); } @@ -2914,8 +2916,10 @@ /* remove recall container */ pthread_mutex_lock(mutex); - channel->container = g_list_remove(channel->container, recall_container); - g_object_unref(G_OBJECT(recall_container)); + if(g_list_find(channel->container, recall_container) != NULL){ + channel->container = g_list_remove(channel->container, recall_container); + g_object_unref(G_OBJECT(recall_container)); + } pthread_mutex_unlock(mutex); } @@ -2977,18 +2981,22 @@ if(play){ pthread_mutex_lock(channel->play_mutex); - channel->play = g_list_remove(channel->play, recall); - + if(g_list_find(channel->play, recall) != NULL){ + channel->play = g_list_remove(channel->play, recall); + g_object_unref(G_OBJECT(recall)); + } + pthread_mutex_unlock(channel->play_mutex); }else{ pthread_mutex_lock(channel->recall_mutex); - channel->recall = g_list_remove(channel->recall, recall); + if(g_list_find(channel->recall, recall) != NULL){ + channel->recall = g_list_remove(channel->recall, recall); + g_object_unref(G_OBJECT(recall)); + } pthread_mutex_unlock(channel->recall_mutex); } - - g_object_unref(G_OBJECT(recall)); } /** @@ -3068,9 +3076,11 @@ /* remove pattern */ pthread_mutex_lock(mutex); - channel->pattern = g_list_remove(channel->pattern, pattern); - g_object_unref(G_OBJECT(pattern)); - + if(g_list_find(channel->pattern, pattern) != NULL){ + channel->pattern = g_list_remove(channel->pattern, pattern); + g_object_unref(G_OBJECT(pattern)); + } + pthread_mutex_unlock(mutex); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/ags_recall_dssi.c new/gsequencer-1.4.32/ags/audio/ags_recall_dssi.c --- old/gsequencer-1.4.31/ags/audio/ags_recall_dssi.c 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/ags/audio/ags_recall_dssi.c 2018-06-04 22:48:04.000000000 +0200 @@ -26,7 +26,11 @@ #include <ags/audio/ags_port.h> +#ifdef __APPLE__ +#include <machine/endian.h> +#else #include <endian.h> +#endif #include <dlfcn.h> #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/ags_recycling_context.c new/gsequencer-1.4.32/ags/audio/ags_recycling_context.c --- old/gsequencer-1.4.31/ags/audio/ags_recycling_context.c 2018-05-10 17:53:06.000000000 +0200 +++ new/gsequencer-1.4.32/ags/audio/ags_recycling_context.c 2018-06-17 20:56:40.000000000 +0200 @@ -410,7 +410,15 @@ return; } + if(recycling_context->recycling[position] != NULL){ + g_object_unref(recycling_context->recycling[position]); + } + recycling_context->recycling[position] = recycling; + + if(recycling != NULL){ + g_object_ref(recycling); + } pthread_mutex_unlock(recycling_context->mutex); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/core-audio/ags_core_audio_port.c new/gsequencer-1.4.32/ags/audio/core-audio/ags_core_audio_port.c --- old/gsequencer-1.4.31/ags/audio/core-audio/ags_core_audio_port.c 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/ags/audio/core-audio/ags_core_audio_port.c 2018-06-04 22:48:04.000000000 +0200 @@ -50,6 +50,7 @@ #ifdef AGS_WITH_CORE_AUDIO #include <CoreFoundation/CoreFoundation.h> +#include <AudioToolbox/AudioToolbox.h> #endif #include <time.h> @@ -72,15 +73,10 @@ void ags_core_audio_port_finalize(GObject *gobject); #ifdef AGS_WITH_CORE_AUDIO -OSStatus SetCurrentIOBufferFrameSize(AudioObjectID inDeviceID, - UInt32 inIOBufferFrameSize); +void* ags_core_audio_port_output_thread(void *data); -void* ags_core_audio_port_output_thread(void **data); -OSStatus ags_core_audio_port_output_callback(void *in_user_data, AudioUnitRenderActionFlags* ioActionFlags, - const AudioTimeStamp* in_time_stamp, - UInt32 in_bus_number, - UInt32 in_number_frames, - AudioBufferList* io_data); +void ags_core_audio_port_handle_output_buffer(AgsCoreAudioPort *core_audio_port, + AudioQueueRef in_audio_queue, AudioQueueBufferRef in_buffer); void ags_core_audio_port_midi_notify_callback(const MIDINotification *message, void *ref_con); @@ -236,7 +232,8 @@ guint pcm_channels; guint buffer_size; guint format; - + guint i; + pthread_mutex_t *application_mutex; pthread_mutex_t *mutex; pthread_mutexattr_t *attr; @@ -361,26 +358,27 @@ #ifdef AGS_WITH_CORE_AUDIO /* Audio */ - core_audio_port->comp = NULL; - - memset(&(core_audio_port->desc), 0, sizeof(AudioComponentDescription)); + //core_audio_port->aq_ref = (AudioQueueRef *) malloc(sizeof(AudioQueueRef)); + memset(&(core_audio_port->aq_ref), 0, sizeof(AudioQueueRef)); + //core_audio_port->data_format = (AudioStreamBasicDescription *) malloc(sizeof(AudioStreamBasicDescription)); memset(&(core_audio_port->data_format), 0, sizeof(AudioStreamBasicDescription)); - size_t bytesPerSample = sizeof (AudioUnitSampleType); - + size_t bytesPerSample = sizeof(gint16); + core_audio_port->data_format.mBitsPerChannel = 8 * bytesPerSample; - core_audio_port->data_format.mBytesPerPacket = bytesPerSample; - core_audio_port->data_format.mBytesPerFrame = bytesPerSample; + + core_audio_port->data_format.mBytesPerPacket = pcm_channels * bytesPerSample; + core_audio_port->data_format.mBytesPerFrame = pcm_channels * bytesPerSample; core_audio_port->data_format.mFramesPerPacket = 1; core_audio_port->data_format.mChannelsPerFrame = pcm_channels; core_audio_port->data_format.mFormatID = kAudioFormatLinearPCM; - core_audio_port->data_format.mFormatFlags = kAudioFormatFlagsAudioUnitCanonical; + core_audio_port->data_format.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked; core_audio_port->data_format.mSampleRate = (float) samplerate; - + /* MIDI */ core_audio_port->midi_client = (MIDIClientRef *) malloc(sizeof(MIDIClientRef)); memset(core_audio_port->midi_client, 0, sizeof(MIDIClientRef)); @@ -388,12 +386,9 @@ core_audio_port->midi_port = (MIDIPortRef *) malloc(sizeof(MIDIPortRef)); memset(core_audio_port->midi_port, 0, sizeof(MIDIPortRef)); #else - core_audio_port->comp = NULL; - core_audio_port->desc = NULL; + core_audio_port->aq_ref = NULL; core_audio_port->data_format = NULL; - - core_audio_port->input = NULL; core_audio_port->midi_client = NULL; core_audio_port->midi_port = NULL; @@ -684,6 +679,8 @@ gchar *name, *uuid; + guint i; + #ifdef AGS_WITH_CORE_AUDIO OSStatus retval; #endif @@ -766,67 +763,29 @@ } #ifdef AGS_WITH_CORE_AUDIO - core_audio_port->desc.componentType = kAudioUnitType_Output; - core_audio_port->desc.componentSubType = kAudioUnitSubType_DefaultOutput; - core_audio_port->desc.componentManufacturer = kAudioUnitManufacturer_Apple; - - core_audio_port->comp = AudioComponentFindNext(NULL, - &(core_audio_port->desc)); - - if(core_audio_port->comp == NULL) { - g_message("can't get output unit"); - return; - } - - retval = AudioComponentInstanceNew(core_audio_port->comp, - &(core_audio_port->au_unit)); - - if(retval != noErr){ - return; - } - - retval = AudioUnitSetParameter(core_audio_port->au_unit, - kHALOutputParam_Volume, - kAudioUnitScope_Global, - 0, 1.0f, 0); - - if(retval != noErr){ - return; - } - - core_audio_port->input.inputProc = ags_core_audio_port_output_callback; - core_audio_port->input.inputProcRefCon = core_audio_port; - retval = AudioUnitSetProperty(core_audio_port->au_unit, - kAudioUnitProperty_SetRenderCallback, - kAudioUnitScope_Input, - 0, &(core_audio_port->input), sizeof(AURenderCallbackStruct)); - - if(retval != noErr){ - return; - } - - retval = AudioUnitSetProperty(core_audio_port->au_unit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, - &(core_audio_port->data_format), sizeof(AudioStreamBasicDescription)); - retval = AudioUnitSetProperty(core_audio_port->au_unit, - kAudioUnitProperty_StreamFormat, - kAudioUnitScope_Input, - 0, &(core_audio_port->data_format), sizeof(AudioStreamBasicDescription)); - - if(retval != noErr){ - return; - } - - SetCurrentIOBufferFrameSize(core_audio_port->au_unit, - core_audio_port->buffer_size); - - retval = AudioUnitInitialize(core_audio_port->au_unit); - - if(retval != noErr){ - return; + // pthread_create(&thread, NULL, &ags_core_audio_port_output_thread, core_audio_port); + AudioQueueNewOutput(&(core_audio_port->data_format), + ags_core_audio_port_handle_output_buffer, + core_audio_port, + NULL, NULL, + 0, + &(core_audio_port->aq_ref)); + + for(i = 0; i < 8; i++){ + AudioQueueAllocateBuffer(core_audio_port->aq_ref, + (core_audio_port->pcm_channels * core_audio_port->buffer_size * sizeof(gint16)), + &(core_audio_port->buf_ref[i])); + + ags_core_audio_port_handle_output_buffer(core_audio_port, + core_audio_port->aq_ref, core_audio_port->buf_ref[i]); } - - g_message("start audio unit"); - AudioOutputUnitStart(core_audio_port->au_unit); + + AudioQueueSetParameter(core_audio_port->aq_ref, + kAudioQueueParam_Volume, 1.0); + + AudioQueueStart(core_audio_port->aq_ref, + NULL); + #endif }else{ //NOTE:JK: not implemented @@ -899,35 +858,10 @@ } #ifdef AGS_WITH_CORE_AUDIO -void* -ags_core_audio_port_output_thread(void **data) -{ - AgsCoreAudioPort *core_audio_port; - AudioQueueRef in_aq; - AudioQueueBufferRef in_complete_aq_buffer; - - core_audio_port = data[0]; - in_aq = data[1]; - in_complete_aq_buffer = data[2]; - - g_atomic_int_set(&(core_audio_port->running), - TRUE); - - while(g_atomic_int_get(&(core_audio_port->running))){ - CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.10, TRUE); - } - - pthread_exit(NULL); -} - -OSStatus -ags_core_audio_port_output_callback(void *in_user_data, AudioUnitRenderActionFlags* ioActionFlags, - const AudioTimeStamp* in_time_stamp, - UInt32 in_bus_number, - UInt32 in_number_frames, - AudioBufferList* io_data) +void +ags_core_audio_port_handle_output_buffer(AgsCoreAudioPort *core_audio_port, + AudioQueueRef in_audio_queue, AudioQueueBufferRef in_buffer) { - AgsCoreAudioPort *core_audio_port; AgsCoreAudioDevout *core_audio_devout; AgsAudioLoop *audio_loop; @@ -951,12 +885,6 @@ pthread_mutex_t *callback_mutex; pthread_mutex_t *callback_finish_mutex; - core_audio_port = (AgsCoreAudioPort *) in_user_data; - - if(core_audio_port == NULL){ - return(noErr); - } - mutex_manager = ags_mutex_manager_get_instance(); application_mutex = ags_mutex_manager_get_application_mutex(mutex_manager); @@ -973,7 +901,7 @@ if(g_atomic_int_get(&(core_audio_port->queued)) > 0){ g_warning("drop core audio output callback"); - return(noErr); + return; }else{ g_atomic_int_inc(&(core_audio_port->queued)); } @@ -1016,15 +944,14 @@ pthread_mutex_unlock(task_thread->launch_mutex); } - for(i = 0; i < core_audio_port->pcm_channels; i++){ - ags_audio_buffer_util_clear_float32(io_data->mBuffers[i].mData, 1, - core_audio_port->buffer_size); - } - + in_buffer->mAudioDataByteSize = core_audio_port->pcm_channels * core_audio_port->buffer_size * sizeof(gint16); + ags_audio_buffer_util_clear_buffer(in_buffer->mAudioData, 1, + (in_buffer->mAudioDataByteSize / sizeof(gint16)), AGS_AUDIO_BUFFER_UTIL_S16); + if(audio_loop == NULL){ g_atomic_int_dec_and_test(&(core_audio_port->queued)); - return(noErr); + return; } /* */ @@ -1058,27 +985,27 @@ switch(core_audio_port->format){ case AGS_SOUNDCARD_SIGNED_8_BIT: { - word_size = sizeof(signed char); + word_size = sizeof(gint8); } break; case AGS_SOUNDCARD_SIGNED_16_BIT: { - word_size = sizeof(signed short); + word_size = sizeof(gint16); } break; case AGS_SOUNDCARD_SIGNED_24_BIT: { - word_size = sizeof(signed long); + word_size = sizeof(gint32); } break; case AGS_SOUNDCARD_SIGNED_32_BIT: { - word_size = sizeof(signed long); + word_size = sizeof(gint32); } break; case AGS_SOUNDCARD_SIGNED_64_BIT: { - word_size = sizeof(signed long long); + word_size = sizeof(gint64); } break; default: @@ -1148,27 +1075,27 @@ switch(core_audio_port->format){ case AGS_SOUNDCARD_SIGNED_8_BIT: { - word_size = sizeof(signed char); + word_size = sizeof(gint8); } break; case AGS_SOUNDCARD_SIGNED_16_BIT: { - word_size = sizeof(signed short); + word_size = sizeof(gint16); } break; case AGS_SOUNDCARD_SIGNED_24_BIT: { - word_size = sizeof(signed long); + word_size = sizeof(gint32); } break; case AGS_SOUNDCARD_SIGNED_32_BIT: { - word_size = sizeof(signed long); + word_size = sizeof(gint32); } break; case AGS_SOUNDCARD_SIGNED_64_BIT: { - word_size = sizeof(signed long long); + word_size = sizeof(gint64); } break; default: @@ -1180,16 +1107,19 @@ g_atomic_int_set(&(core_audio_port->is_empty), FALSE); - copy_mode = ags_audio_buffer_util_get_copy_mode(AGS_AUDIO_BUFFER_UTIL_FLOAT32, + copy_mode = ags_audio_buffer_util_get_copy_mode(AGS_AUDIO_BUFFER_UTIL_S16, ags_audio_buffer_util_format_from_soundcard(core_audio_devout->format)); - for(i = 0; i < core_audio_port->pcm_channels; i++){ - ags_audio_buffer_util_copy_buffer_to_buffer(io_data->mBuffers[i].mData, 1, 0, - core_audio_devout->buffer[nth_buffer], core_audio_port->pcm_channels, i, - core_audio_port->buffer_size, copy_mode); - } + ags_audio_buffer_util_copy_buffer_to_buffer(in_buffer->mAudioData, 1, 0, + core_audio_devout->buffer[nth_buffer], 1, 0, + core_audio_port->pcm_channels * core_audio_port->buffer_size, copy_mode); } + AudioQueueEnqueueBuffer(core_audio_port->aq_ref, + in_buffer, + 0, + NULL); + /* signal finish */ if(!no_event){ callback_finish_mutex = core_audio_devout->callback_finish_mutex; @@ -1214,8 +1144,6 @@ } g_atomic_int_dec_and_test(&(core_audio_port->queued)); - - return(noErr); } void @@ -1515,8 +1443,7 @@ pthread_mutex_lock(mutex); #ifdef AGS_WITH_CORE_AUDIO - SetCurrentIOBufferFrameSize(core_audio_port->au_unit, - buffer_size); + //TODO:JK: implement me #endif core_audio_port->buffer_size = buffer_size; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/core-audio/ags_core_audio_port.h new/gsequencer-1.4.32/ags/audio/core-audio/ags_core_audio_port.h --- old/gsequencer-1.4.31/ags/audio/core-audio/ags_core_audio_port.h 2018-03-19 17:09:49.000000000 +0100 +++ new/gsequencer-1.4.32/ags/audio/core-audio/ags_core_audio_port.h 2018-06-04 22:48:04.000000000 +0200 @@ -87,25 +87,18 @@ guint samplerate; #ifdef AGS_WITH_CORE_AUDIO - AudioComponentDescription desc; - AudioComponent comp; - + AudioQueueRef aq_ref; AudioStreamBasicDescription data_format; - AURenderCallbackStruct input; - AudioUnit au_unit; + AudioQueueBufferRef buf_ref[8]; MIDIClientRef *midi_client; MIDIPortRef *midi_port; #else - gpointer comp; - gpointer desc; - + gpointer aq_ref; gpointer data_format; - gpointer packet_descs; - gpointer input; - gpointer au_unit; + gpointer buffer; gpointer midi_client; gpointer midi_port; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/recall/ags_play_dssi_audio.c new/gsequencer-1.4.32/ags/audio/recall/ags_play_dssi_audio.c --- old/gsequencer-1.4.31/ags/audio/recall/ags_play_dssi_audio.c 2018-03-04 07:14:51.000000000 +0100 +++ new/gsequencer-1.4.32/ags/audio/recall/ags_play_dssi_audio.c 2018-06-04 22:48:04.000000000 +0200 @@ -37,7 +37,11 @@ #include <ags/audio/ags_port.h> +#ifdef __APPLE__ +#include <machine/endian.h> +#else #include <endian.h> +#endif #include <dlfcn.h> #include <stdio.h> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/task/ags_apply_presets.c new/gsequencer-1.4.32/ags/audio/task/ags_apply_presets.c --- old/gsequencer-1.4.31/ags/audio/task/ags_apply_presets.c 2018-03-04 20:27:35.000000000 +0100 +++ new/gsequencer-1.4.32/ags/audio/task/ags_apply_presets.c 2018-06-04 22:48:04.000000000 +0200 @@ -19,6 +19,8 @@ #include <ags/audio/task/ags_apply_presets.h> +#include <ags/libags.h> + #include <ags/audio/ags_audio.h> #include <ags/audio/ags_channel.h> #include <ags/audio/ags_input.h> @@ -538,7 +540,7 @@ pthread_mutex_unlock(soundcard_mutex); - while(audio != NULL){ + while(list != NULL){ /* get some fields */ pthread_mutex_lock(soundcard_mutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/audio/task/ags_seek_soundcard.c new/gsequencer-1.4.32/ags/audio/task/ags_seek_soundcard.c --- old/gsequencer-1.4.31/ags/audio/task/ags_seek_soundcard.c 2018-03-04 20:27:35.000000000 +0100 +++ new/gsequencer-1.4.32/ags/audio/task/ags_seek_soundcard.c 2018-06-21 07:04:52.000000000 +0200 @@ -19,6 +19,8 @@ #include <ags/audio/task/ags_seek_soundcard.h> +#include <ags/libags.h> + #include <ags/audio/ags_audio.h> #include <ags/i18n.h> @@ -349,17 +351,17 @@ pthread_mutex_lock(application_mutex); soundcard_mutex = ags_mutex_manager_lookup(mutex_manager, - (GObject *) soundcard); + G_OBJECT(soundcard)); pthread_mutex_unlock(application_mutex); /* seek audio */ - pthread_mutex_lock(soundcard); + pthread_mutex_lock(soundcard_mutex); audio = audio_start = g_list_copy(ags_soundcard_get_audio(AGS_SOUNDCARD(soundcard))); - pthread_mutex_unlock(soundcard); + pthread_mutex_unlock(soundcard_mutex); while(audio != NULL){ /* get audio mutex */ @@ -370,7 +372,7 @@ pthread_mutex_unlock(application_mutex); - /* seek recall */ + /* seek play */ pthread_mutex_lock(audio_mutex); recall = AGS_AUDIO(audio->data)->play; @@ -387,13 +389,30 @@ pthread_mutex_unlock(audio_mutex); + /* seek recall */ + pthread_mutex_lock(audio_mutex); + + recall = AGS_AUDIO(audio->data)->recall; + + while(recall != NULL){ + if(AGS_IS_SEEKABLE(recall->data)){ + ags_seekable_seek(AGS_SEEKABLE(recall->data), + seek_soundcard->steps, + seek_soundcard->move_forward); + } + + recall = recall->next; + } + + pthread_mutex_unlock(audio_mutex); + audio = audio->next; } g_list_free(audio_start); /* seek soundcard */ - pthread_mutex_lock(soundcard); + pthread_mutex_lock(soundcard_mutex); note_offset = ags_soundcard_get_note_offset(AGS_SOUNDCARD(seek_soundcard->soundcard)); note_offset_absolute = ags_soundcard_get_note_offset_absolute(AGS_SOUNDCARD(seek_soundcard->soundcard)); @@ -420,7 +439,7 @@ } } - pthread_mutex_unlock(soundcard); + pthread_mutex_unlock(soundcard_mutex); } /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/gsequencer_main.c new/gsequencer-1.4.32/ags/gsequencer_main.c --- old/gsequencer-1.4.31/ags/gsequencer_main.c 2018-05-10 23:33:21.000000000 +0200 +++ new/gsequencer-1.4.32/ags/gsequencer_main.c 2018-06-04 22:48:04.000000000 +0200 @@ -77,40 +77,6 @@ base_dir = strndup(path, rindex(path, '/') - path); printf("base dir %s\n", base_dir); - - sprintf(path, "%s/../Frameworks", - base_dir); - gdk_pixbuf_module_file = realpath(path, - NULL); - str = malloc(PATH_MAX * sizeof(gchar)); - sprintf(str, - "GDK_PIXBUF_MODULE_FILE=%s/gdk-pixbuf-2.0/2.10.0/loaders.cache", - gdk_pixbuf_module_file); - putenv(str); - - ld_library_path = realpath(path, - NULL); - str = malloc(PATH_MAX * sizeof(gchar)); - sprintf(str, - "DT_RUNPATH=%s/gdk-pixbuf-2.0/2.10.0/loaders", - ld_library_path); - putenv(str); - - frameworks_dir = realpath(path, - NULL); - str = malloc(PATH_MAX * sizeof(gchar)); - sprintf(str, - "DYLD_FALLBACK_LIBRARY_PATH=%s", - frameworks_dir); - putenv(str); - - str = malloc(PATH_MAX * sizeof(gchar)); - sprintf(str, - "GDK_PIXBUF_MODULEDIR=%s", - frameworks_dir); - putenv(str); - - printf(".. %s", str); sprintf(path, "%s/../Resources", base_dir); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/midi2xml_main.c new/gsequencer-1.4.32/ags/midi2xml_main.c --- old/gsequencer-1.4.31/ags/midi2xml_main.c 2018-03-04 07:14:51.000000000 +0100 +++ new/gsequencer-1.4.32/ags/midi2xml_main.c 2018-06-21 07:36:08.000000000 +0200 @@ -27,6 +27,20 @@ #include <libxml/tree.h> +void midi2xml_print_usage(); + +void +midi2xml_print_usage() +{ + printf("midi2xml converts MIDI to XML\n\n"); + + printf("Usage:\n\t%s\n\t%s\n\t%s\n\t%s\n\n", + "Report bugs to <[email protected]>\n", + "--help display this help and exit", + "--version output version information and exit", + "<file> the file to be processed"); +} + int main(int argc, char **argv) { @@ -41,34 +55,30 @@ if(argc == 2){ - if(!g_ascii_strncasecmp(argv[1], "--help\0", 7)){ - printf("midi2xml converts MIDI to XML\n\n\0"); - - printf("Usage:\n\t%s\n\t%s\n\t%s\n\t%s\n\n", - "Report bugs to <[email protected]>\n\0", - "--help display this help and exit\0", - "--version output version information and exit\0", - "<file> the file to be processed\0"); + if(!g_ascii_strncasecmp(argv[1], "--help", 7)){ + midi2xml_print_usage(); exit(0); - }else if(!g_ascii_strncasecmp(argv[1], "--version\0", 10)){ - printf("midi2xml 1.0.0\n\n\0"); + }else if(!g_ascii_strncasecmp(argv[1], "--version", 10)){ + printf("midi2xml 1.0.0\n\n"); - printf("%s\n%s\n%s\n\n\0", - "Copyright (C) 2015 Joël Krähemann\0", - "This is free software; see the source for copying conditions. There is NO\0", - "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\0"); + printf("%s\n%s\n%s\n\n", + "Copyright (C) 2015 Joël Krähemann", + "This is free software; see the source for copying conditions. There is NO", + "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."); - printf("Written by Joël Krähemann\n\0"); + printf("Written by Joël Krähemann\n"); exit(0); }else{ filename = argv[1]; } }else{ + midi2xml_print_usage(); + return(-1); } - file = fopen(filename, "r\0"); + file = fopen(filename, "r"); fseek(file, 0, SEEK_SET); midi_parser = ags_midi_parser_new(file); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/ags/object/ags_soundcard.h new/gsequencer-1.4.32/ags/object/ags_soundcard.h --- old/gsequencer-1.4.31/ags/object/ags_soundcard.h 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/ags/object/ags_soundcard.h 2018-06-04 22:48:04.000000000 +0200 @@ -55,7 +55,11 @@ #define AGS_SOUNDCARD_DEFAULT_LOOP_LEFT (0) #define AGS_SOUNDCARD_DEFAULT_LOOP_RIGHT (64) +#ifdef __APPLE__ +#define AGS_SOUNDCARD_DEFAULT_OVERCLOCK (2.0) +#else #define AGS_SOUNDCARD_DEFAULT_OVERCLOCK (0.0) +#endif typedef struct _AgsSoundcard AgsSoundcard; typedef struct _AgsSoundcardInterface AgsSoundcardInterface; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/configure new/gsequencer-1.4.32/configure --- old/gsequencer-1.4.31/configure 2018-05-10 23:37:40.000000000 +0200 +++ new/gsequencer-1.4.32/configure 2018-06-21 07:05:15.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gsequencer 1.4.31. +# Generated by GNU Autoconf 2.69 for gsequencer 1.4.32. # # Report bugs to <[email protected]>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='gsequencer' PACKAGE_TARNAME='gsequencer' -PACKAGE_VERSION='1.4.31' -PACKAGE_STRING='gsequencer 1.4.31' +PACKAGE_VERSION='1.4.32' +PACKAGE_STRING='gsequencer 1.4.32' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1473,7 +1473,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gsequencer 1.4.31 to adapt to many kinds of systems. +\`configure' configures gsequencer 1.4.32 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1548,7 +1548,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gsequencer 1.4.31:";; + short | recursive ) echo "Configuration of gsequencer 1.4.32:";; esac cat <<\_ACEOF @@ -1741,7 +1741,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gsequencer configure 1.4.31 +gsequencer configure 1.4.32 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2218,7 +2218,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gsequencer $as_me 1.4.31, which was +It was created by gsequencer $as_me 1.4.32, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3085,7 +3085,7 @@ # Define the identity of the package. PACKAGE='gsequencer' - VERSION='1.4.31' + VERSION='1.4.32' cat >>confdefs.h <<_ACEOF @@ -19597,7 +19597,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gsequencer $as_me 1.4.31, which was +This file was extended by gsequencer $as_me 1.4.32, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19663,7 +19663,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gsequencer config.status 1.4.31 +gsequencer config.status 1.4.32 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/configure.ac new/gsequencer-1.4.32/configure.ac --- old/gsequencer-1.4.31/configure.ac 2018-05-10 23:37:27.000000000 +0200 +++ new/gsequencer-1.4.32/configure.ac 2018-06-17 20:57:02.000000000 +0200 @@ -6,7 +6,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([gsequencer],[1.4.31],[[email protected]]) +AC_INIT([gsequencer],[1.4.32],[[email protected]]) AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_SRCDIR([ags/config.h.in]) AC_CONFIG_HEADERS([ags/config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/gsequencer.1 new/gsequencer-1.4.32/gsequencer.1 --- old/gsequencer-1.4.31/gsequencer.1 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/gsequencer.1 2018-06-21 07:45:44.000000000 +0200 @@ -33,7 +33,7 @@ gsequencer \- Advanced Gtk+ Sequencer is an audio sequencer and composition editor .SH "SYNOPSIS" .HP \w'\fB/usr/bin/gsequencer\fR\ 'u -\fB/usr/bin/gsequencer\fR [\-\-help] [\-\-version] [\-\-single\-thread] [\-\-no\-builtin\-theme] [\-\-filename\ \fIfile\fR...] +\fB/usr/bin/gsequencer\fR [\-\-help] [\-\-version] [\-\-single\-thread] [\-\-no\-builtin\-theme] [\-\-filename\ \fIfile\fR] .SH "DESCRIPTION" .PP Advanced GTK+ Sequencer is intended to use for music composition\&. It features a piano roll, as well a synth, matrix editor, drum machine, soundfont2 player, mixer and an output panel\&. It\(cqs designed to be highly configurable\&. You may add effects to its effect chain; and add or remove audio channels/pads\&. You may set up a fully functional network of engines, thus there is a link editor for linking audio lines\&. @@ -94,8 +94,8 @@ None\&. So far I know\&. .SH "AUTHOR" .PP -Joël Krähemann +Jo\(:el Kr\(:ahemann .SH "COPYRIGHT" .br -Copyright \(co 2017 Joël Krähemann +Copyright \(co 2017 Jo\(:el Kr\(:ahemann .br diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/gsequencer.1.xml new/gsequencer-1.4.32/gsequencer.1.xml --- old/gsequencer-1.4.31/gsequencer.1.xml 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/gsequencer.1.xml 2018-06-21 07:45:39.000000000 +0200 @@ -36,7 +36,7 @@ <arg>--version</arg> <arg>--single-thread</arg> <arg>--no-builtin-theme</arg> - <arg rep='repeat'>--filename <replaceable>file</replaceable></arg> + <arg>--filename <replaceable>file</replaceable></arg> </cmdsynopsis> </refsynopsisdiv> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/midi2xml.1 new/gsequencer-1.4.32/midi2xml.1 --- old/gsequencer-1.4.31/midi2xml.1 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/midi2xml.1 2018-06-21 07:33:56.000000000 +0200 @@ -33,7 +33,7 @@ midi2xml \- midi2xml converts your MIDI files to XML format .SH "SYNOPSIS" .HP \w'\fB/usr/bin/midi2xml\fR\ 'u -\fB/usr/bin/midi2xml\fR [\-\-help] [\-\-version] [file] +\fB/usr/bin/midi2xml\fR [\-\-help] [\-\-version] \fIfile\fR .SH "DESCRIPTION" .PP midi2xml takes your MIDI file from command line and outputs the resulting XML to stdout\&. @@ -62,8 +62,8 @@ None\&. So far I know\&. .SH "AUTHOR" .PP -Joël Krähemann +Jo\(:el Kr\(:ahemann .SH "COPYRIGHT" .br -Copyright \(co 2015 Joël Krähemann +Copyright \(co 2015 Jo\(:el Kr\(:ahemann .br diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/midi2xml.1.xml new/gsequencer-1.4.32/midi2xml.1.xml --- old/gsequencer-1.4.31/midi2xml.1.xml 2018-05-10 13:08:51.000000000 +0200 +++ new/gsequencer-1.4.32/midi2xml.1.xml 2018-06-21 07:33:52.000000000 +0200 @@ -34,7 +34,7 @@ <command>/usr/bin/midi2xml</command> <arg>--help</arg> <arg>--version</arg> - <arg>file</arg> + <arg choice="plain"><replaceable>file</replaceable></arg> </cmdsynopsis> </refsynopsisdiv> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gsequencer-1.4.31/po/gsequencer.pot new/gsequencer-1.4.32/po/gsequencer.pot --- old/gsequencer-1.4.31/po/gsequencer.pot 2018-05-10 23:38:09.000000000 +0200 +++ new/gsequencer-1.4.32/po/gsequencer.pot 2018-06-21 07:05:59.000000000 +0200 @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: gsequencer 1.4.31\n" +"Project-Id-Version: gsequencer 1.4.32\n" "Report-Msgid-Bugs-To: [email protected]\n" -"POT-Creation-Date: 2018-05-10 23:38+0200\n" +"POT-Creation-Date: 2018-06-21 07:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <[email protected]>\n"
