In this section you get some knowledge about AgsChannel internals. Here you get an
overview of the audio layer. All code related to it is located in subdirectory
<ags/audio>. Linking AgsChannel is a quiet complex thing but If you wish
to do so you can just call void ags_channel_set_link(AgsChannel*, AgsChannel*, GError**)
and this will the especially covered here.
AgsAudio, AgsChannel and AgsRecycling are involved in linking. When talking about linking we should view AgsChannel objects as networked and therefore exists an additional nested network of AgsRecycling objects.
The AgsAudio object gives clarification about how AgsChannel has to be accessed either synchronously or asynchronously. Further it tells us whether AgsOutput or AgsInput has a new audio stream which causes in conjunction a dedicated AgsRecycling associated with the appropriate AgsChannel.
Table 6.1. AGS network layer table
object | flags |
---|---|
Audio#0 | AGS_AUDIO_SYNC | AGS_AUDIO_OUTPUT_HAS_RECYCLING |
Audio#1 | AGS_AUDIO_ASYNC |
Audio#2 | AGS_AUDIO_ASYNC | AGS_AUDIO_OUTPUT_HAS_RECYCLING |
Audio#3 | AGS_AUDIO_ASYNC | AGS_AUDIO_OUTPUT_HAS_RECYCLING |
Audio#4 | AGS_AUDIO_ASYNC | AGS_AUDIO_OUTPUT_HAS_RECYCLING |
green:
red:
yellow: