summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/avirt/avirt.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/avirt/avirt.h b/include/avirt/avirt.h
index 5bb8731..782467d 100644
--- a/include/avirt/avirt.h
+++ b/include/avirt/avirt.h
@@ -22,8 +22,29 @@
#ifndef _AVIRT_H_
#define _AVIRT_H_
+/**
+ * AVIRT_CreateStream - Create a stream in AVIRT
+ * @name: The name of the stream
+ * @channels: The number of channels for the stream
+ * @direction: The stream direction (SND_PCM_STREAM_PLAYBACK or SND_PCM_STREAM_CAPTURE)
+ * @return: 0 on success, negative ERRNO otherwise
+ *
+ * Each stream creates a PCM device for the AVIRT sound card.
+ * Streams will not appear to the user-space until `AVIRT_SealCard()` is called.
+ * NOTE: Once `AVIRT_SealCard` is called, no more streams may be added.
+ */
int AVIRT_CreateStream(const char *name, unsigned int channels, int direction);
+/**
+ * AVIRT_SealCard - Finalize AVIRT stream creation and register sound card
+ * @return: 0 on success, negative ERRNO otherwise
+ *
+ * This should be called once all streams have been created via `AVIRT_CreateStream()`.
+ * Calling this function will register the AVIRT sound card to the user-space, and will
+ * configure all mapped lower-level Audio Paths for the given stream configuration.
+ * configuration.
+ * Once this function is called, no more streams may be created.
+ */
int AVIRT_SealCard();
#endif // _AVIRT_H_