diff options
| -rw-r--r-- | src/modules/module-alsa-sink.c | 2 | ||||
| -rw-r--r-- | src/modules/module-hal-detect.c | 23 | 
2 files changed, 20 insertions, 5 deletions
| diff --git a/src/modules/module-alsa-sink.c b/src/modules/module-alsa-sink.c index 8e66f796..aad6801e 100644 --- a/src/modules/module-alsa-sink.c +++ b/src/modules/module-alsa-sink.c @@ -1148,7 +1148,7 @@ int pa__init(pa_module*m) {      }      if (pa_modargs_get_value_boolean(ma, "tsched", &use_tsched) < 0) { -        pa_log("Failed to parse timer_scheduling argument."); +        pa_log("Failed to parse tsched argument.");          goto fail;      } diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c index ab5b206f..5354717e 100644 --- a/src/modules/module-hal-detect.c +++ b/src/modules/module-hal-detect.c @@ -56,9 +56,11 @@ PA_MODULE_DESCRIPTION("Detect available audio hardware and load matching drivers  PA_MODULE_VERSION(PACKAGE_VERSION);  PA_MODULE_LOAD_ONCE(TRUE);  #if defined(HAVE_ALSA) && defined(HAVE_OSS) -PA_MODULE_USAGE("api=<alsa or oss>"); +PA_MODULE_USAGE("api=<alsa or oss> " +                "tsched=<enable system timer based scheduling mode?>");  #elif defined(HAVE_ALSA) -PA_MODULE_USAGE("api=<alsa>"); +PA_MODULE_USAGE("api=<alsa> " +                "tsched=<enable system timer based scheduling mode?>");  #elif defined(HAVE_OSS)  PA_MODULE_USAGE("api=<oss>");  #endif @@ -76,6 +78,9 @@ struct userdata {      pa_dbus_connection *connection;      pa_hashmap *devices;      const char *capability; +#ifdef HAVE_ALSA +    pa_bool_t use_tsched; +#endif  };  struct timerdata { @@ -88,6 +93,9 @@ struct timerdata {  static const char* const valid_modargs[] = {      "api", +#ifdef HAVE_ALSA +    "tsched", +#endif      NULL  }; @@ -189,12 +197,12 @@ static pa_module* hal_device_load_alsa(struct userdata *u, const char *udi, char          *sink_name = pa_sprintf_malloc("alsa_output.%s", strip_udi(udi));          module_name = "module-alsa-sink"; -        args = pa_sprintf_malloc("device_id=%u sink_name=%s", card, *sink_name); +        args = pa_sprintf_malloc("device_id=%u sink_name=%s tsched=%i", card, *sink_name, (int) u->use_tsched);      } else {          *source_name = pa_sprintf_malloc("alsa_input.%s", strip_udi(udi));          module_name = "module-alsa-source"; -        args = pa_sprintf_malloc("device_id=%u source_name=%s", card, *source_name); +        args = pa_sprintf_malloc("device_id=%u source_name=%s tsched=%i", card, *source_name, (int) u->use_tsched);      }      pa_log_debug("Loading %s with arguments '%s'", module_name, args); @@ -724,6 +732,7 @@ int pa__init(pa_module*m) {      int n = 0;      pa_modargs *ma;      const char *api; +    pa_bool_t use_tsched = TRUE;      pa_assert(m); @@ -734,6 +743,11 @@ int pa__init(pa_module*m) {          goto fail;      } +    if (pa_modargs_get_value_boolean(ma, "tsched", &use_tsched) < 0) { +        pa_log("Failed to parse tsched argument."); +        goto fail; +    } +      if ((api = pa_modargs_get_value(ma, "api", NULL))) {          int good = 0; @@ -775,6 +789,7 @@ int pa__init(pa_module*m) {      u->connection = conn;      u->devices = pa_hashmap_new(pa_idxset_string_hash_func, pa_idxset_string_compare_func);      u->capability = api; +    u->use_tsched = use_tsched;      m->userdata = u;  #ifdef HAVE_ALSA | 
