summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorXANTRONIX Development2022-02-02 21:52:47 -0500
committerXANTRONIX Development2022-02-02 21:53:09 -0500
commit7f52b9c23cb6e70c90cd01316f4a703962c3f92f (patch)
tree988f48c09cca9487969c73270246e003b10939c3 /include
parent91d0af73c12bded6ec1f320f39c089afb6b6e69b (diff)
downloadxas-7f52b9c23cb6e70c90cd01316f4a703962c3f92f.tar.gz
xas-7f52b9c23cb6e70c90cd01316f4a703962c3f92f.tar.bz2
xas-7f52b9c23cb6e70c90cd01316f4a703962c3f92f.zip
Initial implementation of src/bank.c
Initial implementation of src/bank.c to act as a sample bank
Diffstat (limited to 'include')
-rw-r--r--include/xas/bank.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/include/xas/bank.h b/include/xas/bank.h
new file mode 100644
index 0000000..6d7aeb1
--- /dev/null
+++ b/include/xas/bank.h
@@ -0,0 +1,46 @@
+#ifndef _XAS_BANK_H
+#define _XAS_BANK_H
+
+#include <sys/types.h>
+
+#include <xas/audio.h>
+
+#define XAS_BANK_IDLE 0
+#define XAS_BANK_ACTIVE (1 << 0)
+
+typedef struct _xas_bank_entry {
+ size_t duration;
+} xas_bank_entry;
+
+typedef struct _xas_bank {
+ size_t sample_size,
+ sample_rate,
+ entry_size,
+ entry_count;
+
+ int flags;
+ float force;
+
+ size_t entry,
+ index;
+} xas_bank;
+
+xas_bank *xas_bank_new(size_t sample_size,
+ size_t sample_rate,
+ size_t entry_size,
+ size_t entry_count);
+
+void xas_bank_destroy(xas_bank *bank);
+
+int xas_bank_play(xas_bank *bank, size_t entry, float force);
+
+void xas_bank_stop(xas_bank *bank);
+
+ssize_t xas_bank_record(xas_bank *bank,
+ xas_audio_stream *input,
+ size_t entry,
+ size_t count);
+
+xas_audio_stream *xas_bank_stream_new(xas_bank *bank);
+
+#endif /* _XAS_BANK_H */