pa_alsa_ucm_config ucm;
#ifdef __TIZEN__
- bool use_tizen_hal;
+ bool use_tizen_hal_sink;
+ bool use_tizen_hal_source;
#endif
};
return ret;
}
+static void pa_get_use_tizen_hal_info(const char *use_tizen_hal, bool *use_tizen_hal_sink, bool *use_tizen_hal_source) {
+ pa_assert(use_tizen_hal_sink);
+ pa_assert(use_tizen_hal_source);
+
+ if (!use_tizen_hal)
+ return;
+
+ *use_tizen_hal_sink = false;
+ *use_tizen_hal_source = false;
+
+ if (pa_streq(use_tizen_hal, "both"))
+ *use_tizen_hal_sink = *use_tizen_hal_source = true;
+ else if (pa_streq(use_tizen_hal, "source"))
+ *use_tizen_hal_source = true;
+ else if (pa_streq(use_tizen_hal, "sink"))
+ *use_tizen_hal_sink = true;
+}
+
static pa_sink *pa_dl_alsa_sink_new(pa_module *m, pa_modargs *ma, const char *driver, pa_card *card, pa_alsa_mapping *mapping) {
pa_sink *s;
dl_sink_new_t dl_sink_new;
struct userdata *u = (struct userdata *)m->userdata;
- if (!u->use_tizen_hal)
+ if (!u->use_tizen_hal_sink)
goto exit;
if (!(dl_sink_new = pa_dl_get_tizenaudio_function(PA_TIZEN_HAL_SINK2_NEW))) {
dl_source_new_t dl_source_new;
struct userdata *u = (struct userdata *)m->userdata;
- if (!u->use_tizen_hal)
+ if (!u->use_tizen_hal_source)
goto exit;
if (!(dl_source_new = pa_dl_get_tizenaudio_function(PA_TIZEN_HAL_SOURCE2_NEW))) {
m = s->module;
u = m->userdata;
- if (u->use_tizen_hal) {
+ if (u->use_tizen_hal_sink) {
dl_sink_free = pa_dl_get_tizenaudio_function(PA_TIZEN_HAL_SINK2_FREE);
dl_sink_free(s);
return;
m = s->module;
u = m->userdata;
- if (u->use_tizen_hal) {
+ if (u->use_tizen_hal_source) {
dl_source_free = pa_dl_get_tizenaudio_function(PA_TIZEN_HAL_SOURCE2_FREE);
dl_source_free(s);
return;
}
#ifdef __TIZEN__
- if (pa_modargs_get_value_boolean(u->modargs, "use_tizen_hal", &u->use_tizen_hal) < 0) {
- pa_log("Failed to parse use_tizen_hal= argument.");
- goto fail;
- }
+ pa_get_use_tizen_hal_info(pa_modargs_get_value(u->modargs, "use_tizen_hal", NULL),
+ &u->use_tizen_hal_sink, &u->use_tizen_hal_source);
#endif
/* Force ALSA to reread its configuration. This matters if our device
"use_ucm=<use ALSA UCM for card configuration?> "
"avoid_resampling=<use stream original sample rate if possible?>"
#ifdef __TIZEN__
- "use_tizen_hal=<use tizen hal through tizenaudio-sink2/source2>"
+ "use_tizen_hal=<use tizen hal through tizenaudio-sink2/source2, it must be 'both', 'sink', 'source'>"
#endif
);
int inotify_fd;
pa_io_event *inotify_io;
#ifdef __TIZEN__
- bool use_tizen_hal;
+ char *use_tizen_hal;
#endif
};
"name=\"%s\" "
"card_name=\"%s\" "
#ifdef __TIZEN__
- "use_tizen_hal=%s "
+ "use_tizen_hal=\"%s\" "
#endif
"namereg_fail=false "
"tsched=%s "
n,
d->card_name,
#ifdef __TIZEN__
- pa_yes_no(u->use_tizen_hal),
+ u->use_tizen_hal,
#endif
pa_yes_no(u->use_tsched),
pa_yes_no(u->fixed_latency_range),
u->avoid_resampling = avoid_resampling;
#ifdef __TIZEN__
- if (pa_modargs_get_value_boolean(ma, "use_tizen_hal", &u->use_tizen_hal) < 0) {
- pa_log("Failed to parse use_tizen_hal= argument.");
- goto fail;
- }
+ u->use_tizen_hal = pa_xstrdup(pa_modargs_get_value(ma, "use_tizen_hal", "empty"));
#endif
if (!(u->udev = udev_new())) {
if (u->devices)
pa_hashmap_free(u->devices);
+#ifdef __TIZEN__
+ pa_xfree(u->use_tizen_hal);
+#endif
+
pa_xfree(u);
}