summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/streams.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/streams.h')
-rw-r--r--src/emu/streams.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/emu/streams.h b/src/emu/streams.h
new file mode 100644
index 00000000000..130fc256c55
--- /dev/null
+++ b/src/emu/streams.h
@@ -0,0 +1,50 @@
+/***************************************************************************
+
+ streams.h
+
+ Handle general purpose audio streams
+
+ Copyright (c) 1996-2007, Nicola Salmoria and the MAME Team.
+ Visit http://mamedev.org for licensing and usage restrictions.
+
+***************************************************************************/
+
+#ifndef STREAMS_H
+#define STREAMS_H
+
+#include "mamecore.h"
+
+
+/***************************************************************************
+ TYPE DEFINITIONS
+***************************************************************************/
+
+typedef struct _sound_stream sound_stream;
+
+typedef void (*stream_callback)(void *param, stream_sample_t **inputs, stream_sample_t **outputs, int samples);
+
+
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+void streams_init(running_machine *machine, attoseconds_t update_subseconds);
+void streams_set_tag(running_machine *machine, void *streamtag);
+void streams_update(running_machine *machine);
+
+/* core stream configuration and operation */
+sound_stream *stream_create(int inputs, int outputs, int sample_rate, void *param, stream_callback callback);
+void stream_set_input(sound_stream *stream, int index, sound_stream *input_stream, int output_index, float gain);
+void stream_update(sound_stream *stream);
+const stream_sample_t *stream_get_output_since_last_update(sound_stream *stream, int outputnum, int *numsamples);
+
+/* utilities for accessing a particular stream */
+sound_stream *stream_find_by_tag(void *streamtag, int streamindex);
+int stream_get_inputs(sound_stream *stream);
+int stream_get_outputs(sound_stream *stream);
+void stream_set_input_gain(sound_stream *stream, int input, float gain);
+void stream_set_output_gain(sound_stream *stream, int output, float gain);
+void stream_set_sample_rate(sound_stream *stream, int sample_rate);
+
+#endif