Ticket #252: pa_custom_hal_names.patch
| File pa_custom_hal_names.patch, 6.7 KB (added by shogun_panda, 4 years ago) |
|---|
-
src/modules/module-alsa-sink.c
diff -ura old/src/modules/module-alsa-sink.c new/src/modules/module-alsa-sink.c
old new 56 56 PA_MODULE_LOAD_ONCE(FALSE); 57 57 PA_MODULE_USAGE( 58 58 "sink_name=<name for the sink> " 59 "description=<description for the sink>" 59 60 "device=<ALSA device> " 60 61 "device_id=<ALSA device id> " 61 62 "format=<sample format> " … … 102 103 static const char* const valid_modargs[] = { 103 104 "device", 104 105 "device_id", 106 "description", 105 107 "sink_name", 106 108 "format", 107 109 "channels", … … 873 875 pa_sink_set_module(u->sink, m); 874 876 pa_sink_set_asyncmsgq(u->sink, u->thread_mq.inq); 875 877 pa_sink_set_rtpoll(u->sink, u->rtpoll); 876 pa_sink_set_description(u->sink, t = pa_sprintf_malloc( 878 879 if(pa_modargs_get_value(ma, "description", NULL) != NULL) 880 pa_sink_set_description(u->sink, t = pa_sprintf_malloc("%s", (char*) pa_modargs_get_value(ma, "description", NULL))); 881 else 882 pa_sink_set_description(u->sink, t = pa_sprintf_malloc( 877 883 "ALSA PCM on %s (%s)%s", 878 884 u->device_name, 879 885 snd_pcm_info_get_name(pcm_info), -
src/modules/module-alsa-source.c
diff -ura old/src/modules/module-alsa-source.c new/src/modules/module-alsa-source.c
old new 58 58 PA_MODULE_USAGE( 59 59 "source_name=<name for the source> " 60 60 "device=<ALSA device> " 61 "description=<description for the source>" 61 62 "device_id=<ALSA device id> " 62 63 "format=<sample format> " 63 64 "channels=<number of channels> " … … 101 102 "device", 102 103 "device_id", 103 104 "source_name", 105 "description", 104 106 "channels", 105 107 "rate", 106 108 "format", … … 852 854 pa_source_set_module(u->source, m); 853 855 pa_source_set_asyncmsgq(u->source, u->thread_mq.inq); 854 856 pa_source_set_rtpoll(u->source, u->rtpoll); 855 pa_source_set_description(u->source, t = pa_sprintf_malloc( 857 858 if(pa_modargs_get_value(ma, "description", NULL) != NULL) 859 pa_source_set_description(u->source, t = pa_sprintf_malloc("%s", (char*) pa_modargs_get_value(ma, "description", NULL))); 860 else 861 pa_source_set_description(u->source, t = pa_sprintf_malloc( 856 862 "ALSA PCM on %s (%s)%s", 857 863 u->device_name, 858 864 snd_pcm_info_get_name(pcm_info), -
src/modules/module-hal-detect.c
diff -ura old/src/modules/module-hal-detect.c new/src/modules/module-hal-detect.c
old new 163 163 const char *module_name; 164 164 DBusError error; 165 165 pa_module *m; 166 char *p_udi, *parent_udi; 167 char *custom_source_name = NULL, *custom_sink_name = NULL, *custom_sink_description = NULL, *custom_source_description = NULL; 168 unsigned int i; 169 166 170 167 171 dbus_error_init(&error); 168 172 … … 187 191 if (hal_alsa_device_is_modem(u->context, udi, &error)) 188 192 goto fail; 189 193 194 p_udi = pa_sprintf_malloc("%s", libhal_device_get_property_string(u->context, udi, "info.parent", &error)); 195 parent_udi = pa_sprintf_malloc("%s", libhal_device_get_property_string(u->context, p_udi, "info.parent", &error)); 196 197 if(libhal_device_property_exists(u->context, parent_udi, "pulse.sink_name", &error)) 198 custom_sink_name = pa_sprintf_malloc("%s", libhal_device_get_property_string(u->context, parent_udi, "pulse.sink_name", &error)); 199 else if(libhal_device_property_exists(u->context, parent_udi, "pulse.device_name", &error)) 200 custom_sink_name = pa_sprintf_malloc("%s_output", libhal_device_get_property_string(u->context, parent_udi, "pulse.device_name", &error)); 201 202 if(libhal_device_property_exists(u->context, parent_udi, "pulse.source_name", &error)) 203 custom_source_name = pa_sprintf_malloc("%s", libhal_device_get_property_string(u->context, parent_udi, "pulse.source_name", &error)); 204 else if(libhal_device_property_exists(u->context, parent_udi, "pulse.device_name", &error)) 205 custom_source_name = pa_sprintf_malloc("%s_input", libhal_device_get_property_string(u->context, parent_udi, "pulse.device_name", &error)); 206 207 if(libhal_device_property_exists(u->context, parent_udi, "pulse.sink_description", &error)) 208 custom_sink_description = pa_sprintf_malloc("%s", libhal_device_get_property_string(u->context, parent_udi, "pulse.sink_description", &error)); 209 210 if(libhal_device_property_exists(u->context, parent_udi, "pulse.source_description", &error)) 211 custom_source_description = pa_sprintf_malloc("%s", libhal_device_get_property_string(u->context, parent_udi, "pulse.source_description", &error)); 212 213 if(custom_sink_name != NULL){ 214 for(i = 0; i < strlen(custom_sink_name); i++) 215 if(custom_sink_name[i] == ' ') 216 custom_sink_name[i] = '_'; 217 } 218 219 if(custom_source_name != NULL){ 220 for(i = 0; i < strlen(custom_source_name); i++) 221 if(custom_source_name[i] == ' ') 222 custom_source_name[i] = '_'; 223 } 224 190 225 if (type == ALSA_TYPE_SINK) { 191 *sink_name = pa_sprintf_malloc("alsa_output.%s", strip_udi(udi)); 226 if(custom_sink_name != NULL) 227 *sink_name = pa_sprintf_malloc("%s", custom_sink_name); 228 else 229 *sink_name = pa_sprintf_malloc("alsa_output.%s", strip_udi(udi)); 192 230 193 231 module_name = "module-alsa-sink"; 194 232 args = pa_sprintf_malloc("device_id=%u sink_name=%s", card, *sink_name); 233 if(custom_sink_description != NULL) 234 args = pa_sprintf_malloc("%s description=\"%s\"", args, custom_sink_description); 195 235 } else { 196 *source_name = pa_sprintf_malloc("alsa_input.%s", strip_udi(udi)); 236 if(custom_source_name != NULL) 237 *source_name = pa_sprintf_malloc("%s", custom_source_name); 238 else 239 *source_name = pa_sprintf_malloc("alsa_input.%s", strip_udi(udi)); 197 240 198 241 module_name = "module-alsa-source"; 199 242 args = pa_sprintf_malloc("device_id=%u source_name=%s", card, *source_name); 243 if(custom_source_description != NULL) 244 args = pa_sprintf_malloc("%s description=\"%s\"", args, custom_source_description); 200 245 } 201 246 247 202 248 pa_log_debug("Loading %s with arguments '%s'", module_name, args); 203 249 204 250 m = pa_module_load(u->core, module_name, args); … … 206 252 pa_xfree(args); 207 253 208 254 if (!m) { 255 pa_xfree(p_udi); 256 pa_xfree(parent_udi); 209 257 pa_xfree(*sink_name); 210 258 pa_xfree(*source_name); 211 259 *sink_name = *source_name = NULL;
