summaryrefslogtreecommitdiff
path: root/src/audioio.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/audioio.cc')
-rw-r--r--src/audioio.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/audioio.cc b/src/audioio.cc
index f3dd449..5da202a 100644
--- a/src/audioio.cc
+++ b/src/audioio.cc
@@ -219,6 +219,42 @@ int aio_get_capture_mixer_level_range(struct aio_t *h, float *min, float *max)
return get_mixer_level_range(h->source_mixer, min, max);
}
+int aio_get_enum_value(struct aio_t *h, const char *name, char *value,
+ size_t maxsize)
+{
+ CHECK_HANDLE(h);
+
+ Mixer *m = h->device->getMixer(name);
+ if(!m) return NO_SUCH_ENUM;
+
+ if(!m->isEnum()) {
+ delete m;
+ return NO_SUCH_ENUM;
+ }
+
+ std::string e = m->enumValue();
+ snprintf(value, maxsize, "%s", e.c_str());
+
+ return 0;
+}
+
+int aio_set_enum_value(struct aio_t *h, const char *name, const char *value)
+{
+ CHECK_HANDLE(h);
+
+ Mixer *m = h->device->getMixer(name);
+ if(!m) return NO_SUCH_ENUM;
+
+ if(!m->isEnum()) {
+ delete m;
+ return NO_SUCH_ENUM;
+ }
+
+ m->setEnumValue(value);
+
+ return 0;
+}
+
int aio_get_samplerate(struct aio_t *h)
{
CHECK_HANDLE(h);