Lines Matching refs:state

222      * separate events for the two devices, and the intermediate state between
266 * could guarantee when the jack state is changed, the device with highest
2136 static int element_parse_switch(pa_config_parser_state *state) {
2140 pa_assert(state);
2142 p = state->userdata;
2144 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2145 pa_log("[%s:%u] Switch makes no sense in '%s'", state->filename, state->lineno, state->section);
2149 if (pa_streq(state->rvalue, "ignore"))
2151 else if (pa_streq(state->rvalue, "mute"))
2153 else if (pa_streq(state->rvalue, "off"))
2155 else if (pa_streq(state->rvalue, "on"))
2157 else if (pa_streq(state->rvalue, "select"))
2160 pa_log("[%s:%u] Switch invalid of '%s'", state->filename, state->lineno, state->section);
2167 static int element_parse_volume(pa_config_parser_state *state) {
2171 pa_assert(state);
2173 p = state->userdata;
2175 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2176 pa_log("[%s:%u] Volume makes no sense in '%s'", state->filename, state->lineno, state->section);
2180 if (pa_streq(state->rvalue, "ignore"))
2182 else if (pa_streq(state->rvalue, "merge"))
2184 else if (pa_streq(state->rvalue, "off"))
2186 else if (pa_streq(state->rvalue, "zero"))
2191 if (pa_atou(state->rvalue, &constant) >= 0) {
2195 pa_log("[%s:%u] Volume invalid of '%s'", state->filename, state->lineno, state->section);
2203 static int element_parse_enumeration(pa_config_parser_state *state) {
2207 pa_assert(state);
2209 p = state->userdata;
2211 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2212 pa_log("[%s:%u] Enumeration makes no sense in '%s'", state->filename, state->lineno, state->section);
2216 if (pa_streq(state->rvalue, "ignore"))
2218 else if (pa_streq(state->rvalue, "select"))
2221 pa_log("[%s:%u] Enumeration invalid of '%s'", state->filename, state->lineno, state->section);
2228 static int parse_type(pa_config_parser_state *state) {
2260 path = state->userdata;
2263 if (pa_streq(state->rvalue, device_port_types[idx].name)) {
2268 pa_log("[%s:%u] Invalid value for option 'type': %s", state->filename, state->lineno, state->rvalue);
2272 static int parse_eld_device(pa_config_parser_state *state) {
2276 path = state->userdata;
2278 if (pa_atou(state->rvalue, &eld_device) >= 0) {
2284 if (pa_streq(state->rvalue, "auto")) {
2290 pa_log("[%s:%u] Invalid value for option 'eld-device': %s", state->filename, state->lineno, state->rvalue);
2294 static int option_parse_priority(pa_config_parser_state *state) {
2299 pa_assert(state);
2301 p = state->userdata;
2303 if (!(o = option_get(p, state->section))) {
2304 pa_log("[%s:%u] Priority makes no sense in '%s'", state->filename, state->lineno, state->section);
2308 if (pa_atou(state->rvalue, &prio) < 0) {
2309 pa_log("[%s:%u] Priority invalid of '%s'", state->filename, state->lineno, state->section);
2317 static int option_parse_name(pa_config_parser_state *state) {
2321 pa_assert(state);
2323 p = state->userdata;
2325 if (!(o = option_get(p, state->section))) {
2326 pa_log("[%s:%u] Name makes no sense in '%s'", state->filename, state->lineno, state->section);
2331 o->name = pa_xstrdup(state->rvalue);
2336 static int element_parse_required(pa_config_parser_state *state) {
2343 pa_assert(state);
2345 p = state->userdata;
2347 e = pa_alsa_element_get(p, state->section, true);
2348 o = option_get(p, state->section);
2349 j = jack_get(p, state->section);
2351 pa_log("[%s:%u] Required makes no sense in '%s'", state->filename, state->lineno, state->section);
2355 if (pa_streq(state->rvalue, "ignore"))
2357 else if (pa_streq(state->rvalue, "switch") && e)
2359 else if (pa_streq(state->rvalue, "volume") && e)
2361 else if (pa_streq(state->rvalue, "enumeration"))
2363 else if (pa_streq(state->rvalue, "any"))
2366 pa_log("[%s:%u] Required invalid of '%s'", state->filename, state->lineno, state->section);
2370 if (pa_streq(state->lvalue, "required-absent")) {
2378 else if (pa_streq(state->lvalue, "required-any")) {
2405 static int element_parse_direction(pa_config_parser_state *state) {
2409 pa_assert(state);
2411 p = state->userdata;
2413 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2414 pa_log("[%s:%u] Direction makes no sense in '%s'", state->filename, state->lineno, state->section);
2418 if (pa_streq(state->rvalue, "playback"))
2420 else if (pa_streq(state->rvalue, "capture"))
2423 pa_log("[%s:%u] Direction invalid of '%s'", state->filename, state->lineno, state->section);
2430 static int element_parse_direction_try_other(pa_config_parser_state *state) {
2435 pa_assert(state);
2437 p = state->userdata;
2439 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2440 pa_log("[%s:%u] Direction makes no sense in '%s'", state->filename, state->lineno, state->section);
2444 if ((yes = pa_parse_boolean(state->rvalue)) < 0) {
2445 pa_log("[%s:%u] Direction invalid of '%s'", state->filename, state->lineno, state->section);
2453 static int element_parse_volume_limit(pa_config_parser_state *state) {
2458 pa_assert(state);
2460 p = state->userdata;
2462 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2463 pa_log("[%s:%u] volume-limit makes no sense in '%s'", state->filename, state->lineno, state->section);
2467 if (pa_atol(state->rvalue, &volume_limit) < 0 || volume_limit < 0) {
2468 pa_log("[%s:%u] Invalid value for volume-limit", state->filename, state->lineno);
2519 static int element_parse_override_map(pa_config_parser_state *state) {
2528 pa_assert(state);
2530 p = state->userdata;
2532 if (!(e = pa_alsa_element_get(p, state->section, true))) {
2533 pa_log("[%s:%u] Override map makes no sense in '%s'", state->filename, state->lineno, state->section);
2537 s = strstr(state->lvalue, ".");
2541 pa_log("[%s:%u] Override map index '%s' invalid in '%s'", state->filename, state->lineno, state->lvalue, state->section);
2545 pa_log("[%s:%u] Invalid override map syntax '%s' in '%s'", state->filename, state->lineno, state->lvalue, state->section);
2549 while ((n = pa_split(state->rvalue, ",", &split_state))) {
2554 pa_log("[%s:%u] Invalid override map size (>%d) in '%s'", state->filename, state->lineno, channel_count, state->section);
2568 pa_log("[%s:%u] Override map position '%s' invalid in '%s'", state->filename, state->lineno, n, state->section);
2574 pa_log("[%s:%u] Override map '%s' invalid in '%s'", state->filename, state->lineno, s ? s : n, state->section);
2581 pa_log("[%s:%u] Override map '%s' duplicate position '%s' in '%s'", state->filename, state->lineno, s ? s : n, snd_mixer_selem_channel_name(channel_position), state->section);
2594 static int jack_parse_state(pa_config_parser_state *state) {
2599 pa_assert(state);
2601 p = state->userdata;
2603 if (!(j = jack_get(p, state->section))) {
2604 pa_log("[%s:%u] state makes no sense in '%s'", state->filename, state->lineno, state->section);
2608 if (pa_streq(state->rvalue, "yes"))
2610 else if (pa_streq(state->rvalue, "no"))
2612 else if (pa_streq(state->rvalue, "unknown"))
2615 pa_log("[%s:%u] state must be 'yes', 'no' or 'unknown' in '%s'", state->filename, state->lineno, state->section);
2619 if (pa_streq(state->lvalue, "state.unplugged"))
2623 pa_assert(pa_streq(state->lvalue, "state.plugged"));
2629 static int jack_parse_append_pcm_to_name(pa_config_parser_state *state) {
2634 pa_assert(state);
2636 path = state->userdata;
2637 if (!(jack = jack_get(path, state->section))) {
2639 state->filename, state->lineno, state->section);
2643 b = pa_parse_boolean(state->rvalue);
2645 pa_log("[%s:%u] Invalid value for 'append_pcm_to_name': %s", state->filename, state->lineno, state->rvalue);
2937 { "state.plugged", jack_parse_state, NULL, NULL },
2938 { "state.unplugged", jack_parse_state, NULL, NULL },
3409 void *state;
3415 PA_HASHMAP_FOREACH(p, ps->paths, state)
3453 void *state, *state2;
3560 PA_HASHMAP_FOREACH(db_fix, m->profile_set->decibel_fixes, state) {
3593 void *state;
3600 PA_HASHMAP_FOREACH(p, ps->paths, state)
3649 * Every state is a subset of itself (with caveats for volume_limits and options)
3650 * IGNORE is a subset of every other state */
3762 void *state;
3771 PA_HASHMAP_FOREACH(p, ps->paths, state) {
3837 void *state;
3839 PA_HASHMAP_FOREACH(p, ps->paths, state)
3848 void *state, *state2;
3850 PA_HASHMAP_FOREACH(p, ps->paths, state) {
4022 static int mapping_parse_device_strings(pa_config_parser_state *state) {
4026 pa_assert(state);
4028 ps = state->userdata;
4030 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4031 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4036 if (!(m->device_strings = pa_split_spaces_strv(state->rvalue))) {
4037 pa_log("[%s:%u] Device string list empty of '%s'", state->filename, state->lineno, state->section);
4044 static int mapping_parse_channel_map(pa_config_parser_state *state) {
4048 pa_assert(state);
4050 ps = state->userdata;
4052 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4053 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4057 if (!(pa_channel_map_parse(&m->channel_map, state->rvalue))) {
4058 pa_log("[%s:%u] Channel map invalid of '%s'", state->filename, state->lineno, state->section);
4065 static int mapping_parse_paths(pa_config_parser_state *state) {
4069 pa_assert(state);
4071 ps = state->userdata;
4073 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4074 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4078 if (pa_streq(state->lvalue, "paths-input")) {
4080 m->input_path_names = pa_split_spaces_strv(state->rvalue);
4083 m->output_path_names = pa_split_spaces_strv(state->rvalue);
4089 static int mapping_parse_exact_channels(pa_config_parser_state *state) {
4094 pa_assert(state);
4096 ps = state->userdata;
4098 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4099 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4103 if ((b = pa_parse_boolean(state->rvalue)) < 0) {
4104 pa_log("[%s:%u] %s has invalid value '%s'", state->filename, state->lineno, state->lvalue, state->section);
4113 static int mapping_parse_element(pa_config_parser_state *state) {
4117 pa_assert(state);
4119 ps = state->userdata;
4121 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4122 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4126 if (pa_streq(state->lvalue, "element-input")) {
4128 m->input_element = pa_split_spaces_strv(state->rvalue);
4131 m->output_element = pa_split_spaces_strv(state->rvalue);
4137 static int mapping_parse_direction(pa_config_parser_state *state) {
4141 pa_assert(state);
4143 ps = state->userdata;
4145 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4146 pa_log("[%s:%u] Section name %s invalid.", state->filename, state->lineno, state->section);
4150 if (pa_streq(state->rvalue, "input"))
4152 else if (pa_streq(state->rvalue, "output"))
4154 else if (pa_streq(state->rvalue, "any"))
4157 pa_log("[%s:%u] Direction %s invalid.", state->filename, state->lineno, state->rvalue);
4164 static int mapping_parse_description(pa_config_parser_state *state) {
4169 pa_assert(state);
4171 ps = state->userdata;
4173 if ((m = pa_alsa_mapping_get(ps, state->section))) {
4175 m->description = pa_xstrdup(state->rvalue);
4176 } else if ((p = profile_get(ps, state->section))) {
4178 p->description = pa_xstrdup(state->rvalue);
4180 pa_log("[%s:%u] Section name %s invalid.", state->filename, state->lineno, state->section);
4187 static int mapping_parse_description_key(pa_config_parser_state *state) {
4192 pa_assert(state);
4194 ps = state->userdata;
4196 if ((m = pa_alsa_mapping_get(ps, state->section))) {
4198 m->description_key = pa_xstrdup(state->rvalue);
4199 } else if ((p = profile_get(ps, state->section))) {
4201 p->description_key = pa_xstrdup(state->rvalue);
4203 pa_log("[%s:%u] Section name %s invalid.", state->filename, state->lineno, state->section);
4211 static int mapping_parse_priority(pa_config_parser_state *state) {
4217 pa_assert(state);
4219 ps = state->userdata;
4221 if (pa_atou(state->rvalue, &prio) < 0) {
4222 pa_log("[%s:%u] Priority invalid of '%s'", state->filename, state->lineno, state->section);
4226 if ((m = pa_alsa_mapping_get(ps, state->section)))
4228 else if ((p = profile_get(ps, state->section)))
4231 pa_log("[%s:%u] Section name %s invalid.", state->filename, state->lineno, state->section);
4238 static int mapping_parse_fallback(pa_config_parser_state *state) {
4244 pa_assert(state);
4246 ps = state->userdata;
4248 if ((k = pa_parse_boolean(state->rvalue)) < 0) {
4249 pa_log("[%s:%u] Fallback invalid of '%s'", state->filename, state->lineno, state->section);
4253 if ((m = pa_alsa_mapping_get(ps, state->section)))
4255 else if ((p = profile_get(ps, state->section)))
4258 pa_log("[%s:%u] Section name %s invalid.", state->filename, state->lineno, state->section);
4265 static int mapping_parse_intended_roles(pa_config_parser_state *state) {
4269 pa_assert(state);
4271 ps = state->userdata;
4273 if (!(m = pa_alsa_mapping_get(ps, state->section))) {
4274 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4278 pa_proplist_sets(m->proplist, PA_PROP_DEVICE_INTENDED_ROLES, state->rvalue);
4284 static int profile_parse_mappings(pa_config_parser_state *state) {
4288 pa_assert(state);
4290 ps = state->userdata;
4292 if (!(p = profile_get(ps, state->section))) {
4293 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4297 if (pa_streq(state->lvalue, "input-mappings")) {
4299 p->input_mapping_names = pa_split_spaces_strv(state->rvalue);
4302 p->output_mapping_names = pa_split_spaces_strv(state->rvalue);
4308 static int profile_parse_skip_probe(pa_config_parser_state *state) {
4313 pa_assert(state);
4315 ps = state->userdata;
4317 if (!(p = profile_get(ps, state->section))) {
4318 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4322 if ((b = pa_parse_boolean(state->rvalue)) < 0) {
4323 pa_log("[%s:%u] Skip probe invalid of '%s'", state->filename, state->lineno, state->section);
4332 static int decibel_fix_parse_db_values(pa_config_parser_state *state) {
4345 pa_assert(state);
4347 ps = state->userdata;
4349 if (!(db_fix = decibel_fix_get(ps, state->section))) {
4350 pa_log("[%s:%u] %s invalid in section %s", state->filename, state->lineno, state->lvalue, state->section);
4354 if (!(items = pa_split_spaces_strv(state->rvalue))) {
4355 pa_log("[%s:%u] Value missing", state->filename, state->lineno);
4372 pa_log("[%s:%u] No step value found in %s", state->filename, state->lineno, item);
4378 pa_log("[%s:%u] No dB value found in %s", state->filename, state->lineno, item);
4387 pa_log("[%s:%u] Invalid step value: %s", state->filename, state->lineno, s);
4392 pa_log("[%s:%u] Invalid dB value: %s", state->filename, state->lineno, d);
4397 pa_log("[%s:%u] Step value %u not greater than the previous value %u", state->filename, state->lineno, step, prev_step);
4402 pa_log("[%s:%u] Decibel value %0.2f less than the previous value %0.2f", state->filename, state->lineno, db, prev_db);
4451 void *state;
4457 PA_HASHMAP_FOREACH(p, ps->input_paths, state)
4459 PA_HASHMAP_FOREACH(p, ps->output_paths, state)
4513 void *state;
4542 PA_HASHMAP_FOREACH(p, ps->paths, state) {
4553 PA_HASHMAP_FOREACH(p, ps->paths, state)
4929 void *state;
4986 PA_HASHMAP_FOREACH(m, ps->mappings, state)
4993 PA_HASHMAP_FOREACH(p, ps->profiles, state)
4997 PA_HASHMAP_FOREACH(db_fix, ps->decibel_fixes, state)
5089 void* state = NULL;
5096 p = pa_hashmap_iterate(h, &state, &key);
5100 p = pa_hashmap_iterate(h, &state, &key);
5111 void *state;
5113 PA_HASHMAP_FOREACH(p, profiles, state)
5317 void *state;
5330 PA_HASHMAP_FOREACH(m, ps->mappings, state)
5333 PA_HASHMAP_FOREACH(p, ps->profiles, state)
5336 PA_HASHMAP_FOREACH(db_fix, ps->decibel_fixes, state)
5343 void *state;
5345 PA_HASHMAP_FOREACH(p, ps->profiles, state) {
5350 PA_HASHMAP_FOREACH(m, ps->mappings, state) {
5414 void *state;
5421 PA_HASHMAP_FOREACH(path, ps->paths, state) {