[SCM] gsequencer/upstream: fixed volume indicator and reversed AgsMatrix
jkraehemann-guest at users.alioth.debian.org
jkraehemann-guest at users.alioth.debian.org
Mon Jun 15 11:29:27 UTC 2015
The following commit has been merged in the upstream branch:
commit ae91957912ff8e17d34c2b1fb9467ac969a99461
Author: Joël Krähemann <jkraehemann at gmail.com>
Date: Mon Jun 15 13:26:01 2015 +0200
fixed volume indicator and reversed AgsMatrix
diff --git a/Makefile.am b/Makefile.am
index b4299f6..7975bac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,7 +30,7 @@ appdata_DATA = ags.desktop
EXTRA_DIST += ags.desktop.in
CLEANFILES += $(appdata_DATA)
-ags_SOURCES = ./src/ags-lib/object/ags_connectable.c ./src/ags-lib/object/ags_connectable.h src/ags/lib/ags_combo_box_text.c src/ags/lib/ags_list.c src/ags/lib/ags_container.c src/ags/lib/ags_parameter.h src/ags/lib/ags_list.h src/ags/lib/ags_log.c src/ags/lib/ags_container.h src/ags/lib/ags_combo_box_text.h src/ags/lib/ags_log.h src/ags/lib/ags_parameter.c src/ags/X/editor/ags_notebook_callbacks.c src/ags/X/editor/ags_meter.h src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_machine_radio_button.h src/ags/X/editor/ags_file_selection_callbacks.h src/ags/X/editor/ags_notebook_callbacks.h src/ags/X/editor/ags_note_edit.h src/ags/X/editor/ags_meter_callbacks.c src/ags/X/editor/ags_notebook.h src/ags/X/editor/ags_sf2_chooser.h src/ags/X/editor/ags_toolbar_mode_stock.h src/ags/X/editor/ags_meter_callbacks.h src/ags/X/editor/ags_toolbar_callbacks.c src/ags/X/editor/ags_machine_selector.c src/ags/X/editor/ags_machine_selector_callbacks.c src/ags/X/editor/ags_machine_radio_button.c src/ags/X/editor/ags_sf2_chooser.c src/ags/X/editor/ags_machine_selector_callbacks.h src/ags/X/editor/ags_sf2_chooser_callbacks.c src/ags/X/editor/ags_notebook.c src/ags/X/editor/ags_note_edit_callbacks.c src/ags/X/editor/ags_file_selection_callbacks.c src/ags/X/editor/ags_machine_selection.c src/ags/X/editor/ags_inline_player_callbacks.h src/ags/X/editor/ags_inline_player.c src/ags/X/editor/ags_meter.c src/ags/X/editor/ags_file_selection.h src/ags/X/editor/ags_inline_player.h src/ags/X/editor/ags_sf2_chooser_callbacks.h src/ags/X/editor/ags_file_selection.c src/ags/X/editor/ags_machine_selector.h src/ags/X/editor/ags_note_edit_callbacks.h src/ags/X/editor/ags_note_edit.c src/ags/X/editor/ags_inline_player_callbacks.c src/ags/X/editor/ags_toolbar_callbacks.h src/ags/X/editor/ags_machine_selection.h src/ags/X/editor/ags_toolbar.c src/ags/X/ags_line_callbacks.h src/ags/X/ags_plugin_preferences.c src/ags/X/ags_link_editor.c src/ags/X/ags_pad_callbacks.h src/ags/X/ags_machine_callbacks.c src/ags/X/ags_server_preferences_callbacks.h src/ags/X/ags_listing_editor_callbacks.c src/ags/X/ags_link_collection_editor_callbacks.c src/ags/X/ags_generic_preferences_callbacks.c src/ags/X/ags_property_collection_editor_callbacks.c src/ags/X/ags_property_collection_editor.h src/ags/X/ags_resize_editor.h src/ags/X/ags_property_editor.h src/ags/X/ags_window_callbacks.h src/ags/X/ags_property_editor_callbacks.c src/ags/X/machine/ags_synth_callbacks.h src/ags/X/machine/ags_synth.c src/ags/X/machine/ags_mixer.c src/ags/X/machine/ags_matrix_callbacks.c src/ags/X/machine/ags_panel_input_line.c src/ags/X/machine/ags_synth_input_line.c src/ags/X/machine/ags_drum_callbacks.h src/ags/X/machine/ags_mixer_callbacks.c src/ags/X/machine/ags_synth_callbacks.c src/ags/X/machine/ags_ffplayer_callbacks.h src/ags/X/machine/ags_drum_input_line.h src/ags/X/machine/ags_matrix.h src/ags/X/machine/ags_mixer_input_line.c src/ags/X/machine/ags_oscillator.c src/ags/X/machine/ags_oscillator.h src/ags/X/machine/ags_oscillator_callbacks.h src/ags/X/machine/ags_mixer.h src/ags/X/machine/ags_panel_input_pad.h src/ags/X/machine/ags_panel_input_pad.c src/ags/X/machine/ags_matrix.c src/ags/X/machine/ags_panel.h src/ags/X/machine/ags_drum_output_line_callbacks.c src/ags/X/machine/ags_ffplayer.h src/ags/X/machine/ags_panel_callbacks.c src/ags/X/machine/ags_mixer_input_pad.c src/ags/X/machine/ags_panel.c src/ags/X/machine/ags_drum.c src/ags/X/machine/ags_matrix_callbacks.h src/ags/X/machine/ags_drum_output_line.h src/ags/X/machine/ags_drum_output_pad.h src/ags/X/machine/ags_synth_input_pad.h src/ags/X/machine/ags_panel_callbacks.h src/ags/X/machine/ags_ffplayer.c src/ags/X/machine/ags_drum_output_line_callbacks.h src/ags/X/machine/ags_drum_output_pad_callbacks.c src/ags/X/machine/ags_drum_output_pad_callbacks.h src/ags/X/machine/ags_drum_input_pad_callbacks.h src/ags/X/machine/ags_oscillator_callbacks.c src/ags/X/machine/ags_drum_callbacks.c src/ags/X/machine/ags_synth_input_line.h src/ags/X/machine/ags_drum_input_pad_callbacks.c src/ags/X/machine/ags_drum_input_pad.c src/ags/X/machine/ags_panel_input_line.h src/ags/X/machine/ags_drum_input_line_callbacks.h src/ags/X/machine/ags_drum_output_line.c src/ags/X/machine/ags_mixer_callbacks.h src/ags/X/machine/ags_synth.h src/ags/X/machine/ags_mixer_input_line.h src/ags/X/machine/ags_drum.h src/ags/X/machine/ags_drum_input_line.c src/ags/X/machine/ags_ffplayer_callbacks.c src/ags/X/machine/ags_drum_output_pad.c src/ags/X/machine/ags_drum_input_pad.h src/ags/X/machine/ags_drum_input_line_callbacks.c src/ags/X/machine/ags_mixer_input_pad.h src/ags/X/machine/ags_synth_input_pad.c src/ags/X/ags_server_preferences.h src/ags/X/ags_line_editor_callbacks.h src/ags/X/ags_pad_editor_callbacks.c src/ags/X/ags_listing_editor_callbacks.h src/ags/X/ags_line_member_callbacks.c src/ags/X/ags_editor.h src/ags/X/ags_machine_editor.h src/ags/X/ags_plugin_preferences_callbacks.h src/ags/X/ags_export_window_callbacks.h src/ags/X/ags_editor_callbacks.c src/ags/X/ags_pad_editor.h src/ags/X/ags_server_preferences.c src/ags/X/ags_line_editor.c src/ags/X/ags_ladspa_browser.h src/ags/X/ags_audio_preferences.c src/ags/X/ags_pad.c src/ags/X/ags_line.c src/ags/X/ags_menu_bar_callbacks.c src/ags/X/ags_generic_preferences_callbacks.h src/ags/X/ags_pad.h src/ags/X/ags_audio_preferences_callbacks.h src/ags/X/ags_generic_preferences.c src/ags/X/ags_window.c src/ags/X/ags_machine_editor_callbacks.h src/ags/X/ags_editor_callbacks.h src/ags/X/ags_menu_bar_callbacks.h src/ags/X/ags_line_member_editor.h src/ags/X/ags_property_collection_editor_callbacks.h src/ags/X/ags_line_editor_callbacks.c src/ags/X/ags_property_editor.c src/ags/X/ags_link_editor_callbacks.c src/ags/X/ags_server_preferences_callbacks.c src/ags/X/ags_pad_callbacks.c src/ags/X/ags_line_member.h src/ags/X/ags_audio_preferences_callbacks.c src/ags/X/ags_performance_preferences.h src/ags/X/ags_property_collection_editor.c src/ags/X/ags_performance_preferences_callbacks.h src/ags/X/ags_line.h src/ags/X/ags_machine.c src/ags/X/ags_preferences_callbacks.c src/ags/X/ags_export_window.c src/ags/X/ags_menu_bar.c src/ags/X/ags_plugin_preferences_callbacks.c src/ags/X/ags_line_member_callbacks.h src/ags/X/ags_preferences.c src/ags/X/ags_export_window.h src/ags/X/ags_pad_editor_callbacks.h src/ags/X/ags_window.h src/ags/X/ags_machine_callbacks.h src/ags/X/ags_machine.h src/ags/X/ags_line_callbacks.c src/ags/X/ags_link_editor_callbacks.h src/ags/X/ags_navigation_callbacks.h src/ags/X/ags_pad_editor.c src/ags/X/ags_ladspa_browser.c src/ags/X/ags_editor.c src/ags/X/ags_resize_editor.c src/ags/X/ags_property_listing_editor.c src/ags/X/ags_property_editor_callbacks.h src/ags/X/ags_line_member_editor_callbacks.h src/ags/X/ags_window_callbacks.c src/ags/X/ags_audio_preferences.h src/ags/X/ags_navigation_callbacks.c src/ags/X/ags_plugin_preferences.h src/ags/X/ags_performance_preferences_callbacks.c src/ags/X/ags_line_member.c src/ags/X/ags_preferences.h src/ags/X/ags_generic_preferences.h src/ags/X/ags_navigation.h src/ags/X/ags_listing_editor.h src/ags/X/ags_performance_preferences.c src/ags/X/ags_link_editor.h src/ags/X/ags_ladspa_browser_callbacks.c src/ags/X/ags_link_collection_editor.c src/ags/X/ags_preferences_callbacks.h src/ags/X/ags_machine_editor_callbacks.c src/ags/X/ags_menu_bar.h src/ags/X/ags_export_window_callbacks.c src/ags/X/ags_line_member_editor_callbacks.c src/ags/X/ags_link_collection_editor.h src/ags/X/ags_link_collection_editor_callbacks.h src/ags/X/ags_property_listing_editor.h src/ags/X/ags_navigation.c src/ags/X/ags_machine_editor.c src/ags/X/ags_line_member_editor.c src/ags/X/ags_ladspa_browser_callbacks.h src/ags/X/ags_line_editor.h src/ags/X/ags_listing_editor.c src/ags/object/ags_applicable.c src/ags/object/ags_seekable.h src/ags/object/ags_packable.c src/ags/object/ags_persistable.h src/ags/object/ags_packable.h src/ags/object/ags_applicable.h src/ags/object/ags_main_loop.c src/ags/object/ags_soundcard.c src/ags/object/ags_marshal.c src/ags/object/ags_mutable.h src/ags/object/ags_plugin.h src/ags/object/ags_stackable.h src/ags/object/ags_runnable.c src/ags/object/ags_tactable.h src/ags/object/ags_mutable.c src/ags/object/ags_runnable.h src/ags/object/ags_effect.c src/ags/object/ags_playable.c src/ags/object/ags_dynamic_connectable.c src/ags/object/ags_seekable.c src/ags/object/ags_countable.c src/ags/object/ags_plugin.c src/ags/object/ags_tree_iterator.h src/ags/object/ags_playable.h src/ags/object/ags_effect.h src/ags/object/ags_soundcard.h src/ags/object/ags_countable.h src/ags/object/ags_marshal.h src/ags/object/ags_portlet.h src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_tactable.c src/ags/object/ags_tree_iterator.c src/ags/object/ags_persistable.c src/ags/object/ags_main_loop.h src/ags/object/ags_stackable.c src/ags/object/ags_portlet.c src/ags/util/ags_id_generator.c src/ags/util/ags_id_generator.h src/ags/widget/ags_led.h src/ags/widget/ags_expander_set.c src/ags/widget/ags_expander_set.h src/ags/widget/ags_menu.c src/ags/widget/ags_hindicator.h src/ags/widget/ags_menu.h src/ags/widget/ags_timebar.c src/ags/widget/ags_dial.c src/ags/widget/ags_ruler.h src/ags/widget/ags_dial.h src/ags/widget/ags_segment.c src/ags/widget/ags_htimebar.c src/ags/widget/ags_option_menu.h src/ags/widget/ags_indicator.c src/ags/widget/ags_htimebar.h src/ags/widget/ags_option_menu.c src/ags/widget/ags_expander.h src/ags/widget/ags_menu_item.h src/ags/widget/ags_hindicator.c src/ags/widget/ags_cartesian.h src/ags/widget/ags_indicator.h src/ags/widget/ags_cartesian.c src/ags/widget/ags_menu_item.c src/ags/widget/ags_waveform.c src/ags/widget/ags_ruler.c src/ags/widget/ags_expander.c src/ags/widget/ags_vindicator.c src/ags/widget/ags_timebar.h src/ags/widget/ags_led.c src/ags/widget/ags_waveform.h src/ags/widget/ags_table.c src/ags/widget/ags_table.h src/ags/widget/ags_vindicator.h src/ags/widget/ags_segment.h src/ags/main.c src/ags/audio/task/ags_export_output.h src/ags/audio/task/ags_set_output_device.c src/ags/audio/task/ags_add_audio.h src/ags/audio/task/ags_set_samplerate.c src/ags/audio/task/ags_remove_point_from_selection.c src/ags/audio/task/ags_save_file.h src/ags/audio/task/ags_set_buffer_size.h src/ags/audio/task/ags_link_channel.c src/ags/audio/task/ags_save_file.c src/ags/audio/task/ags_append_audio_threaded.h src/ags/audio/task/ags_cancel_channel.h src/ags/audio/task/ags_apply_synth.h src/ags/audio/task/ags_seek_devout.h src/ags/audio/task/ags_append_recall.h src/ags/audio/task/ags_add_audio_signal.c src/ags/audio/task/ags_unref_audio_signal.c src/ags/audio/task/ags_remove_region_from_selection.c src/ags/audio/task/ags_change_indicator.h src/ags/audio/task/ags_remove_point_from_selection.h src/ags/audio/task/ags_set_audio_channels.h src/ags/audio/task/ags_scroll_on_play.h src/ags/audio/task/ags_remove_audio.h src/ags/audio/task/ags_remove_recall_container.c src/ags/audio/task/ags_remove_recall.c src/ags/audio/task/ags_seek_devout.c src/ags/audio/task/ags_append_recall.c src/ags/audio/task/ags_free_selection.h src/ags/audio/task/ags_add_recall_container.c src/ags/audio/task/ags_add_recall.c src/ags/audio/task/ags_export_output.c src/ags/audio/task/ags_init_channel.h src/ags/audio/task/ags_remove_note.c src/ags/audio/task/ags_apply_wavetable.h src/ags/audio/task/ags_add_audio_signal.h src/ags/audio/task/ags_cancel_recall.h src/ags/audio/task/ags_set_audio_channels.c src/ags/audio/task/ags_cancel_audio.c src/ags/audio/task/ags_unref_audio_signal.h src/ags/audio/task/ags_add_region_to_selection.c src/ags/audio/task/ags_change_tact.h src/ags/audio/task/ags_init_audio.c src/ags/audio/task/ags_channel_set_recycling.c src/ags/audio/task/ags_display_tact.c src/ags/audio/task/ags_add_point_to_selection.h src/ags/audio/task/ags_toggle_pattern_bit.h src/ags/audio/task/ags_append_channel.c src/ags/audio/task/ags_change_indicator.c src/ags/audio/task/ags_add_note.c src/ags/audio/task/ags_channel_set_recycling.h src/ags/audio/task/ags_cancel_audio.h src/ags/audio/task/recall/ags_set_muted.c src/ags/audio/task/recall/ags_set_muted.h src/ags/audio/task/recall/ags_apply_sequencer_length.c src/ags/audio/task/recall/ags_apply_bpm.h src/ags/audio/task/recall/ags_apply_tact.c src/ags/audio/task/recall/ags_apply_bpm.c src/ags/audio/task/recall/ags_apply_sequencer_length.h src/ags/audio/task/recall/ags_apply_tact.h src/ags/audio/task/ags_remove_region_from_selection.h src/ags/audio/task/ags_cancel_channel.c src/ags/audio/task/ags_add_recall_container.h src/ags/audio/task/ags_add_recall.h src/ags/audio/task/ags_add_note.h src/ags/audio/task/ags_start_devout.c src/ags/audio/task/ags_append_audio_threaded.c src/ags/audio/task/ags_append_audio.c src/ags/audio/task/ags_init_channel.c src/ags/audio/task/ags_remove_audio_signal.h src/ags/audio/task/ags_toggle_led.c src/ags/audio/task/ags_set_buffer_size.c src/ags/audio/task/ags_add_region_to_selection.h src/ags/audio/task/ags_audio_set_recycling.h src/ags/audio/task/ags_toggle_led.h src/ags/audio/task/ags_resize_audio.h src/ags/audio/task/ags_free_selection.c src/ags/audio/task/ags_add_audio.c src/ags/audio/task/ags_set_samplerate.h src/ags/audio/task/ags_apply_synth.c src/ags/audio/task/ags_open_single_file.h src/ags/audio/task/ags_remove_audio.c src/ags/audio/task/ags_cancel_recall.c src/ags/audio/task/ags_init_audio.h src/ags/audio/task/ags_remove_note.h src/ags/audio/task/ags_remove_audio_signal.c src/ags/audio/task/ags_audio_set_recycling.c src/ags/audio/task/ags_add_point_to_selection.c src/ags/audio/task/ags_scroll_on_play.c src/ags/audio/task/ags_set_devout_play_flags.c src/ags/audio/task/ags_apply_wavetable.c src/ags/audio/task/ags_add_line_member.c src/ags/audio/task/ags_open_file.h src/ags/audio/task/ags_set_output_device.h src/ags/audio/task/ags_toggle_pattern_bit.c src/ags/audio/task/ags_open_file.c src/ags/audio/task/ags_open_single_file.c src/ags/audio/task/ags_append_audio.h src/ags/audio/task/ags_start_devout.h src/ags/audio/task/ags_display_tact.h src/ags/audio/task/ags_remove_recall_container.h src/ags/audio/task/ags_remove_recall.h src/ags/audio/task/ags_change_tact.c src/ags/audio/task/ags_append_channel.h src/ags/audio/task/ags_resize_audio.c src/ags/audio/task/ags_link_channel.h src/ags/audio/task/ags_add_line_member.h src/ags/audio/task/ags_set_devout_play_flags.h src/ags/audio/ags_devout.c src/ags/audio/ags_recall_channel.h src/ags/audio/ags_timestamp_factory.h src/ags/audio/ags_garbage_collector.c src/ags/audio/ags_garbage_collector.h src/ags/audio/ags_recall_container.c src/ags/audio/ags_timestamp.c src/ags/audio/ags_channel_iter.h src/ags/audio/ags_recall_channel_run.c src/ags/audio/ags_audio.h src/ags/audio/ags_port.c src/ags/audio/ags_notation.c src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_recycling.c src/ags/audio/ags_recall_audio_signal.h src/ags/audio/ags_input.c src/ags/audio/ags_synths.c src/ags/audio/ags_input.h src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall_id.h src/ags/audio/ags_note.c src/ags/audio/ags_timestamp_factory.c src/ags/audio/ags_channel.c src/ags/audio/ags_recall_audio.c src/ags/audio/ags_audio_signal.c src/ags/audio/ags_output.h src/ags/audio/ags_libao.c src/ags/audio/file/ags_ipatch_sf2_reader.c src/ags/audio/file/ags_audio_file_xml.h src/ags/audio/file/ags_ipatch.c src/ags/audio/file/ags_audio_file.c src/ags/audio/file/ags_sndfile.h src/ags/audio/file/ags_ipatch.h src/ags/audio/file/ags_audio_file.h src/ags/audio/file/ags_ipatch_sf2_reader.h src/ags/audio/file/ags_audio_file_xml.c src/ags/audio/file/ags_sndfile.c src/ags/audio/ags_devout.h src/ags/audio/ags_port.h src/ags/audio/ags_note.h src/ags/audio/ags_timestamp.h src/ags/audio/ags_notation.h src/ags/audio/ags_recall_audio_run.c src/ags/audio/ags_recycling_container.c src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recall_recycling.h src/ags/audio/recall/ags_mute_audio.h src/ags/audio/recall/ags_clone_channel.c src/ags/audio/recall/ags_copy_channel.c src/ags/audio/recall/ags_copy_pattern_channel.c src/ags/audio/recall/ags_copy_recycling.c src/ags/audio/recall/ags_volume_audio_signal.h src/ags/audio/recall/ags_play_channel.h src/ags/audio/recall/ags_play_notation_audio_run.c src/ags/audio/recall/ags_buffer_audio_signal.c src/ags/audio/recall/ags_play_channel_run.c src/ags/audio/recall/ags_stream_channel_run.c src/ags/audio/recall/ags_copy_notation_audio_run.c src/ags/audio/recall/ags_mute_channel.c src/ags/audio/recall/ags_count_beats_audio.h src/ags/audio/recall/ags_copy_pattern_audio.c src/ags/audio/recall/ags_copy_pattern_audio_run.c src/ags/audio/recall/ags_clone_channel_run.h src/ags/audio/recall/ags_delay_audio.h src/ags/audio/recall/ags_copy_notation_audio_run.h src/ags/audio/recall/ags_stream.c src/ags/audio/recall/ags_play_audio_file.h src/ags/audio/recall/ags_loop_channel_run.c src/ags/audio/recall/ags_play_pattern.c src/ags/audio/recall/ags_stream_channel_run.h src/ags/audio/recall/ags_amplifier.h src/ags/audio/recall/ags_echo.c src/ags/audio/recall/ags_play_note.c src/ags/audio/recall/ags_buffer_channel.c src/ags/audio/recall/ags_clone_channel_run.c src/ags/audio/recall/ags_peak_channel.h src/ags/audio/recall/ags_play_recycling.h src/ags/audio/recall/ags_stream_channel.h src/ags/audio/recall/ags_amplifier.c src/ags/audio/recall/ags_mute_audio_signal.h src/ags/audio/recall/ags_copy_notation_audio.c src/ags/audio/recall/ags_buffer_channel_run.h src/ags/audio/recall/ags_copy_recycling.h src/ags/audio/recall/ags_down_mix.h src/ags/audio/recall/ags_volume_recycling.h src/ags/audio/recall/ags_volume_channel_run.h src/ags/audio/recall/ags_stream_channel.c src/ags/audio/recall/ags_echo.h src/ags/audio/recall/ags_delay_audio_run.h src/ags/audio/recall/ags_stream_audio_signal.h src/ags/audio/recall/ags_mute_recycling.c src/ags/audio/recall/ags_play_pattern.h src/ags/audio/recall/ags_delay_audio.c src/ags/audio/recall/ags_buffer_recycling.c src/ags/audio/recall/ags_stream_recycling.h src/ags/audio/recall/ags_play_audio_signal.c src/ags/audio/recall/ags_play_channel_run_master.h src/ags/audio/recall/ags_volume_recycling.c src/ags/audio/recall/ags_loop_channel.c src/ags/audio/recall/ags_buffer_recycling.h src/ags/audio/recall/ags_copy_pattern_channel_run.h src/ags/audio/recall/ags_peak_channel_run.c src/ags/audio/recall/ags_loop_channel.h src/ags/audio/recall/ags_play_audio.h src/ags/audio/recall/ags_copy_audio_signal.c src/ags/audio/recall/ags_mute_channel_run.h src/ags/audio/recall/ags_copy_channel.h src/ags/audio/recall/ags_play_notation_audio.h src/ags/audio/recall/ags_play_note.h src/ags/audio/recall/ags_synths.h src/ags/audio/recall/ags_play_recycling.c src/ags/audio/recall/ags_mute_channel_run.c src/ags/audio/recall/ags_buffer_channel.h src/ags/audio/recall/ags_play_notation_audio_run.h src/ags/audio/recall/ags_volume_channel_run.c src/ags/audio/recall/ags_play_channel_run_master.c src/ags/audio/recall/ags_stream.h src/ags/audio/recall/ags_copy_pattern_channel.h src/ags/audio/recall/ags_play_channel_run.h src/ags/audio/recall/ags_mute_channel.h src/ags/audio/recall/ags_mute_audio.c src/ags/audio/recall/ags_volume_channel.h src/ags/audio/recall/ags_volume_audio_signal.c src/ags/audio/recall/ags_stream_audio_signal.c src/ags/audio/recall/ags_count_beats_audio_run.h src/ags/audio/recall/ags_copy_audio_signal.h src/ags/audio/recall/ags_copy_channel_run.c src/ags/audio/recall/ags_delay_audio_run.c src/ags/audio/recall/ags_mute_audio_signal.c src/ags/audio/recall/ags_copy_notation_audio.h src/ags/audio/recall/ags_clone_channel.h src/ags/audio/recall/ags_buffer_channel_run.c src/ags/audio/recall/ags_play_audio.c src/ags/audio/recall/ags_copy_pattern_audio.h src/ags/audio/recall/ags_count_beats_audio.c src/ags/audio/recall/ags_play_channel.c src/ags/audio/recall/ags_count_beats_audio_run.c src/ags/audio/recall/ags_copy_pattern_audio_run.h src/ags/audio/recall/ags_stream_recycling.c src/ags/audio/recall/ags_play_audio_file.c src/ags/audio/recall/ags_play_notation_audio.c src/ags/audio/recall/ags_loop_channel_run.h src/ags/audio/recall/ags_mute_recycling.h src/ags/audio/recall/ags_peak_channel.c src/ags/audio/recall/ags_buffer_audio_signal.h src/ags/audio/recall/ags_peak_channel_run.h src/ags/audio/recall/ags_volume_channel.c src/ags/audio/recall/ags_play_audio_signal.h src/ags/audio/recall/ags_copy_channel_run.h src/ags/audio/recall/ags_copy_pattern_channel_run.c src/ags/audio/ags_recall_ladspa.h src/ags/audio/ags_recall_recycling.c src/ags/audio/ags_recall.h src/ags/audio/ags_recall_channel_run.h src/ags/audio/ags_recall_audio.h src/ags/audio/ags_channel.h src/ags/audio/ags_pattern.c src/ags/audio/ags_synths.h src/ags/audio/ags_recall_factory.h src/ags/audio/ags_recall_audio_signal.c src/ags/audio/ags_config.h src/ags/audio/ags_effect.h src/ags/audio/ags_pattern.h src/ags/audio/ags_output.c src/ags/audio/ags_recall_channel_run_dummy.c src/ags/audio/ags_recall_dependency.c src/ags/audio/ags_channel_iter.c src/ags/audio/ags_recall_channel_run_dummy.h src/ags/audio/ags_recall.c src/ags/audio/ags_recall_ladspa_run.h src/ags/audio/ags_recall_recycling_dummy.h src/ags/audio/ags_libao.h src/ags/audio/ags_task.h src/ags/audio/ags_config.c src/ags/audio/ags_recall_channel.c src/ags/audio/ags_audio.c src/ags/audio/ags_recall_ladspa_run.c src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_id.c src/ags/audio/ags_task.c src/ags/audio/ags_recall_ladspa.c src/ags/audio/ags_recall_factory.c src/ags/audio/ags_recall_container.h src/ags/audio/ags_recycling.h src/ags/audio/ags_recall_recycling_dummy.c src/ags/file/ags_file_util.h src/ags/file/ags_file_sound.h src/ags/file/ags_file_thread.h src/ags/file/ags_file_gui.h src/ags/file/ags_file_lookup.h src/ags/file/ags_file_id_ref.c src/ags/file/ags_file.h src/ags/file/ags_file_link.c src/ags/file/ags_file_write.h src/ags/file/ags_file_read.h src/ags/file/ags_file_id_ref.h src/ags/file/ags_file_sound.c src/ags/file/ags_file_thread.c src/ags/file/ags_file_util.c src/ags/file/ags_file_lookup.c src/ags/file/ags_file_launch.c src/ags/file/ags_file_stock.h src/ags/file/ags_file_gui.c src/ags/file/ags_file.c src/ags/file/ags_file_launch.h src/ags/file/ags_file_link.h src/ags/thread/ags_record_thread.c src/ags/thread/ags_thread_pool.h src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_mutex_manager.h src/ags/thread/ags_mutex_manager.c src/ags/thread/ags_task_thread.h src/ags/thread/ags_audio_loop.h src/ags/thread/ags_gui_task_thread.h src/ags/thread/ags_task_completion.h src/ags/thread/ags_task_completion.c src/ags/thread/ags_recycling_thread.h src/ags/thread/ags_autosave_thread.h src/ags/thread/ags_returnable_thread.c src/ags/thread/ags_autosave_thread.c src/ags/thread/ags_export_thread.h src/ags/thread/ags_history.h src/ags/thread/ags_iterator_thread.h src/ags/thread/ags_devout_thread.c src/ags/thread/ags_thread_pool.c src/ags/thread/ags_gui_task_thread.c src/ags/thread/ags_gui_thread.h src/ags/thread/ags_task_thread.c src/ags/thread/ags_timestamp_thread.c src/ags/thread/ags_thread-posix.h src/ags/thread/ags_async_queue.h src/ags/thread/ags_record_thread.h src/ags/thread/ags_recycling_thread_callbacks.c src/ags/thread/ags_recycling_thread_callbacks.h src/ags/thread/ags_iterator_thread.c src/ags/thread/ags_async_queue.c src/ags/thread/ags_export_thread.c src/ags/thread/ags_audio_loop.c src/ags/thread/ags_returnable_thread.h src/ags/thread/ags_recycling_thread.c src/ags/thread/ags_devout_thread.h src/ags/thread/ags_single_thread.h src/ags/thread/ags_thread-posix.c src/ags/thread/ags_history.c src/ags/thread/ags_gui_thread.c src/ags/thread/ags_single_thread.c src/ags/server/ags_registry.c src/ags/server/ags_registry.h src/ags/server/ags_server.h src/ags/server/ags_remote_task.h src/ags/server/ags_remote_task.c src/ags/server/ags_server.c src/ags/plugin/ags_plugin_stock.h src/ags/plugin/ags_plugin_factory.h src/ags/plugin/ags_ladspa_manager.h src/ags/plugin/ags_plugin_factory.c src/ags/plugin/ags_ladspa_manager.c src/ags/main.h
+ags_SOURCES = ./src/ags-lib/object/ags_connectable.c ./src/ags-lib/object/ags_connectable.h src/ags/lib/ags_combo_box_text.c src/ags/lib/ags_list.c src/ags/lib/ags_container.c src/ags/lib/ags_parameter.h src/ags/lib/ags_list.h src/ags/lib/ags_log.c src/ags/lib/ags_container.h src/ags/lib/ags_combo_box_text.h src/ags/lib/ags_log.h src/ags/lib/ags_parameter.c src/ags/X/editor/ags_notebook_callbacks.c src/ags/X/editor/ags_meter.h src/ags/X/editor/ags_toolbar.h src/ags/X/editor/ags_machine_radio_button.h src/ags/X/editor/ags_file_selection_callbacks.h src/ags/X/editor/ags_notebook_callbacks.h src/ags/X/editor/ags_note_edit.h src/ags/X/editor/ags_meter_callbacks.c src/ags/X/editor/ags_notebook.h src/ags/X/editor/ags_sf2_chooser.h src/ags/X/editor/ags_toolbar_mode_stock.h src/ags/X/editor/ags_meter_callbacks.h src/ags/X/editor/ags_toolbar_callbacks.c src/ags/X/editor/ags_machine_selector.c src/ags/X/editor/ags_machine_selector_callbacks.c src/ags/X/editor/ags_machine_radio_button.c src/ags/X/editor/ags_sf2_chooser.c src/ags/X/editor/ags_machine_selector_callbacks.h src/ags/X/editor/ags_sf2_chooser_callbacks.c src/ags/X/editor/ags_notebook.c src/ags/X/editor/ags_note_edit_callbacks.c src/ags/X/editor/ags_file_selection_callbacks.c src/ags/X/editor/ags_machine_selection.c src/ags/X/editor/ags_inline_player_callbacks.h src/ags/X/editor/ags_inline_player.c src/ags/X/editor/ags_meter.c src/ags/X/editor/ags_file_selection.h src/ags/X/editor/ags_inline_player.h src/ags/X/editor/ags_sf2_chooser_callbacks.h src/ags/X/editor/ags_file_selection.c src/ags/X/editor/ags_machine_selector.h src/ags/X/editor/ags_note_edit_callbacks.h src/ags/X/editor/ags_note_edit.c src/ags/X/editor/ags_inline_player_callbacks.c src/ags/X/editor/ags_toolbar_callbacks.h src/ags/X/editor/ags_machine_selection.h src/ags/X/editor/ags_toolbar.c src/ags/X/ags_line_callbacks.h src/ags/X/ags_plugin_preferences.c src/ags/X/ags_link_editor.c src/ags/X/ags_pad_callbacks.h src/ags/X/ags_machine_callbacks.c src/ags/X/ags_server_preferences_callbacks.h src/ags/X/ags_listing_editor_callbacks.c src/ags/X/ags_link_collection_editor_callbacks.c src/ags/X/ags_generic_preferences_callbacks.c src/ags/X/ags_property_collection_editor_callbacks.c src/ags/X/ags_property_collection_editor.h src/ags/X/ags_resize_editor.h src/ags/X/ags_property_editor.h src/ags/X/ags_window_callbacks.h src/ags/X/ags_property_editor_callbacks.c src/ags/X/machine/ags_synth_callbacks.h src/ags/X/machine/ags_synth.c src/ags/X/machine/ags_mixer.c src/ags/X/machine/ags_matrix_callbacks.c src/ags/X/machine/ags_panel_input_line.c src/ags/X/machine/ags_synth_input_line.c src/ags/X/machine/ags_drum_callbacks.h src/ags/X/machine/ags_mixer_callbacks.c src/ags/X/machine/ags_synth_callbacks.c src/ags/X/machine/ags_ffplayer_callbacks.h src/ags/X/machine/ags_drum_input_line.h src/ags/X/machine/ags_matrix.h src/ags/X/machine/ags_mixer_input_line.c src/ags/X/machine/ags_oscillator.c src/ags/X/machine/ags_oscillator.h src/ags/X/machine/ags_oscillator_callbacks.h src/ags/X/machine/ags_mixer.h src/ags/X/machine/ags_panel_input_pad.h src/ags/X/machine/ags_panel_input_pad.c src/ags/X/machine/ags_matrix.c src/ags/X/machine/ags_panel.h src/ags/X/machine/ags_drum_output_line_callbacks.c src/ags/X/machine/ags_ffplayer.h src/ags/X/machine/ags_panel_callbacks.c src/ags/X/machine/ags_mixer_input_pad.c src/ags/X/machine/ags_panel.c src/ags/X/machine/ags_drum.c src/ags/X/machine/ags_matrix_callbacks.h src/ags/X/machine/ags_drum_output_line.h src/ags/X/machine/ags_drum_output_pad.h src/ags/X/machine/ags_synth_input_pad.h src/ags/X/machine/ags_panel_callbacks.h src/ags/X/machine/ags_ffplayer.c src/ags/X/machine/ags_drum_output_line_callbacks.h src/ags/X/machine/ags_drum_output_pad_callbacks.c src/ags/X/machine/ags_drum_output_pad_callbacks.h src/ags/X/machine/ags_drum_input_pad_callbacks.h src/ags/X/machine/ags_oscillator_callbacks.c src/ags/X/machine/ags_drum_callbacks.c src/ags/X/machine/ags_synth_input_line.h src/ags/X/machine/ags_drum_input_pad_callbacks.c src/ags/X/machine/ags_drum_input_pad.c src/ags/X/machine/ags_panel_input_line.h src/ags/X/machine/ags_drum_input_line_callbacks.h src/ags/X/machine/ags_drum_output_line.c src/ags/X/machine/ags_mixer_callbacks.h src/ags/X/machine/ags_synth.h src/ags/X/machine/ags_mixer_input_line.h src/ags/X/machine/ags_drum.h src/ags/X/machine/ags_drum_input_line.c src/ags/X/machine/ags_ffplayer_callbacks.c src/ags/X/machine/ags_drum_output_pad.c src/ags/X/machine/ags_drum_input_pad.h src/ags/X/machine/ags_drum_input_line_callbacks.c src/ags/X/machine/ags_mixer_input_pad.h src/ags/X/machine/ags_synth_input_pad.c src/ags/X/ags_server_preferences.h src/ags/X/ags_line_editor_callbacks.h src/ags/X/ags_pad_editor_callbacks.c src/ags/X/ags_listing_editor_callbacks.h src/ags/X/ags_line_member_callbacks.c src/ags/X/ags_editor.h src/ags/X/ags_machine_editor.h src/ags/X/ags_plugin_preferences_callbacks.h src/ags/X/ags_export_window_callbacks.h src/ags/X/ags_editor_callbacks.c src/ags/X/ags_pad_editor.h src/ags/X/ags_server_preferences.c src/ags/X/ags_line_editor.c src/ags/X/ags_ladspa_browser.h src/ags/X/ags_audio_preferences.c src/ags/X/ags_pad.c src/ags/X/ags_line.c src/ags/X/ags_menu_bar_callbacks.c src/ags/X/ags_generic_preferences_callbacks.h src/ags/X/ags_pad.h src/ags/X/ags_audio_preferences_callbacks.h src/ags/X/ags_generic_preferences.c src/ags/X/ags_window.c src/ags/X/ags_machine_editor_callbacks.h src/ags/X/ags_editor_callbacks.h src/ags/X/ags_menu_bar_callbacks.h src/ags/X/ags_line_member_editor.h src/ags/X/ags_property_collection_editor_callbacks.h src/ags/X/ags_line_editor_callbacks.c src/ags/X/ags_property_editor.c src/ags/X/ags_link_editor_callbacks.c src/ags/X/ags_server_preferences_callbacks.c src/ags/X/ags_pad_callbacks.c src/ags/X/ags_line_member.h src/ags/X/ags_audio_preferences_callbacks.c src/ags/X/ags_performance_preferences.h src/ags/X/ags_property_collection_editor.c src/ags/X/ags_performance_preferences_callbacks.h src/ags/X/ags_line.h src/ags/X/ags_machine.c src/ags/X/ags_preferences_callbacks.c src/ags/X/ags_export_window.c src/ags/X/ags_menu_bar.c src/ags/X/ags_plugin_preferences_callbacks.c src/ags/X/ags_line_member_callbacks.h src/ags/X/ags_preferences.c src/ags/X/ags_export_window.h src/ags/X/ags_pad_editor_callbacks.h src/ags/X/ags_window.h src/ags/X/ags_machine_callbacks.h src/ags/X/ags_machine.h src/ags/X/ags_line_callbacks.c src/ags/X/ags_link_editor_callbacks.h src/ags/X/ags_navigation_callbacks.h src/ags/X/ags_pad_editor.c src/ags/X/ags_ladspa_browser.c src/ags/X/ags_editor.c src/ags/X/ags_resize_editor.c src/ags/X/ags_property_listing_editor.c src/ags/X/ags_property_editor_callbacks.h src/ags/X/ags_line_member_editor_callbacks.h src/ags/X/ags_window_callbacks.c src/ags/X/ags_audio_preferences.h src/ags/X/ags_navigation_callbacks.c src/ags/X/ags_plugin_preferences.h src/ags/X/ags_performance_preferences_callbacks.c src/ags/X/ags_line_member.c src/ags/X/ags_preferences.h src/ags/X/ags_generic_preferences.h src/ags/X/ags_navigation.h src/ags/X/ags_listing_editor.h src/ags/X/ags_performance_preferences.c src/ags/X/ags_link_editor.h src/ags/X/ags_ladspa_browser_callbacks.c src/ags/X/ags_link_collection_editor.c src/ags/X/ags_preferences_callbacks.h src/ags/X/ags_machine_editor_callbacks.c src/ags/X/ags_menu_bar.h src/ags/X/ags_export_window_callbacks.c src/ags/X/ags_line_member_editor_callbacks.c src/ags/X/ags_link_collection_editor.h src/ags/X/ags_link_collection_editor_callbacks.h src/ags/X/ags_property_listing_editor.h src/ags/X/ags_navigation.c src/ags/X/ags_machine_editor.c src/ags/X/ags_line_member_editor.c src/ags/X/ags_ladspa_browser_callbacks.h src/ags/X/ags_line_editor.h src/ags/X/ags_listing_editor.c src/ags/object/ags_applicable.c src/ags/object/ags_seekable.h src/ags/object/ags_packable.c src/ags/object/ags_persistable.h src/ags/object/ags_packable.h src/ags/object/ags_applicable.h src/ags/object/ags_main_loop.c src/ags/object/ags_soundcard.c src/ags/object/ags_marshal.c src/ags/object/ags_mutable.h src/ags/object/ags_plugin.h src/ags/object/ags_stackable.h src/ags/object/ags_runnable.c src/ags/object/ags_tactable.h src/ags/object/ags_mutable.c src/ags/object/ags_runnable.h src/ags/object/ags_effect.c src/ags/object/ags_playable.c src/ags/object/ags_dynamic_connectable.c src/ags/object/ags_seekable.c src/ags/object/ags_countable.c src/ags/object/ags_plugin.c src/ags/object/ags_tree_iterator.h src/ags/object/ags_playable.h src/ags/object/ags_effect.h src/ags/object/ags_soundcard.h src/ags/object/ags_countable.h src/ags/object/ags_marshal.h src/ags/object/ags_portlet.h src/ags/object/ags_dynamic_connectable.h src/ags/object/ags_tactable.c src/ags/object/ags_tree_iterator.c src/ags/object/ags_persistable.c src/ags/object/ags_main_loop.h src/ags/object/ags_stackable.c src/ags/object/ags_portlet.c src/ags/util/ags_id_generator.c src/ags/util/ags_id_generator.h src/ags/widget/ags_led.h src/ags/widget/ags_expander_set.c src/ags/widget/ags_expander_set.h src/ags/widget/ags_menu.c src/ags/widget/ags_hindicator.h src/ags/widget/ags_menu.h src/ags/widget/ags_timebar.c src/ags/widget/ags_dial.c src/ags/widget/ags_ruler.h src/ags/widget/ags_dial.h src/ags/widget/ags_segment.c src/ags/widget/ags_htimebar.c src/ags/widget/ags_option_menu.h src/ags/widget/ags_indicator.c src/ags/widget/ags_htimebar.h src/ags/widget/ags_option_menu.c src/ags/widget/ags_expander.h src/ags/widget/ags_menu_item.h src/ags/widget/ags_hindicator.c src/ags/widget/ags_cartesian.h src/ags/widget/ags_indicator.h src/ags/widget/ags_cartesian.c src/ags/widget/ags_menu_item.c src/ags/widget/ags_waveform.c src/ags/widget/ags_ruler.c src/ags/widget/ags_expander.c src/ags/widget/ags_vindicator.c src/ags/widget/ags_timebar.h src/ags/widget/ags_led.c src/ags/widget/ags_waveform.h src/ags/widget/ags_table.c src/ags/widget/ags_table.h src/ags/widget/ags_vindicator.h src/ags/widget/ags_segment.h src/ags/main.c src/ags/audio/task/ags_export_output.h src/ags/audio/task/ags_set_output_device.c src/ags/audio/task/ags_add_audio.h src/ags/audio/task/ags_set_samplerate.c src/ags/audio/task/ags_remove_point_from_selection.c src/ags/audio/task/ags_save_file.h src/ags/audio/task/ags_set_buffer_size.h src/ags/audio/task/ags_link_channel.c src/ags/audio/task/ags_save_file.c src/ags/audio/task/ags_append_audio_threaded.h src/ags/audio/task/ags_cancel_channel.h src/ags/audio/task/ags_apply_synth.h src/ags/audio/task/ags_seek_devout.h src/ags/audio/task/ags_append_recall.h src/ags/audio/task/ags_add_audio_signal.c src/ags/audio/task/ags_unref_audio_signal.c src/ags/audio/task/ags_remove_region_from_selection.c src/ags/audio/task/ags_change_indicator.h src/ags/audio/task/ags_remove_point_from_selection.h src/ags/audio/task/ags_set_audio_channels.h src/ags/audio/task/ags_scroll_on_play.h src/ags/audio/task/ags_remove_audio.h src/ags/audio/task/ags_remove_recall_container.c src/ags/audio/task/ags_remove_recall.c src/ags/audio/task/ags_seek_devout.c src/ags/audio/task/ags_append_recall.c src/ags/audio/task/ags_free_selection.h src/ags/audio/task/ags_add_recall_container.c src/ags/audio/task/ags_add_recall.c src/ags/audio/task/ags_export_output.c src/ags/audio/task/ags_init_channel.h src/ags/audio/task/ags_remove_note.c src/ags/audio/task/ags_apply_wavetable.h src/ags/audio/task/ags_add_audio_signal.h src/ags/audio/task/ags_cancel_recall.h src/ags/audio/task/ags_set_audio_channels.c src/ags/audio/task/ags_cancel_audio.c src/ags/audio/task/ags_unref_audio_signal.h src/ags/audio/task/ags_add_region_to_selection.c src/ags/audio/task/ags_change_tact.h src/ags/audio/task/ags_init_audio.c src/ags/audio/task/ags_channel_set_recycling.c src/ags/audio/task/ags_display_tact.c src/ags/audio/task/ags_add_point_to_selection.h src/ags/audio/task/ags_toggle_pattern_bit.h src/ags/audio/task/ags_append_channel.c src/ags/audio/task/ags_change_indicator.c src/ags/audio/task/ags_add_note.c src/ags/audio/task/ags_channel_set_recycling.h src/ags/audio/task/ags_cancel_audio.h src/ags/audio/task/recall/ags_set_muted.c src/ags/audio/task/recall/ags_set_muted.h src/ags/audio/task/recall/ags_apply_sequencer_length.c src/ags/audio/task/recall/ags_apply_bpm.h src/ags/audio/task/recall/ags_apply_tact.c src/ags/audio/task/recall/ags_apply_bpm.c src/ags/audio/task/recall/ags_apply_sequencer_length.h src/ags/audio/task/recall/ags_apply_tact.h src/ags/audio/task/ags_remove_region_from_selection.h src/ags/audio/task/ags_cancel_channel.c src/ags/audio/task/ags_add_recall_container.h src/ags/audio/task/ags_add_recall.h src/ags/audio/task/ags_add_note.h src/ags/audio/task/ags_start_devout.c src/ags/audio/task/ags_append_audio_threaded.c src/ags/audio/task/ags_append_audio.c src/ags/audio/task/ags_init_channel.c src/ags/audio/task/ags_remove_audio_signal.h src/ags/audio/task/ags_toggle_led.c src/ags/audio/task/ags_set_buffer_size.c src/ags/audio/task/ags_add_region_to_selection.h src/ags/audio/task/ags_audio_set_recycling.h src/ags/audio/task/ags_toggle_led.h src/ags/audio/task/ags_resize_audio.h src/ags/audio/task/ags_free_selection.c src/ags/audio/task/ags_add_audio.c src/ags/audio/task/ags_set_samplerate.h src/ags/audio/task/ags_apply_synth.c src/ags/audio/task/ags_open_single_file.h src/ags/audio/task/ags_remove_audio.c src/ags/audio/task/ags_cancel_recall.c src/ags/audio/task/ags_init_audio.h src/ags/audio/task/ags_remove_note.h src/ags/audio/task/ags_remove_audio_signal.c src/ags/audio/task/ags_audio_set_recycling.c src/ags/audio/task/ags_add_point_to_selection.c src/ags/audio/task/ags_scroll_on_play.c src/ags/audio/task/ags_set_devout_play_flags.c src/ags/audio/task/ags_apply_wavetable.c src/ags/audio/task/ags_add_line_member.c src/ags/audio/task/ags_open_file.h src/ags/audio/task/ags_set_output_device.h src/ags/audio/task/ags_toggle_pattern_bit.c src/ags/audio/task/ags_open_file.c src/ags/audio/task/ags_open_single_file.c src/ags/audio/task/ags_append_audio.h src/ags/audio/task/ags_start_devout.h src/ags/audio/task/ags_display_tact.h src/ags/audio/task/ags_remove_recall_container.h src/ags/audio/task/ags_remove_recall.h src/ags/audio/task/ags_change_tact.c src/ags/audio/task/ags_append_channel.h src/ags/audio/task/ags_resize_audio.c src/ags/audio/task/ags_link_channel.h src/ags/audio/task/ags_add_line_member.h src/ags/audio/task/ags_set_devout_play_flags.h src/ags/audio/ags_devout.c src/ags/audio/ags_recall_channel.h src/ags/audio/ags_timestamp_factory.h src/ags/audio/ags_garbage_collector.c src/ags/audio/ags_garbage_collector.h src/ags/audio/ags_recall_container.c src/ags/audio/ags_timestamp.c src/ags/audio/ags_channel_iter.h src/ags/audio/ags_recall_channel_run.c src/ags/audio/ags_audio.h src/ags/audio/ags_port.c src/ags/audio/ags_notation.c src/ags/audio/ags_recall_dependency.h src/ags/audio/ags_recycling.c src/ags/audio/ags_recall_audio_signal.h src/ags/audio/ags_input.c src/ags/audio/ags_synths.c src/ags/audio/ags_input.h src/ags/audio/ags_recycling_container.h src/ags/audio/ags_recall_id.h src/ags/audio/ags_note.c src/ags/audio/ags_timestamp_factory.c src/ags/audio/ags_channel.c src/ags/audio/ags_recall_audio.c src/ags/audio/ags_audio_signal.c src/ags/audio/ags_output.h src/ags/audio/ags_libao.c src/ags/audio/file/ags_ipatch_sf2_reader.c src/ags/audio/file/ags_audio_file_xml.h src/ags/audio/file/ags_ipatch.c src/ags/audio/file/ags_audio_file.c src/ags/audio/file/ags_sndfile.h src/ags/audio/file/ags_ipatch.h src/ags/audio/file/ags_audio_file.h src/ags/audio/file/ags_ipatch_sf2_reader.h src/ags/audio/file/ags_audio_file_xml.c src/ags/audio/file/ags_sndfile.c src/ags/audio/ags_devout.h src/ags/audio/ags_port.h src/ags/audio/ags_note.h src/ags/audio/ags_timestamp.h src/ags/audio/ags_notation.h src/ags/audio/ags_recall_audio_run.c src/ags/audio/ags_recycling_container.c src/ags/audio/ags_audio_signal.h src/ags/audio/ags_recall_recycling.h src/ags/audio/recall/ags_mute_audio.h src/ags/audio/recall/ags_clone_channel.c src/ags/audio/recall/ags_copy_channel.c src/ags/audio/recall/ags_copy_pattern_channel.c src/ags/audio/recall/ags_copy_recycling.c src/ags/audio/recall/ags_volume_audio_signal.h src/ags/audio/recall/ags_play_channel.h src/ags/audio/recall/ags_play_notation_audio_run.c src/ags/audio/recall/ags_buffer_audio_signal.c src/ags/audio/recall/ags_play_channel_run.c src/ags/audio/recall/ags_stream_channel_run.c src/ags/audio/recall/ags_copy_notation_audio_run.c src/ags/audio/recall/ags_mute_channel.c src/ags/audio/recall/ags_count_beats_audio.h src/ags/audio/recall/ags_copy_pattern_audio.c src/ags/audio/recall/ags_copy_pattern_audio_run.c src/ags/audio/recall/ags_clone_channel_run.h src/ags/audio/recall/ags_delay_audio.h src/ags/audio/recall/ags_copy_notation_audio_run.h src/ags/audio/recall/ags_stream.c src/ags/audio/recall/ags_play_audio_file.h src/ags/audio/recall/ags_loop_channel_run.c src/ags/audio/recall/ags_play_pattern.c src/ags/audio/recall/ags_stream_channel_run.h src/ags/audio/recall/ags_amplifier.h src/ags/audio/recall/ags_echo.c src/ags/audio/recall/ags_play_note.c src/ags/audio/recall/ags_buffer_channel.c src/ags/audio/recall/ags_clone_channel_run.c src/ags/audio/recall/ags_peak_channel.h src/ags/audio/recall/ags_peak_recycling.h src/ags/audio/recall/ags_peak_audio_signal.h src/ags/audio/recall/ags_play_recycling.h src/ags/audio/recall/ags_stream_channel.h src/ags/audio/recall/ags_amplifier.c src/ags/audio/recall/ags_mute_audio_signal.h src/ags/audio/recall/ags_copy_notation_audio.c src/ags/audio/recall/ags_buffer_channel_run.h src/ags/audio/recall/ags_copy_recycling.h src/ags/audio/recall/ags_down_mix.h src/ags/audio/recall/ags_volume_recycling.h src/ags/audio/recall/ags_volume_channel_run.h src/ags/audio/recall/ags_stream_channel.c src/ags/audio/recall/ags_echo.h src/ags/audio/recall/ags_delay_audio_run.h src/ags/audio/recall/ags_stream_audio_signal.h src/ags/audio/recall/ags_mute_recycling.c src/ags/audio/recall/ags_play_pattern.h src/ags/audio/recall/ags_delay_audio.c src/ags/audio/recall/ags_buffer_recycling.c src/ags/audio/recall/ags_stream_recycling.h src/ags/audio/recall/ags_play_audio_signal.c src/ags/audio/recall/ags_play_channel_run_master.h src/ags/audio/recall/ags_volume_recycling.c src/ags/audio/recall/ags_loop_channel.c src/ags/audio/recall/ags_buffer_recycling.h src/ags/audio/recall/ags_copy_pattern_channel_run.h src/ags/audio/recall/ags_peak_channel_run.c src/ags/audio/recall/ags_peak_recycling.c src/ags/audio/recall/ags_peak_audio_signal.c src/ags/audio/recall/ags_loop_channel.h src/ags/audio/recall/ags_play_audio.h src/ags/audio/recall/ags_copy_audio_signal.c src/ags/audio/recall/ags_mute_channel_run.h src/ags/audio/recall/ags_copy_channel.h src/ags/audio/recall/ags_play_notation_audio.h src/ags/audio/recall/ags_play_note.h src/ags/audio/recall/ags_synths.h src/ags/audio/recall/ags_play_recycling.c src/ags/audio/recall/ags_mute_channel_run.c src/ags/audio/recall/ags_buffer_channel.h src/ags/audio/recall/ags_play_notation_audio_run.h src/ags/audio/recall/ags_volume_channel_run.c src/ags/audio/recall/ags_play_channel_run_master.c src/ags/audio/recall/ags_stream.h src/ags/audio/recall/ags_copy_pattern_channel.h src/ags/audio/recall/ags_play_channel_run.h src/ags/audio/recall/ags_mute_channel.h src/ags/audio/recall/ags_mute_audio.c src/ags/audio/recall/ags_volume_channel.h src/ags/audio/recall/ags_volume_audio_signal.c src/ags/audio/recall/ags_stream_audio_signal.c src/ags/audio/recall/ags_count_beats_audio_run.h src/ags/audio/recall/ags_copy_audio_signal.h src/ags/audio/recall/ags_copy_channel_run.c src/ags/audio/recall/ags_delay_audio_run.c src/ags/audio/recall/ags_mute_audio_signal.c src/ags/audio/recall/ags_copy_notation_audio.h src/ags/audio/recall/ags_clone_channel.h src/ags/audio/recall/ags_buffer_channel_run.c src/ags/audio/recall/ags_play_audio.c src/ags/audio/recall/ags_copy_pattern_audio.h src/ags/audio/recall/ags_count_beats_audio.c src/ags/audio/recall/ags_play_channel.c src/ags/audio/recall/ags_count_beats_audio_run.c src/ags/audio/recall/ags_copy_pattern_audio_run.h src/ags/audio/recall/ags_stream_recycling.c src/ags/audio/recall/ags_play_audio_file.c src/ags/audio/recall/ags_play_notation_audio.c src/ags/audio/recall/ags_loop_channel_run.h src/ags/audio/recall/ags_mute_recycling.h src/ags/audio/recall/ags_peak_channel.c src/ags/audio/recall/ags_buffer_audio_signal.h src/ags/audio/recall/ags_peak_channel_run.h src/ags/audio/recall/ags_volume_channel.c src/ags/audio/recall/ags_play_audio_signal.h src/ags/audio/recall/ags_copy_channel_run.h src/ags/audio/recall/ags_copy_pattern_channel_run.c src/ags/audio/ags_recall_ladspa.h src/ags/audio/ags_recall_recycling.c src/ags/audio/ags_recall.h src/ags/audio/ags_recall_channel_run.h src/ags/audio/ags_recall_audio.h src/ags/audio/ags_channel.h src/ags/audio/ags_pattern.c src/ags/audio/ags_synths.h src/ags/audio/ags_recall_factory.h src/ags/audio/ags_recall_audio_signal.c src/ags/audio/ags_config.h src/ags/audio/ags_effect.h src/ags/audio/ags_pattern.h src/ags/audio/ags_output.c src/ags/audio/ags_recall_channel_run_dummy.c src/ags/audio/ags_recall_dependency.c src/ags/audio/ags_channel_iter.c src/ags/audio/ags_recall_channel_run_dummy.h src/ags/audio/ags_recall.c src/ags/audio/ags_recall_ladspa_run.h src/ags/audio/ags_recall_recycling_dummy.h src/ags/audio/ags_libao.h src/ags/audio/ags_task.h src/ags/audio/ags_config.c src/ags/audio/ags_recall_channel.c src/ags/audio/ags_audio.c src/ags/audio/ags_recall_ladspa_run.c src/ags/audio/ags_recall_audio_run.h src/ags/audio/ags_recall_id.c src/ags/audio/ags_task.c src/ags/audio/ags_recall_ladspa.c src/ags/audio/ags_recall_factory.c src/ags/audio/ags_recall_container.h src/ags/audio/ags_recycling.h src/ags/audio/ags_recall_recycling_dummy.c src/ags/file/ags_file_util.h src/ags/file/ags_file_sound.h src/ags/file/ags_file_thread.h src/ags/file/ags_file_gui.h src/ags/file/ags_file_lookup.h src/ags/file/ags_file_id_ref.c src/ags/file/ags_file.h src/ags/file/ags_file_link.c src/ags/file/ags_file_write.h src/ags/file/ags_file_read.h src/ags/file/ags_file_id_ref.h src/ags/file/ags_file_sound.c src/ags/file/ags_file_thread.c src/ags/file/ags_file_util.c src/ags/file/ags_file_lookup.c src/ags/file/ags_file_launch.c src/ags/file/ags_file_stock.h src/ags/file/ags_file_gui.c src/ags/file/ags_file.c src/ags/file/ags_file_launch.h src/ags/file/ags_file_link.h src/ags/thread/ags_record_thread.c src/ags/thread/ags_thread_pool.h src/ags/thread/ags_timestamp_thread.h src/ags/thread/ags_mutex_manager.h src/ags/thread/ags_mutex_manager.c src/ags/thread/ags_task_thread.h src/ags/thread/ags_audio_loop.h src/ags/thread/ags_gui_task_thread.h src/ags/thread/ags_task_completion.h src/ags/thread/ags_task_completion.c src/ags/thread/ags_recycling_thread.h src/ags/thread/ags_autosave_thread.h src/ags/thread/ags_returnable_thread.c src/ags/thread/ags_autosave_thread.c src/ags/thread/ags_export_thread.h src/ags/thread/ags_history.h src/ags/thread/ags_iterator_thread.h src/ags/thread/ags_devout_thread.c src/ags/thread/ags_thread_pool.c src/ags/thread/ags_gui_task_thread.c src/ags/thread/ags_gui_thread.h src/ags/thread/ags_task_thread.c src/ags/thread/ags_timestamp_thread.c src/ags/thread/ags_thread-posix.h src/ags/thread/ags_async_queue.h src/ags/thread/ags_record_thread.h src/ags/thread/ags_recycling_thread_callbacks.c src/ags/thread/ags_recycling_thread_callbacks.h src/ags/thread/ags_iterator_thread.c src/ags/thread/ags_async_queue.c src/ags/thread/ags_export_thread.c src/ags/thread/ags_audio_loop.c src/ags/thread/ags_returnable_thread.h src/ags/thread/ags_recycling_thread.c src/ags/thread/ags_devout_thread.h src/ags/thread/ags_single_thread.h src/ags/thread/ags_thread-posix.c src/ags/thread/ags_history.c src/ags/thread/ags_gui_thread.c src/ags/thread/ags_single_thread.c src/ags/server/ags_registry.c src/ags/server/ags_registry.h src/ags/server/ags_server.h src/ags/server/ags_remote_task.h src/ags/server/ags_remote_task.c src/ags/server/ags_server.c src/ags/plugin/ags_plugin_stock.h src/ags/plugin/ags_plugin_factory.h src/ags/plugin/ags_ladspa_manager.h src/ags/plugin/ags_plugin_factory.c src/ags/plugin/ags_ladspa_manager.c src/ags/main.h
ags.desktop: ags.desktop.in
$(AM_V_GEN)sed -e 's,\@datadir\@,$(datadir),g' < "$<" > $@
diff --git a/Makefile.in b/Makefile.in
index 4cd44fe..c87d96f 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -281,6 +281,8 @@ am_ags_OBJECTS = ags-ags_connectable.$(OBJEXT) \
ags-ags_volume_recycling.$(OBJEXT) \
ags-ags_loop_channel.$(OBJEXT) \
ags-ags_peak_channel_run.$(OBJEXT) \
+ ags-ags_peak_recycling.$(OBJEXT) \
+ ags-ags_peak_audio_signal.$(OBJEXT) \
ags-ags_copy_audio_signal.$(OBJEXT) \
ags-ags_play_recycling.$(OBJEXT) \
ags-ags_mute_channel_run.$(OBJEXT) \
@@ -972,6 +974,8 @@ ags_SOURCES = ./src/ags-lib/object/ags_connectable.c \
src/ags/audio/recall/ags_buffer_channel.c \
src/ags/audio/recall/ags_clone_channel_run.c \
src/ags/audio/recall/ags_peak_channel.h \
+ src/ags/audio/recall/ags_peak_recycling.h \
+ src/ags/audio/recall/ags_peak_audio_signal.h \
src/ags/audio/recall/ags_play_recycling.h \
src/ags/audio/recall/ags_stream_channel.h \
src/ags/audio/recall/ags_amplifier.c \
@@ -998,6 +1002,8 @@ ags_SOURCES = ./src/ags-lib/object/ags_connectable.c \
src/ags/audio/recall/ags_buffer_recycling.h \
src/ags/audio/recall/ags_copy_pattern_channel_run.h \
src/ags/audio/recall/ags_peak_channel_run.c \
+ src/ags/audio/recall/ags_peak_recycling.c \
+ src/ags/audio/recall/ags_peak_audio_signal.c \
src/ags/audio/recall/ags_loop_channel.h \
src/ags/audio/recall/ags_play_audio.h \
src/ags/audio/recall/ags_copy_audio_signal.c \
@@ -1440,8 +1446,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_panel_input_pad.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_parameter.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_pattern.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_peak_audio_signal.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_peak_channel.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_peak_channel_run.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_peak_recycling.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_performance_preferences.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_performance_preferences_callbacks.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ags-ags_persistable.Po at am__quote@
@@ -5020,6 +5028,34 @@ ags-ags_peak_channel_run.obj: src/ags/audio/recall/ags_peak_channel_run.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -c -o ags-ags_peak_channel_run.obj `if test -f 'src/ags/audio/recall/ags_peak_channel_run.c'; then $(CYGPATH_W) 'src/ags/audio/recall/ags_peak_channel_run.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/recall/ags_peak_channel_run.c'; fi`
+ags-ags_peak_recycling.o: src/ags/audio/recall/ags_peak_recycling.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -MT ags-ags_peak_recycling.o -MD -MP -MF $(DEPDIR)/ags-ags_peak_recycling.Tpo -c -o ags-ags_peak_recycling.o `test -f 'src/ags/audio/recall/ags_peak_recycling.c' || echo '$(srcdir)/'`src/ags/audio/recall/ags_peak_recycling.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ags-ags_peak_recycling.Tpo $(DEPDIR)/ags-ags_peak_recycling.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ags/audio/recall/ags_peak_recycling.c' object='ags-ags_peak_recycling.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -c -o ags-ags_peak_recycling.o `test -f 'src/ags/audio/recall/ags_peak_recycling.c' || echo '$(srcdir)/'`src/ags/audio/recall/ags_peak_recycling.c
+
+ags-ags_peak_recycling.obj: src/ags/audio/recall/ags_peak_recycling.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -MT ags-ags_peak_recycling.obj -MD -MP -MF $(DEPDIR)/ags-ags_peak_recycling.Tpo -c -o ags-ags_peak_recycling.obj `if test -f 'src/ags/audio/recall/ags_peak_recycling.c'; then $(CYGPATH_W) 'src/ags/audio/recall/ags_peak_recycling.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/recall/ags_peak_recycling.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ags-ags_peak_recycling.Tpo $(DEPDIR)/ags-ags_peak_recycling.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ags/audio/recall/ags_peak_recycling.c' object='ags-ags_peak_recycling.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -c -o ags-ags_peak_recycling.obj `if test -f 'src/ags/audio/recall/ags_peak_recycling.c'; then $(CYGPATH_W) 'src/ags/audio/recall/ags_peak_recycling.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/recall/ags_peak_recycling.c'; fi`
+
+ags-ags_peak_audio_signal.o: src/ags/audio/recall/ags_peak_audio_signal.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -MT ags-ags_peak_audio_signal.o -MD -MP -MF $(DEPDIR)/ags-ags_peak_audio_signal.Tpo -c -o ags-ags_peak_audio_signal.o `test -f 'src/ags/audio/recall/ags_peak_audio_signal.c' || echo '$(srcdir)/'`src/ags/audio/recall/ags_peak_audio_signal.c
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ags-ags_peak_audio_signal.Tpo $(DEPDIR)/ags-ags_peak_audio_signal.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ags/audio/recall/ags_peak_audio_signal.c' object='ags-ags_peak_audio_signal.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -c -o ags-ags_peak_audio_signal.o `test -f 'src/ags/audio/recall/ags_peak_audio_signal.c' || echo '$(srcdir)/'`src/ags/audio/recall/ags_peak_audio_signal.c
+
+ags-ags_peak_audio_signal.obj: src/ags/audio/recall/ags_peak_audio_signal.c
+ at am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -MT ags-ags_peak_audio_signal.obj -MD -MP -MF $(DEPDIR)/ags-ags_peak_audio_signal.Tpo -c -o ags-ags_peak_audio_signal.obj `if test -f 'src/ags/audio/recall/ags_peak_audio_signal.c'; then $(CYGPATH_W) 'src/ags/audio/recall/ags_peak_audio_signal.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/recall/ags_peak_audio_signal.c'; fi`
+ at am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ags-ags_peak_audio_signal.Tpo $(DEPDIR)/ags-ags_peak_audio_signal.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ags/audio/recall/ags_peak_audio_signal.c' object='ags-ags_peak_audio_signal.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -c -o ags-ags_peak_audio_signal.obj `if test -f 'src/ags/audio/recall/ags_peak_audio_signal.c'; then $(CYGPATH_W) 'src/ags/audio/recall/ags_peak_audio_signal.c'; else $(CYGPATH_W) '$(srcdir)/src/ags/audio/recall/ags_peak_audio_signal.c'; fi`
+
ags-ags_copy_audio_signal.o: src/ags/audio/recall/ags_copy_audio_signal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ags_CFLAGS) $(CFLAGS) -MT ags-ags_copy_audio_signal.o -MD -MP -MF $(DEPDIR)/ags-ags_copy_audio_signal.Tpo -c -o ags-ags_copy_audio_signal.o `test -f 'src/ags/audio/recall/ags_copy_audio_signal.c' || echo '$(srcdir)/'`src/ags/audio/recall/ags_copy_audio_signal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ags-ags_copy_audio_signal.Tpo $(DEPDIR)/ags-ags_copy_audio_signal.Po
diff --git a/src/ags/X/ags_line_callbacks.c b/src/ags/X/ags_line_callbacks.c
index 3ffcef4..ea9701f 100644
--- a/src/ags/X/ags_line_callbacks.c
+++ b/src/ags/X/ags_line_callbacks.c
@@ -24,10 +24,12 @@
#include <ags/audio/ags_recall.h>
#include <ags/audio/ags_recall_audio.h>
#include <ags/audio/ags_recall_audio_run.h>
+#include <ags/audio/ags_recall_channel.h>
#include <ags/audio/ags_recall_id.h>
#include <ags/audio/ags_port.h>
#include <ags/audio/ags_recycling_container.h>
+#include <ags/audio/recall/ags_peak_channel.h>
#include <ags/audio/recall/ags_volume_channel.h>
#include <ags/audio/recall/ags_copy_pattern_channel.h>
#include <ags/audio/recall/ags_copy_pattern_channel_run.h>
@@ -156,7 +158,7 @@ ags_line_volume_callback(GtkRange *range,
}
void
-ags_line_peak_run_post_callback(AgsRecall *peak_channel,
+ags_line_peak_run_post_callback(AgsRecall *peak_channel_run,
AgsLine *line)
{
AgsTaskThread *task_thread;
@@ -181,18 +183,17 @@ ags_line_peak_run_post_callback(AgsRecall *peak_channel,
child = gtk_bin_get_child(GTK_BIN(list->data));
- if(AGS_RECYCLING_CONTAINER(peak_channel->recall_id->recycling_container)->parent == NULL){
- port = AGS_LINE_MEMBER(list->data)->port;
- }else{
- port = AGS_LINE_MEMBER(list->data)->recall_port;
- }
-
+ port = AGS_PEAK_CHANNEL(AGS_RECALL_CHANNEL_RUN(peak_channel_run)->recall_channel)->peak;
+
g_value_init(&value, G_TYPE_DOUBLE);
ags_port_safe_read(port,
&value);
peak = g_value_get_double(&value);
+ // if(peak_channel_run->recall_id->recycling_container->parent == NULL)
+ // g_message("%f\0", peak);
+
change_indicator = ags_change_indicator_new((AgsIndicator *) child,
peak);
diff --git a/src/ags/X/ags_menu_bar_callbacks.c b/src/ags/X/ags_menu_bar_callbacks.c
index 6b54950..9fc8e6b 100644
--- a/src/ags/X/ags_menu_bar_callbacks.c
+++ b/src/ags/X/ags_menu_bar_callbacks.c
@@ -1,4 +1,3 @@
-
/* AGS - Advanced GTK Sequencer
* Copyright (C) 2005-2011 Joël Krähemann
*
diff --git a/src/ags/X/machine/ags_drum_input_line.c b/src/ags/X/machine/ags_drum_input_line.c
index d9dffdb..4dc627c 100644
--- a/src/ags/X/machine/ags_drum_input_line.c
+++ b/src/ags/X/machine/ags_drum_input_line.c
@@ -424,6 +424,50 @@ ags_drum_input_line_map_recall(AgsLine *line,
source = line->channel;
+ /* ags-peak */
+ ags_recall_factory_create(audio,
+ NULL, NULL,
+ "ags-peak\0",
+ source->audio_channel, source->audio_channel + 1,
+ source->pad, source->pad + 1,
+ (AGS_RECALL_FACTORY_INPUT |
+ AGS_RECALL_FACTORY_PLAY |
+ AGS_RECALL_FACTORY_RECALL |
+ AGS_RECALL_FACTORY_ADD),
+ 0);
+
+ /* play - connect run_post */
+ list = ags_recall_template_find_type(source->play,
+ AGS_TYPE_PEAK_CHANNEL_RUN);
+
+ if(list != NULL){
+ play_peak_channel_run = AGS_PEAK_CHANNEL_RUN(list->data);
+
+ recall_handler = (AgsRecallHandler *) malloc(sizeof(AgsRecallHandler));
+
+ recall_handler->signal_name = "run-post\0";
+ recall_handler->callback = G_CALLBACK(ags_line_peak_run_post_callback);
+ recall_handler->data = (gpointer) line;
+
+ ags_recall_add_handler(AGS_RECALL(play_peak_channel_run), recall_handler);
+ }
+
+ /* recall - connect run_post */
+ list = ags_recall_template_find_type(source->recall,
+ AGS_TYPE_PEAK_CHANNEL_RUN);
+
+ if(list != NULL){
+ recall_peak_channel_run = AGS_PEAK_CHANNEL_RUN(list->data);
+
+ recall_handler = (AgsRecallHandler *) malloc(sizeof(AgsRecallHandler));
+
+ recall_handler->signal_name = "run-post\0";
+ recall_handler->callback = G_CALLBACK(ags_line_peak_run_post_callback);
+ recall_handler->data = (gpointer) line;
+
+ ags_recall_add_handler(AGS_RECALL(recall_peak_channel_run), recall_handler);
+ }
+
/* ags-copy-pattern */
ags_recall_factory_create(audio,
NULL, NULL,
@@ -475,50 +519,6 @@ ags_drum_input_line_map_recall(AgsLine *line,
list = list->next;
}
- /* ags-peak */
- ags_recall_factory_create(audio,
- NULL, NULL,
- "ags-peak\0",
- source->audio_channel, source->audio_channel + 1,
- source->pad, source->pad + 1,
- (AGS_RECALL_FACTORY_INPUT |
- AGS_RECALL_FACTORY_PLAY |
- AGS_RECALL_FACTORY_RECALL |
- AGS_RECALL_FACTORY_ADD),
- 0);
-
- /* play - connect run_post */
- list = ags_recall_template_find_type(source->play,
- AGS_TYPE_PEAK_CHANNEL_RUN);
-
- if(list != NULL){
- play_peak_channel_run = AGS_PEAK_CHANNEL_RUN(list->data);
-
- recall_handler = (AgsRecallHandler *) malloc(sizeof(AgsRecallHandler));
-
- recall_handler->signal_name = "run-post\0";
- recall_handler->callback = G_CALLBACK(ags_line_peak_run_post_callback);
- recall_handler->data = (gpointer) line;
-
- ags_recall_add_handler(AGS_RECALL(play_peak_channel_run), recall_handler);
- }
-
- /* recall - connect run_post */
- list = ags_recall_template_find_type(source->recall,
- AGS_TYPE_PEAK_CHANNEL_RUN);
-
- if(list != NULL){
- recall_peak_channel_run = AGS_PEAK_CHANNEL_RUN(list->data);
-
- recall_handler = (AgsRecallHandler *) malloc(sizeof(AgsRecallHandler));
-
- recall_handler->signal_name = "run-post\0";
- recall_handler->callback = G_CALLBACK(ags_line_peak_run_post_callback);
- recall_handler->data = (gpointer) line;
-
- ags_recall_add_handler(AGS_RECALL(recall_peak_channel_run), recall_handler);
- }
-
/* ags-volume */
ags_recall_factory_create(audio,
NULL, NULL,
diff --git a/src/ags/X/machine/ags_matrix.c b/src/ags/X/machine/ags_matrix.c
index c2a9f84..bf5d26a 100644
--- a/src/ags/X/machine/ags_matrix.c
+++ b/src/ags/X/machine/ags_matrix.c
@@ -895,7 +895,7 @@ ags_matrix_draw_gutter(AgsMatrix *matrix)
0, 0,
288, 80);
- channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, (guint) matrix->adjustment->value);
+ channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, AGS_MACHINE(matrix)->audio->input_lines - (guint) matrix->adjustment->value - 1);
if(AGS_MACHINE(matrix)->audio->input_pads > AGS_MATRIX_OCTAVE){
gutter = AGS_MATRIX_OCTAVE;
@@ -914,7 +914,7 @@ ags_matrix_draw_gutter(AgsMatrix *matrix)
ags_matrix_redraw_gutter_point (matrix, channel, j, i);
}
- channel = channel->next;
+ channel = channel->prev;
}
pthread_mutex_unlock(audio_mutex);
@@ -943,7 +943,7 @@ ags_matrix_draw_matrix(AgsMatrix *matrix)
pthread_mutex_lock(audio_mutex);
- channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, (guint) matrix->adjustment->value);
+ channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, AGS_MACHINE(matrix)->audio->input_lines - (guint) matrix->adjustment->value - 1);
if(channel == NULL){
pthread_mutex_unlock(audio_mutex);
@@ -961,7 +961,7 @@ ags_matrix_draw_matrix(AgsMatrix *matrix)
for (j = 0; j < 32; j++)
ags_matrix_redraw_gutter_point (matrix, channel, j, i);
- channel = channel->next;
+ channel = channel->prev;
}
pthread_mutex_unlock(audio_mutex);
diff --git a/src/ags/X/machine/ags_matrix_callbacks.c b/src/ags/X/machine/ags_matrix_callbacks.c
index 83780ef..193fe5a 100644
--- a/src/ags/X/machine/ags_matrix_callbacks.c
+++ b/src/ags/X/machine/ags_matrix_callbacks.c
@@ -144,10 +144,10 @@ ags_matrix_drawing_area_button_press_callback(GtkWidget *widget, GdkEventButton
index1 = ((guint) g_ascii_strtoull(matrix->selected->button.label_text, NULL, 10)) - 1;
- channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, i + (guint) matrix->adjustment->value);
+ channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, AGS_MACHINE(matrix)->audio->input_lines - (i + (guint) matrix->adjustment->value) - 1);
toggle_pattern_bit = ags_toggle_pattern_bit_new(channel->pattern->data,
- i + (guint) matrix->adjustment->value,
+ AGS_MACHINE(matrix)->audio->input_lines - (i + (guint) matrix->adjustment->value) - 1,
0, index1,
j);
g_signal_connect(G_OBJECT(toggle_pattern_bit), "refresh-gui\0",
@@ -227,7 +227,7 @@ ags_matrix_refresh_gui_callback(AgsTogglePatternBit *toggle_pattern_bit,
channel = ags_channel_nth(AGS_MACHINE(matrix)->audio->input, toggle_pattern_bit->line);
- ags_matrix_redraw_gutter_point(matrix, channel, toggle_pattern_bit->bit, toggle_pattern_bit->line - (guint) matrix->adjustment->value);
+ ags_matrix_redraw_gutter_point(matrix, channel, toggle_pattern_bit->bit, (-1 * (toggle_pattern_bit->line - AGS_MACHINE(matrix)->audio->input_lines + 1) - (guint) matrix->adjustment->value) % AGS_MATRIX_OCTAVE);
}
void
diff --git a/src/ags/audio/ags_audio.c b/src/ags/audio/ags_audio.c
index 2f6df26..73fed40 100644
--- a/src/ags/audio/ags_audio.c
+++ b/src/ags/audio/ags_audio.c
@@ -2645,9 +2645,9 @@ ags_audio_add_recall(AgsAudio *audio, GObject *recall, gboolean play)
g_object_ref(G_OBJECT(recall));
if(play){
- audio->play = g_list_append(audio->play, recall);
+ audio->play = g_list_prepend(audio->play, recall);
}else{
- audio->recall = g_list_append(audio->recall, recall);
+ audio->recall = g_list_prepend(audio->recall, recall);
}
pthread_mutex_unlock(mutex);
@@ -2755,11 +2755,13 @@ ags_audio_duplicate_recall(AgsAudio *audio,
/* get the appropriate list */
if(recall_id->recycling_container->parent == NULL){
- list_recall_start =
- list_recall = audio->play;
+ list_recall = g_list_copy(audio->play);
+ list_recall_start =
+ list_recall = g_list_reverse(list_recall);
}else{
+ list_recall = g_list_copy(audio->recall);
list_recall_start =
- list_recall = audio->recall;
+ list_recall = g_list_reverse(list_recall);
}
/* return if already duplicated */
@@ -2825,6 +2827,8 @@ ags_audio_duplicate_recall(AgsAudio *audio,
}
pthread_mutex_unlock(mutex);
+
+ g_list_free(list_recall_start);
}
/**
diff --git a/src/ags/audio/ags_channel.c b/src/ags/audio/ags_channel.c
index 5393c19..ec09ea0 100644
--- a/src/ags/audio/ags_channel.c
+++ b/src/ags/audio/ags_channel.c
@@ -931,9 +931,9 @@ ags_channel_add_recall(AgsChannel *channel, GObject *recall, gboolean play)
g_object_ref(recall);
if(play){
- channel->play = g_list_append(channel->play, recall);
+ channel->play = g_list_prepend(channel->play, recall);
}else{
- channel->recall = g_list_append(channel->recall, recall);
+ channel->recall = g_list_prepend(channel->recall, recall);
}
}
@@ -2683,7 +2683,7 @@ ags_channel_duplicate_recall(AgsChannel *channel,
{
AgsAudio *audio;
AgsRecall *recall, *copy;
- GList *list_recall;
+ GList *list_recall, *list_recall_start;
gboolean playback, sequencer, notation;
if(channel == NULL ||
@@ -2715,9 +2715,13 @@ ags_channel_duplicate_recall(AgsChannel *channel,
/* get the appropriate lists */
if(recall_id->recycling_container->parent == NULL){
- list_recall = channel->play;
+ list_recall = g_list_copy(channel->play);
+ list_recall_start =
+ list_recall = g_list_reverse(list_recall);
}else{
- list_recall = channel->recall;
+ list_recall = g_list_copy(channel->recall);
+ list_recall_start =
+ list_recall = g_list_reverse(list_recall);
}
/* */
@@ -2764,6 +2768,8 @@ ags_channel_duplicate_recall(AgsChannel *channel,
/* iterate */
list_recall = list_recall->next;
}
+
+ g_list_free(list_recall_start);
}
/**
diff --git a/src/ags/audio/recall/ags_mute_audio_signal.c b/src/ags/audio/recall/ags_mute_audio_signal.c
index cdefbd4..a2cf426 100644
--- a/src/ags/audio/recall/ags_mute_audio_signal.c
+++ b/src/ags/audio/recall/ags_mute_audio_signal.c
@@ -261,6 +261,8 @@ ags_mute_audio_signal_run_inter(AgsRecall *recall)
return;
}
+ g_message("mute\0");
+
/* mute */
memset((signed short *) stream_source->data, 0, buffer_size * sizeof(signed short));
}
diff --git a/src/ags/audio/recall/ags_peak_audio_signal.c b/src/ags/audio/recall/ags_peak_audio_signal.c
new file mode 100644
index 0000000..9dc8361
--- /dev/null
+++ b/src/ags/audio/recall/ags_peak_audio_signal.c
@@ -0,0 +1,260 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2015 Joël Krähemann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/audio/recall/ags_peak_audio_signal.h>
+#include <ags/audio/recall/ags_peak_channel.h>
+
+#include <ags-lib/object/ags_connectable.h>
+
+#include <ags/main.h>
+
+#include <ags/lib/ags_list.h>
+#include <ags/lib/ags_parameter.h>
+
+#include <ags/object/ags_dynamic_connectable.h>
+
+#include <ags/audio/ags_recall_channel_run.h>
+
+void ags_peak_audio_signal_class_init(AgsPeakAudioSignalClass *peak_audio_signal);
+void ags_peak_audio_signal_connectable_interface_init(AgsConnectableInterface *connectable);
+void ags_peak_audio_signal_dynamic_connectable_interface_init(AgsDynamicConnectableInterface *dynamic_connectable);
+void ags_peak_audio_signal_init(AgsPeakAudioSignal *peak_audio_signal);
+void ags_peak_audio_signal_set_property(GObject *gobject,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *param_spec);
+void ags_peak_audio_signal_get_property(GObject *gobject,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *param_spec);
+void ags_peak_audio_signal_connect(AgsConnectable *connectable);
+void ags_peak_audio_signal_disconnect(AgsConnectable *connectable);
+void ags_peak_audio_signal_connect_dynamic(AgsDynamicConnectable *dynamic_connectable);
+void ags_peak_audio_signal_disconnect_dynamic(AgsDynamicConnectable *dynamic_connectable);
+void ags_peak_audio_signal_finalize(GObject *gobject);
+
+void ags_peak_audio_signal_run_inter(AgsRecall *recall);
+AgsRecall* ags_peak_audio_signal_duplicate(AgsRecall *recall,
+ AgsRecallID *recall_id,
+ guint *n_params, GParameter *parameter);
+
+/**
+ * SECTION:ags_peak_audio_signal
+ * @short_description: peaks audio signal
+ * @title: AgsPeakAudioSignal
+ * @section_id:
+ * @include: ags/audio/recall/ags_peak_audio_signal.h
+ *
+ * The #AgsPeakAudioSignal class peaks the audio signal.
+ */
+
+enum{
+ PROP_0,
+ PROP_PEAK,
+};
+
+static gpointer ags_peak_audio_signal_parent_class = NULL;
+static AgsConnectableInterface *ags_peak_audio_signal_parent_connectable_interface;
+static AgsDynamicConnectableInterface *ags_peak_audio_signal_parent_dynamic_connectable_interface;
+
+GType
+ags_peak_audio_signal_get_type()
+{
+ static GType ags_type_peak_audio_signal = 0;
+
+ if(!ags_type_peak_audio_signal){
+ static const GTypeInfo ags_peak_audio_signal_info = {
+ sizeof (AgsPeakAudioSignalClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) ags_peak_audio_signal_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (AgsPeakAudioSignal),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) ags_peak_audio_signal_init,
+ };
+
+ static const GInterfaceInfo ags_connectable_interface_info = {
+ (GInterfaceInitFunc) ags_peak_audio_signal_connectable_interface_init,
+ NULL, /* interface_finalize */
+ NULL, /* interface_data */
+ };
+
+ static const GInterfaceInfo ags_dynamic_connectable_interface_info = {
+ (GInterfaceInitFunc) ags_peak_audio_signal_dynamic_connectable_interface_init,
+ NULL, /* interface_finalize */
+ NULL, /* interface_data */
+ };
+
+ ags_type_peak_audio_signal = g_type_register_static(AGS_TYPE_RECALL_AUDIO_SIGNAL,
+ "AgsPeakAudioSignal\0",
+ &ags_peak_audio_signal_info,
+ 0);
+
+ g_type_add_interface_static(ags_type_peak_audio_signal,
+ AGS_TYPE_CONNECTABLE,
+ &ags_connectable_interface_info);
+
+ g_type_add_interface_static(ags_type_peak_audio_signal,
+ AGS_TYPE_DYNAMIC_CONNECTABLE,
+ &ags_dynamic_connectable_interface_info);
+ }
+
+ return (ags_type_peak_audio_signal);
+}
+
+void
+ags_peak_audio_signal_class_init(AgsPeakAudioSignalClass *peak_audio_signal)
+{
+ GObjectClass *gobject;
+ AgsRecallClass *recall;
+ GParamSpec *param_spec;
+
+ ags_peak_audio_signal_parent_class = g_type_class_peek_parent(peak_audio_signal);
+
+ /* GObjectClass */
+ gobject = (GObjectClass *) peak_audio_signal;
+
+ gobject->finalize = ags_peak_audio_signal_finalize;
+
+ /* AgsRecallClass */
+ recall = (AgsRecallClass *) peak_audio_signal;
+
+ recall->run_inter = ags_peak_audio_signal_run_inter;
+}
+
+void
+ags_peak_audio_signal_connectable_interface_init(AgsConnectableInterface *connectable)
+{
+ ags_peak_audio_signal_parent_connectable_interface = g_type_interface_peek_parent(connectable);
+
+ connectable->connect = ags_peak_audio_signal_connect;
+ connectable->disconnect = ags_peak_audio_signal_disconnect;
+}
+
+void
+ags_peak_audio_signal_dynamic_connectable_interface_init(AgsDynamicConnectableInterface *dynamic_connectable)
+{
+ ags_peak_audio_signal_parent_dynamic_connectable_interface = g_type_interface_peek_parent(dynamic_connectable);
+
+ dynamic_connectable->connect_dynamic = ags_peak_audio_signal_connect_dynamic;
+ dynamic_connectable->disconnect_dynamic = ags_peak_audio_signal_disconnect_dynamic;
+}
+
+void
+ags_peak_audio_signal_init(AgsPeakAudioSignal *peak_audio_signal)
+{
+ AGS_RECALL(peak_audio_signal)->name = "ags-peak\0";
+ AGS_RECALL(peak_audio_signal)->version = AGS_EFFECTS_DEFAULT_VERSION;
+ AGS_RECALL(peak_audio_signal)->build_id = AGS_BUILD_ID;
+ AGS_RECALL(peak_audio_signal)->xml_type = "ags-peak-audio-signal\0";
+ AGS_RECALL(peak_audio_signal)->port = NULL;
+}
+
+void
+ags_peak_audio_signal_finalize(GObject *gobject)
+{
+ /* call parent */
+ G_OBJECT_CLASS(ags_peak_audio_signal_parent_class)->finalize(gobject);
+
+ /* empty */
+}
+
+void
+ags_peak_audio_signal_connect(AgsConnectable *connectable)
+{
+ /* call parent */
+ ags_peak_audio_signal_parent_connectable_interface->connect(connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_audio_signal_disconnect(AgsConnectable *connectable)
+{
+ /* call parent */
+ ags_peak_audio_signal_parent_connectable_interface->disconnect(connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_audio_signal_connect_dynamic(AgsDynamicConnectable *dynamic_connectable)
+{
+ /* call parent */
+ ags_peak_audio_signal_parent_dynamic_connectable_interface->connect_dynamic(dynamic_connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_audio_signal_disconnect_dynamic(AgsDynamicConnectable *dynamic_connectable)
+{
+ /* call parent */
+ ags_peak_audio_signal_parent_dynamic_connectable_interface->disconnect_dynamic(dynamic_connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_audio_signal_run_inter(AgsRecall *recall)
+{
+ AgsPeakAudioSignal *peak_audio_signal;
+
+ AGS_RECALL_CLASS(ags_peak_audio_signal_parent_class)->run_inter(recall);
+
+ peak_audio_signal = AGS_PEAK_AUDIO_SIGNAL(recall);
+
+ if(AGS_RECALL_AUDIO_SIGNAL(recall)->source->stream_current != NULL){
+ AgsPeakChannel *peak_channel;
+ signed short *buffer;
+ gdouble peak;
+ guint buffer_size;
+ guint i;
+ GValue value = {0,};
+
+ peak_channel = AGS_PEAK_CHANNEL(AGS_RECALL_CHANNEL_RUN(recall->parent->parent)->recall_channel);
+
+ ags_peak_channel_retrieve_peak(peak_channel,
+ TRUE);
+ }else{
+ ags_recall_done(recall);
+ }
+}
+
+/**
+ * ags_peak_audio_signal_new:
+ * @audio_signal: an #AgsAudioSignal
+ *
+ * Creates an #AgsPeakAudioSignal
+ *
+ * Returns: a new #AgsPeakAudioSignal
+ *
+ * Since: 0.4
+ */
+AgsPeakAudioSignal*
+ags_peak_audio_signal_new(AgsAudioSignal *audio_signal)
+{
+ AgsPeakAudioSignal *peak_audio_signal;
+
+ peak_audio_signal = (AgsPeakAudioSignal *) g_object_new(AGS_TYPE_PEAK_AUDIO_SIGNAL,
+ NULL);
+
+ return(peak_audio_signal);
+}
diff --git a/src/ags/audio/recall/ags_peak_audio_signal.h b/src/ags/audio/recall/ags_peak_audio_signal.h
new file mode 100644
index 0000000..2b40a51
--- /dev/null
+++ b/src/ags/audio/recall/ags_peak_audio_signal.h
@@ -0,0 +1,51 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2015 Joël Krähemann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __AGS_PEAK_AUDIO_SIGNAL_H__
+#define __AGS_PEAK_AUDIO_SIGNAL_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <ags/audio/ags_recall_audio_signal.h>
+
+#define AGS_TYPE_PEAK_AUDIO_SIGNAL (ags_peak_audio_signal_get_type())
+#define AGS_PEAK_AUDIO_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_PEAK_AUDIO_SIGNAL, AgsPeakAudioSignal))
+#define AGS_PEAK_AUDIO_SIGNAL_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_PEAK_AUDIO_SIGNAL, AgsPeakAudioSignalClass))
+#define AGS_IS_PEAK_AUDIO_SIGNAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), AGS_TYPE_PEAK_AUDIO_SIGNAL))
+#define AGS_IS_PEAK_AUDIO_SIGNAL_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_PEAK_AUDIO_SIGNAL))
+#define AGS_PEAK_AUDIO_SIGNAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), AGS_TYPE_PEAK_AUDIO_SIGNAL, AgsPeakAudioSignalClass))
+
+typedef struct _AgsPeakAudioSignal AgsPeakAudioSignal;
+typedef struct _AgsPeakAudioSignalClass AgsPeakAudioSignalClass;
+
+struct _AgsPeakAudioSignal
+{
+ AgsRecallAudioSignal recall_audio_signal;
+};
+
+struct _AgsPeakAudioSignalClass
+{
+ AgsRecallAudioSignalClass recall_audio_signal;
+};
+
+GType ags_peak_audio_signal_get_type();
+
+AgsPeakAudioSignal* ags_peak_audio_signal_new(AgsAudioSignal *audio_signal);
+
+#endif /*__AGS_PEAK_AUDIO_SIGNAL_H__*/
diff --git a/src/ags/audio/recall/ags_peak_channel.c b/src/ags/audio/recall/ags_peak_channel.c
index 8eab4f9..d024825 100644
--- a/src/ags/audio/recall/ags_peak_channel.c
+++ b/src/ags/audio/recall/ags_peak_channel.c
@@ -27,6 +27,7 @@
#include <ags/audio/ags_audio.h>
#include <ags/audio/ags_output.h>
+#include <ags/audio/ags_input.h>
void ags_peak_channel_class_init(AgsPeakChannelClass *peak_channel);
void ags_peak_channel_connectable_interface_init(AgsConnectableInterface *connectable);
@@ -313,7 +314,7 @@ ags_peak_channel_retrieve_peak(AgsPeakChannel *peak_channel,
AgsChannel *source;
AgsRecycling *recycling;
GList *audio_signal;
- double *buffer;
+ signed short *buffer;
double current_value;
guint buffer_size;
static const double scale_precision = 10.0;
@@ -335,18 +336,32 @@ ags_peak_channel_retrieve_peak(AgsPeakChannel *peak_channel,
recycling = source->first_recycling;
/* initialize buffer */
- buffer = (double *) malloc(buffer_size * sizeof(double));
- for(i = 0; i < buffer_size; i++) buffer[i] = 0.0;
+ buffer = (signed short *) malloc(buffer_size * sizeof(signed short));
+ for(i = 0; i < buffer_size; i++) buffer[i] = 0;
while(recycling != source->last_recycling->next){
audio_signal = recycling->audio_signal;
while(audio_signal != NULL){
- if(AGS_AUDIO_SIGNAL(audio_signal->data)->stream_current != NULL){
- /* copy buffer 1:1 */
- ags_audio_signal_copy_buffer_to_double_buffer(buffer, 1,
- (signed short *) AGS_AUDIO_SIGNAL(audio_signal->data)->stream_current->data, 1,
- buffer_size);
+ if((AGS_IS_INPUT(source) &&
+ (AGS_AUDIO_INPUT_HAS_RECYCLING & (AGS_AUDIO(source->audio)->flags)) != 0) ||
+ (AGS_IS_OUTPUT(source) &&
+ (AGS_AUDIO_OUTPUT_HAS_RECYCLING & (AGS_AUDIO(source->audio)->flags)) != 0)){
+ if((AGS_AUDIO_SIGNAL_TEMPLATE & (AGS_AUDIO_SIGNAL(audio_signal->data)->flags)) == 0 &&
+ AGS_AUDIO_SIGNAL(audio_signal->data)->stream_current != NULL){
+ /* copy buffer 1:1 */
+ ags_audio_signal_copy_buffer_to_buffer(buffer, 1,
+ (signed short *) AGS_AUDIO_SIGNAL(audio_signal->data)->stream_current->data, 1,
+ buffer_size);
+ }
+ }else{
+ if((AGS_AUDIO_SIGNAL_TEMPLATE & (AGS_AUDIO_SIGNAL(audio_signal->data)->flags)) == 0 &&
+ AGS_AUDIO_SIGNAL(audio_signal->data)->stream_current != NULL){
+ /* copy buffer 1:1 */
+ ags_audio_signal_copy_buffer_to_buffer(buffer, 1,
+ (signed short *) AGS_AUDIO_SIGNAL(audio_signal->data)->stream_current->data, 1,
+ buffer_size);
+ }
}
audio_signal = audio_signal->next;
@@ -356,20 +371,22 @@ ags_peak_channel_retrieve_peak(AgsPeakChannel *peak_channel,
}
/* calculate average value */
- current_value = 1.0 / (1.0 / G_MAXUINT16 * (1.0 / 45.0));
+ current_value = 0.0;
for(i = 0; i < buffer_size; i++){
if(buffer[i] == 0){
continue;
}
-
- current_value += (1.0 / (1.0 / G_MAXUINT16 * buffer[i]));
+
+ current_value += (1.0 / (1.0 / (double) G_MAXUINT16 * buffer[i]));
}
/* break down to scale */
//TODO:JK: verify me
- current_value = scale_precision * (atan(1.0 / 440.0) / sin(current_value / 440.0));
-
+ if(current_value != 0.0){
+ current_value = scale_precision * (atan(1.0 / 440.0) / sin(current_value / 22000.0));
+ }
+
g_value_init(&value, G_TYPE_DOUBLE);
if(current_value < 0.0){
diff --git a/src/ags/audio/recall/ags_peak_channel_run.c b/src/ags/audio/recall/ags_peak_channel_run.c
index 4610345..e30eabe 100644
--- a/src/ags/audio/recall/ags_peak_channel_run.c
+++ b/src/ags/audio/recall/ags_peak_channel_run.c
@@ -17,6 +17,7 @@
*/
#include <ags/audio/recall/ags_peak_channel_run.h>
+#include <ags/audio/recall/ags_peak_recycling.h>
#include <ags-lib/object/ags_connectable.h>
@@ -46,7 +47,6 @@ void ags_peak_channel_run_finalize(GObject *gobject);
AgsRecall* ags_peak_channel_run_duplicate(AgsRecall *recall,
AgsRecallID *recall_id,
guint *n_params, GParameter *parameter);
-void ags_peak_channel_run_run_inter(AgsRecall *recall);
/**
* SECTION:ags_peak_channel_run
@@ -126,7 +126,6 @@ ags_peak_channel_run_class_init(AgsPeakChannelRunClass *peak_channel_run)
recall = (AgsRecallClass *) peak_channel_run;
recall->duplicate = ags_peak_channel_run_duplicate;
- recall->run_inter = ags_peak_channel_run_run_inter;
}
void
@@ -157,7 +156,7 @@ ags_peak_channel_run_init(AgsPeakChannelRun *peak_channel_run)
AGS_RECALL(peak_channel_run)->port = NULL;
AGS_RECALL(peak_channel_run)->flags |= AGS_RECALL_INPUT_ORIENTATED;
- AGS_RECALL(peak_channel_run)->child_type = G_TYPE_NONE;
+ AGS_RECALL(peak_channel_run)->child_type = AGS_TYPE_PEAK_RECYCLING;
}
void
@@ -218,39 +217,6 @@ ags_peak_channel_run_duplicate(AgsRecall *recall,
return((AgsRecall *) copy);
}
-void
-ags_peak_channel_run_run_inter(AgsRecall *recall)
-{
- AgsChannel *source;
- AgsRecallChannel *recall_channel;
- GList *list;
-
- /* call parent */
- AGS_RECALL_CLASS(ags_peak_channel_run_parent_class)->run_post(recall);
-
- /* */
- source = AGS_RECALL_CHANNEL_RUN(recall)->source;
- recall_channel = AGS_RECALL_CHANNEL_RUN(recall)->recall_channel;
-
- if(AGS_RECYCLING_CONTAINER(AGS_RECALL_ID(recall->recall_id)->recycling_container)->parent == NULL){
- list = ags_recall_find_type(source->play,
- AGS_TYPE_PEAK_CHANNEL_RUN);
-
- // if(g_list_last(list) == recall){
- ags_peak_channel_retrieve_peak(recall_channel,
- TRUE);
- // }
- }else{
- list = ags_recall_find_type(source->recall,
- AGS_TYPE_PEAK_CHANNEL_RUN);
-
- // if(g_list_last(list) == recall){
- ags_peak_channel_retrieve_peak(recall_channel,
- FALSE);
- // }
- }
-}
-
/**
* ags_peak_channel_run_new:
* @channel: the #AgsChannel as source
diff --git a/src/ags/audio/recall/ags_peak_recycling.c b/src/ags/audio/recall/ags_peak_recycling.c
new file mode 100644
index 0000000..ce5d2d5
--- /dev/null
+++ b/src/ags/audio/recall/ags_peak_recycling.c
@@ -0,0 +1,241 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2015 Joël Krähemann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <ags/audio/recall/ags_peak_recycling.h>
+#include <ags/audio/recall/ags_peak_channel.h>
+#include <ags/audio/recall/ags_peak_audio_signal.h>
+
+#include <ags-lib/object/ags_connectable.h>
+
+#include <ags/main.h>
+
+#include <ags/lib/ags_parameter.h>
+
+#include <ags/object/ags_dynamic_connectable.h>
+
+#include <ags/audio/ags_audio_signal.h>
+#include <ags/audio/ags_recall_id.h>
+
+void ags_peak_recycling_class_init(AgsPeakRecyclingClass *peak_recycling);
+void ags_peak_recycling_connectable_interface_init(AgsConnectableInterface *connectable);
+void ags_peak_recycling_dynamic_connectable_interface_init(AgsDynamicConnectableInterface *dynamic_connectable);
+void ags_peak_recycling_init(AgsPeakRecycling *peak_recycling);
+void ags_peak_recycling_connect(AgsConnectable *connectable);
+void ags_peak_recycling_disconnect(AgsConnectable *connectable);
+void ags_peak_recycling_connect_dynamic(AgsDynamicConnectable *dynamic_connectable);
+void ags_peak_recycling_disconnect_dynamic(AgsDynamicConnectable *dynamic_connectable);
+void ags_peak_recycling_finalize(GObject *gobject);
+
+AgsRecall* ags_peak_recycling_duplicate(AgsRecall *recall,
+ AgsRecallID *recall_id,
+ guint *n_params, GParameter *parameter);
+
+/**
+ * SECTION:ags_peak_recycling
+ * @short_description: peaks recycling
+ * @title: AgsPeakRecycling
+ * @section_id:
+ * @include: ags/audio/recall/ags_peak_recycling.h
+ *
+ * The #AgsPeakRecycling class peaks the recycling.
+ */
+
+static gpointer ags_peak_recycling_parent_class = NULL;
+static AgsConnectableInterface *ags_peak_recycling_parent_connectable_interface;
+static AgsDynamicConnectableInterface *ags_peak_recycling_parent_dynamic_connectable_interface;
+
+GType
+ags_peak_recycling_get_type()
+{
+ static GType ags_type_peak_recycling = 0;
+
+ if(!ags_type_peak_recycling){
+ static const GTypeInfo ags_peak_recycling_info = {
+ sizeof (AgsPeakRecyclingClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) ags_peak_recycling_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (AgsPeakRecycling),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) ags_peak_recycling_init,
+ };
+
+ static const GInterfaceInfo ags_connectable_interface_info = {
+ (GInterfaceInitFunc) ags_peak_recycling_connectable_interface_init,
+ NULL, /* interface_finalize */
+ NULL, /* interface_data */
+ };
+
+ static const GInterfaceInfo ags_dynamic_connectable_interface_info = {
+ (GInterfaceInitFunc) ags_peak_recycling_dynamic_connectable_interface_init,
+ NULL, /* interface_finalize */
+ NULL, /* interface_data */
+ };
+
+ ags_type_peak_recycling = g_type_register_static(AGS_TYPE_RECALL_RECYCLING,
+ "AgsPeakRecycling\0",
+ &ags_peak_recycling_info,
+ 0);
+
+ g_type_add_interface_static(ags_type_peak_recycling,
+ AGS_TYPE_CONNECTABLE,
+ &ags_connectable_interface_info);
+
+ g_type_add_interface_static(ags_type_peak_recycling,
+ AGS_TYPE_DYNAMIC_CONNECTABLE,
+ &ags_dynamic_connectable_interface_info);
+ }
+
+ return (ags_type_peak_recycling);
+}
+
+void
+ags_peak_recycling_class_init(AgsPeakRecyclingClass *peak_recycling)
+{
+ GObjectClass *gobject;
+ AgsRecallClass *recall;
+ GParamSpec *param_spec;
+
+ ags_peak_recycling_parent_class = g_type_class_peek_parent(peak_recycling);
+
+ /* GObjectClass */
+ gobject = (GObjectClass *) peak_recycling;
+
+ gobject->finalize = ags_peak_recycling_finalize;
+
+ /* AgsRecallClass */
+ recall = (AgsRecallClass *) peak_recycling;
+
+ recall->duplicate = ags_peak_recycling_duplicate;
+}
+
+void
+ags_peak_recycling_connectable_interface_init(AgsConnectableInterface *connectable)
+{
+ ags_peak_recycling_parent_connectable_interface = g_type_interface_peek_parent(connectable);
+
+ connectable->connect = ags_peak_recycling_connect;
+ connectable->disconnect = ags_peak_recycling_disconnect;
+}
+
+void
+ags_peak_recycling_dynamic_connectable_interface_init(AgsDynamicConnectableInterface *dynamic_connectable)
+{
+ ags_peak_recycling_parent_dynamic_connectable_interface = g_type_interface_peek_parent(dynamic_connectable);
+
+ dynamic_connectable->connect_dynamic = ags_peak_recycling_connect_dynamic;
+ dynamic_connectable->disconnect_dynamic = ags_peak_recycling_disconnect_dynamic;
+}
+
+void
+ags_peak_recycling_init(AgsPeakRecycling *peak_recycling)
+{
+ AGS_RECALL(peak_recycling)->name = "ags-peak\0";
+ AGS_RECALL(peak_recycling)->version = AGS_EFFECTS_DEFAULT_VERSION;
+ AGS_RECALL(peak_recycling)->build_id = AGS_BUILD_ID;
+ AGS_RECALL(peak_recycling)->xml_type = "ags-peak-recycling\0";
+ AGS_RECALL(peak_recycling)->port = NULL;
+
+ AGS_RECALL(peak_recycling)->child_type = AGS_TYPE_PEAK_AUDIO_SIGNAL;
+
+ AGS_RECALL_RECYCLING(peak_recycling)->flags |= (AGS_RECALL_RECYCLING_MAP_CHILD_SOURCE);
+}
+
+void
+ags_peak_recycling_finalize(GObject *gobject)
+{
+ /* empty */
+
+ /* call parent */
+ G_OBJECT_CLASS(ags_peak_recycling_parent_class)->finalize(gobject);
+}
+
+void
+ags_peak_recycling_connect(AgsConnectable *connectable)
+{
+ /* call parent */
+ ags_peak_recycling_parent_connectable_interface->connect(connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_recycling_disconnect(AgsConnectable *connectable)
+{
+ /* call parent */
+ ags_peak_recycling_parent_connectable_interface->disconnect(connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_recycling_connect_dynamic(AgsDynamicConnectable *dynamic_connectable)
+{
+ /* call parent */
+ ags_peak_recycling_parent_dynamic_connectable_interface->connect_dynamic(dynamic_connectable);
+
+ /* empty */
+}
+
+void
+ags_peak_recycling_disconnect_dynamic(AgsDynamicConnectable *dynamic_connectable)
+{
+ /* call parent */
+ ags_peak_recycling_parent_dynamic_connectable_interface->disconnect_dynamic(dynamic_connectable);
+
+ /* empty */
+}
+
+AgsRecall*
+ags_peak_recycling_duplicate(AgsRecall *recall,
+ AgsRecallID *recall_id,
+ guint *n_params, GParameter *parameter)
+{
+ AgsPeakRecycling *copy;
+
+ copy = (AgsPeakRecycling *) AGS_RECALL_CLASS(ags_peak_recycling_parent_class)->duplicate(recall,
+ recall_id,
+ n_params, parameter);
+
+ return((AgsRecall *) copy);
+}
+
+/**
+ * ags_peak_recycling_new:
+ * @recycling: the source #AgsRecycling
+ *
+ * Creates an #AgsPeakRecycling
+ *
+ * Returns: a new #AgsPeakRecycling
+ *
+ * Since: 0.4
+ */
+AgsPeakRecycling*
+ags_peak_recycling_new(AgsRecycling *recycling)
+{
+ AgsPeakRecycling *peak_recycling;
+
+ peak_recycling = (AgsPeakRecycling *) g_object_new(AGS_TYPE_PEAK_RECYCLING,
+ "source\0", recycling,
+ NULL);
+
+ return(peak_recycling);
+}
+
diff --git a/src/ags/audio/recall/ags_peak_recycling.h b/src/ags/audio/recall/ags_peak_recycling.h
new file mode 100644
index 0000000..7ba728a
--- /dev/null
+++ b/src/ags/audio/recall/ags_peak_recycling.h
@@ -0,0 +1,51 @@
+/* AGS - Advanced GTK Sequencer
+ * Copyright (C) 2015 Joël Krähemann
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __AGS_PEAK_RECYCLING_H__
+#define __AGS_PEAK_RECYCLING_H__
+
+#include <glib.h>
+#include <glib-object.h>
+
+#include <ags/audio/ags_recall_recycling.h>
+
+#define AGS_TYPE_PEAK_RECYCLING (ags_peak_recycling_get_type())
+#define AGS_PEAK_RECYCLING(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_PEAK_RECYCLING, AgsPeakRecycling))
+#define AGS_PEAK_RECYCLING_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_PEAK_RECYCLING, AgsPeakRecyclingClass))
+#define AGS_IS_PEAK_RECYCLING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), AGS_TYPE_PEAK_RECYCLING))
+#define AGS_IS_PEAK_RECYCLING_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), AGS_TYPE_PEAK_RECYCLING))
+#define AGS_PEAK_RECYCLING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), AGS_TYPE_PEAK_RECYCLING, AgsPeakRecyclingClass))
+
+typedef struct _AgsPeakRecycling AgsPeakRecycling;
+typedef struct _AgsPeakRecyclingClass AgsPeakRecyclingClass;
+
+struct _AgsPeakRecycling
+{
+ AgsRecallRecycling recall_recycling;
+};
+
+struct _AgsPeakRecyclingClass
+{
+ AgsRecallRecyclingClass recall_recycling;
+};
+
+GType ags_peak_recycling_get_type();
+
+AgsPeakRecycling* ags_peak_recycling_new(AgsRecycling *recycling);
+
+#endif /*__AGS_PEAK_RECYCLING_H__*/
diff --git a/src/ags/audio/task/ags_toggle_pattern_bit.c b/src/ags/audio/task/ags_toggle_pattern_bit.c
index 9d20d1c..637ec52 100644
--- a/src/ags/audio/task/ags_toggle_pattern_bit.c
+++ b/src/ags/audio/task/ags_toggle_pattern_bit.c
@@ -168,6 +168,8 @@ ags_toggle_pattern_bit_launch(AgsTask *task)
toggle_pattern_bit = AGS_TOGGLE_PATTERN_BIT(task);
+ g_message("toggle pattern\0");
+
ags_pattern_toggle_bit((AgsPattern *) toggle_pattern_bit->pattern,
toggle_pattern_bit->index_i, toggle_pattern_bit->index_j,
toggle_pattern_bit->bit);
diff --git a/src/ags/widget/ags_vindicator.c b/src/ags/widget/ags_vindicator.c
index 49a2ad9..1a4b492 100644
--- a/src/ags/widget/ags_vindicator.c
+++ b/src/ags/widget/ags_vindicator.c
@@ -142,7 +142,7 @@ ags_vindicator_draw(AgsVIndicator *indicator)
for(i = 0; i < height / (segment_height + padding); i++){
if(adjustment->value > 0.0 &&
- (1 / adjustment->value * i < (height / (segment_height + padding)))){
+ (1.0 / adjustment->value * i < (height / (segment_height + padding)))){
/* active */
cairo_set_source_rgba(cr, 0.9, 0.7, 0.2, 1.0);
}else{
--
gsequencer packaging
More information about the pkg-multimedia-commits
mailing list