summaryrefslogtreecommitdiffstats
path: root/mixer.h
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2012-10-26 15:47:01 +0200
committerPaul Kocialkowski <contact@paulk.fr>2012-10-26 15:47:01 +0200
commitf6e1b0eae63dfd937213e0b0fdb01f106621421c (patch)
tree8c8b018a2461c7096f203f0ea6ba091fda1ab22c /mixer.h
parent7751e9ab8b411d69fab1e455ef4ff75b883ab4d6 (diff)
downloadhardware_tinyalsa-audio-f6e1b0eae63dfd937213e0b0fdb01f106621421c.zip
hardware_tinyalsa-audio-f6e1b0eae63dfd937213e0b0fdb01f106621421c.tar.gz
hardware_tinyalsa-audio-f6e1b0eae63dfd937213e0b0fdb01f106621421c.tar.bz2
Mixer: Avoid mode and use directions logic instead, introducing modem support
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'mixer.h')
-rw-r--r--mixer.h45
1 files changed, 29 insertions, 16 deletions
diff --git a/mixer.h b/mixer.h
index 3b1e19b..a6f7cca 100644
--- a/mixer.h
+++ b/mixer.h
@@ -47,7 +47,6 @@ struct tinyalsa_mixer_data {
struct tinyalsa_mixer_device_props {
audio_devices_t type;
- audio_mode_t mode;
};
struct tinyalsa_mixer_device {
@@ -72,42 +71,56 @@ struct tinyalsa_mixer_io {
struct tinyalsa_mixer_io_props props;
struct tinyalsa_mixer_device *device_current;
struct list_head *devices;
+ int state;
};
struct tinyalsa_mixer {
struct tinyalsa_mixer_io output;
struct tinyalsa_mixer_io input;
+ struct tinyalsa_mixer_io modem;
struct mixer *mixer;
};
+enum tinyalsa_mixer_direction {
+ TINYALSA_MIXER_DIRECTION_OUTPUT,
+ TINYALSA_MIXER_DIRECTION_INPUT,
+ TINYALSA_MIXER_DIRECTION_MODEM,
+ TINYALSA_MIXER_DIRECTION_MAX
+};
+
struct tinyalsa_mixer_config_data {
struct tinyalsa_mixer *mixer;
struct tinyalsa_mixer_io_props io_props;
struct tinyalsa_mixer_device_props device_props;
- int direction;
+ enum tinyalsa_mixer_direction direction;
struct tinyalsa_mixer_device *device;
struct list_head **list_start;
struct list_head *list;
};
-int tinyalsa_mixer_open(struct tinyalsa_mixer **mixer_p, char *config_file);
-void tinyalsa_mixer_close(struct tinyalsa_mixer *mixer);
+int tinyalsa_mixer_set_output_state(struct tinyalsa_mixer *mixer, int state);
+int tinyalsa_mixer_set_input_state(struct tinyalsa_mixer *mixer, int state);
+int tinyalsa_mixer_set_modem_state(struct tinyalsa_mixer *mixer, int state);
-struct tinyalsa_mixer_io_props *tinyalsa_mixer_get_input_props(struct tinyalsa_mixer *mixer);
-struct tinyalsa_mixer_io_props *tinyalsa_mixer_get_output_props(struct tinyalsa_mixer *mixer);
-audio_devices_t tinyalsa_mixer_get_supported_devices(struct tinyalsa_mixer *mixer);
+int tinyalsa_mixer_set_device(struct tinyalsa_mixer *mixer, audio_devices_t device);
-int tinyalsa_mixer_set_voice_volume(struct tinyalsa_mixer *mixer,
- audio_devices_t device, audio_mode_t mode, float volume);
-int tinyalsa_mixer_set_input_gain(struct tinyalsa_mixer *mixer,
- audio_devices_t device, audio_mode_t mode, float gain);
-int tinyalsa_mixer_set_mic_mute(struct tinyalsa_mixer *mixer,
- audio_devices_t device, audio_mode_t mode, int mute);
-int tinyalsa_mixer_set_master_volume(struct tinyalsa_mixer *mixer, float volume);
int tinyalsa_mixer_set_output_volume(struct tinyalsa_mixer *mixer,
- audio_devices_t device, audio_mode_t mode, float volume);
+ audio_devices_t device, float volume);
+int tinyalsa_mixer_set_master_volume(struct tinyalsa_mixer *mixer, float volume);
+int tinyalsa_mixer_set_mic_mute(struct tinyalsa_mixer *mixer,
+ audio_devices_t device, int mute);
+int tinyalsa_mixer_set_input_gain(struct tinyalsa_mixer *mixer,
+ audio_devices_t device, float gain);
+int tinyalsa_mixer_set_voice_volume(struct tinyalsa_mixer *mixer,
+ audio_devices_t device, float volume);
+
+audio_devices_t tinyalsa_mixer_get_supported_devices(struct tinyalsa_mixer *mixer);
+struct tinyalsa_mixer_io_props *tinyalsa_mixer_get_output_props(struct tinyalsa_mixer *mixer);
+struct tinyalsa_mixer_io_props *tinyalsa_mixer_get_input_props(struct tinyalsa_mixer *mixer);
+struct tinyalsa_mixer_io_props *tinyalsa_mixer_get_modem_props(struct tinyalsa_mixer *mixer);
-int tinyalsa_mixer_set_route(struct tinyalsa_mixer *mixer, audio_devices_t device, audio_mode_t mode);
+void tinyalsa_mixer_close(struct tinyalsa_mixer *mixer);
+int tinyalsa_mixer_open(struct tinyalsa_mixer **mixer_p, char *config_file);
#endif