Linking overview

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

objectflags
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