aboutsummaryrefslogtreecommitdiffstats
path: root/core.h
diff options
context:
space:
mode:
authorMark Farrugia <mark.farrugia@fiberdyne.com.au>2018-10-25 16:13:19 +1100
committerMark Farrugia <mark.farrugia@fiberdyne.com.au>2018-10-26 17:27:49 +1100
commitd8ff159e37cb3768358b350b2dc80118d81d4b2c (patch)
treec3624fa86c28abf669447bb5d1f02bd9f19cf3ca /core.h
parente734ca6ed2bb99343fd32c369a7eb3679447b115 (diff)
Refactor core_internal.h to core.h
Signed-off-by: Mark Farrugia <mark.farrugia@fiberdyne.com.au>
Diffstat (limited to 'core.h')
-rw-r--r--core.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/core.h b/core.h
new file mode 100644
index 0000000..ca47067
--- /dev/null
+++ b/core.h
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * AVIRT - ALSA Virtual Soundcard
+ *
+ * Copyright (c) 2010-2018 Fiberdyne Systems Pty Ltd
+ *
+ * core.h - AVIRT internal header
+ */
+
+#ifndef __SOUND_AVIRT_CORE_H
+#define __SOUND_AVIRT_CORE_H
+
+#include <sound/avirt.h>
+
+#include "utils.h"
+
+struct avirt_core {
+ struct snd_card *card;
+ struct device *dev;
+ struct class *avirt_class;
+ struct config_group *stream_group;
+ unsigned int stream_count;
+ bool streams_sealed;
+};
+
+/**
+ * __avirt_configfs_init - Initialise the configfs system
+ * @core: The avirt_core pointer
+ * @return: 0 on success, negative ERRNO on failure
+ */
+int __init __avirt_configfs_init(struct avirt_core *core);
+
+/**
+ * __avirt_configfs_exit - Clean up and exit the configfs system
+ * @core: The avirt_core pointer
+ */
+void __exit __avirt_configfs_exit(struct avirt_core *core);
+
+/**
+ * __avirt_streams_seal - Register the sound card to user space
+ * @return: 0 on success, negative ERRNO on failure
+ */
+int __avirt_streams_seal(void);
+
+/**
+ * __avirt_streams_sealed - Check whether the streams have been sealed or not
+ * @return: true if sealed, false otherwise
+ */
+bool __avirt_streams_sealed(void);
+
+/**
+ * __avirt_stream_find_by_device - Get audio stream from device number
+ * @device: The PCM device number corresponding to the desired stream
+ * @return: The audio stream if found, or an error pointer otherwise
+ */
+struct avirt_stream *__avirt_stream_find_by_device(unsigned int device);
+
+/**
+ * __avirt_stream_create - Create audio stream, including it's ALSA PCM device
+ * @name: The name designated to the audio stream
+ * @direction: The PCM direction (SNDRV_PCM_STREAM_PLAYBACK or
+ * SNDRV_PCM_STREAM_CAPTURE)
+ * @return: The newly created audio stream if successful, or an error pointer
+ */
+struct avirt_stream *__avirt_stream_create(const char *name, int direction);
+
+#endif /* __SOUND_AVIRT_CORE_H */