newsAdvanced Gtk+ Sequencer - News

 
 

Implementing ags-play-pattern recall and ags_input_next_active()

Item posted by Joël Krähemann <jkraehemann> on Fri 24 Mar 2017 08:30:02 PM UTC.

I think there can be much overhead reduced by replacing ags-copy-pattern recall with ags-play-pattern recall. In view of ags-copy-pattern what does decided to play a channel within ags_channel_play(). It comes with a heavy payload. It would make no sense to have ags_input_next_active().

Contrary ags-play-pattern does decide to play a channel within ags_audio_play(). This gives the advantage of being able to use ags_input_next_active() in ags_channel_recursive_play().

Like that entire parts of your audio processing tree can skip very early. Reducing much overhead doing actually nothing.

This is the prototype to skip not active channels:


AgsInput*
ags_input_next_active(AgsInput *input,
                      GObject *parent_recycling_context)


And shall be used by the recursive iteration function:


void
ags_channel_recursive_play(AgsChannel *channel,
                           AgsRecallID *recall_id, gint stage)


cheers,
Joël



Back to the top

Powered by Savane 3.14-8aba.
Corresponding source code