diff options
| author | Colin Guthrie <cguthrie@mandriva.org> | 2009-09-19 16:46:18 +0100 | 
|---|---|---|
| committer | Colin Guthrie <cguthrie@mandriva.org> | 2009-10-01 09:08:29 +0100 | 
| commit | 95f28393ab413c797e2f16d2caf1f8caf0283b71 (patch) | |
| tree | 8e1a834dca8a2377f6ba70aec6c85f787cf09e22 /src | |
| parent | 103897a1e33fe83f6ba0b7d521ccc2e36da43881 (diff) | |
device-manager: Fix copy+paste code that looped over the tagstruct when not necessary
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/module-device-manager.c | 77 | 
1 files changed, 37 insertions, 40 deletions
diff --git a/src/modules/module-device-manager.c b/src/modules/module-device-manager.c index 5685dbb8..b3c407ca 100644 --- a/src/modules/module-device-manager.c +++ b/src/modules/module-device-manager.c @@ -478,56 +478,53 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio        break; -    case SUBCOMMAND_ROLE_DEVICE_PRIORITY_ROUTING: - -        while (!pa_tagstruct_eof(t)) { -            pa_bool_t enable; -            uint32_t sridx = PA_INVALID_INDEX; -            uint32_t idx; -            pa_module *module; - -            if (pa_tagstruct_get_boolean(t, &enable) < 0) -                goto fail; - -            /* If this is the first run, check for stream restore module */ -            if (!u->checked_stream_restore) { -                u->checked_stream_restore = TRUE; - -                for (module = pa_idxset_first(u->core->modules, &idx); module; module = pa_idxset_next(u->core->modules, &idx)) { -                    if (strcmp(module->name, "module-stream-restore") == 0) { -                        pa_log_debug("Detected module-stream-restore is currently in use"); -                        u->stream_restore_used = TRUE; -                        sridx = module->index; -                    } +    case SUBCOMMAND_ROLE_DEVICE_PRIORITY_ROUTING: { + +        pa_bool_t enable; +        uint32_t sridx = PA_INVALID_INDEX; +        uint32_t idx; +        pa_module *module; + +        if (pa_tagstruct_get_boolean(t, &enable) < 0) +            goto fail; + +        /* If this is the first run, check for stream restore module */ +        if (!u->checked_stream_restore) { +            u->checked_stream_restore = TRUE; + +            for (module = pa_idxset_first(u->core->modules, &idx); module; module = pa_idxset_next(u->core->modules, &idx)) { +                if (strcmp(module->name, "module-stream-restore") == 0) { +                    pa_log_debug("Detected module-stream-restore is currently in use"); +                    u->stream_restore_used = TRUE; +                    sridx = module->index;                  }              } +        } -            u->role_device_priority_routing = enable; -            if (enable) { -                if (u->stream_restore_used) { -                    if (PA_INVALID_INDEX == sridx) { -                        /* As a shortcut on first load, we have sridx filled in, but otherwise we search for it. */ -                        for (module = pa_idxset_first(u->core->modules, &idx); module; module = pa_idxset_next(u->core->modules, &idx)) { -                            if (strcmp(module->name, "module-stream-restore") == 0) { -                                sridx = module->index; -                            } +        u->role_device_priority_routing = enable; +        if (enable) { +            if (u->stream_restore_used) { +                if (PA_INVALID_INDEX == sridx) { +                    /* As a shortcut on first load, we have sridx filled in, but otherwise we search for it. */ +                    for (module = pa_idxset_first(u->core->modules, &idx); module; module = pa_idxset_next(u->core->modules, &idx)) { +                        if (strcmp(module->name, "module-stream-restore") == 0) { +                            sridx = module->index;                          }                      } -                    if (PA_INVALID_INDEX != sridx) { -                        pa_log_debug("Unloading module-stream-restore to enable role-based device-priority routing"); -                        pa_module_unload_request_by_index(u->core, sridx, TRUE); -                    }                  } -            } else if (u->stream_restore_used) { -                /* We want to reload module-stream-restore */ -                if (!pa_module_load(u->core, "module-stream-restore", "")) -                    pa_log_warn("Failed to load module-stream-restore while disabling role-based device-priority routing"); +                if (PA_INVALID_INDEX != sridx) { +                    pa_log_debug("Unloading module-stream-restore to enable role-based device-priority routing"); +                    pa_module_unload_request_by_index(u->core, sridx, TRUE); +                }              } +        } else if (u->stream_restore_used) { +            /* We want to reload module-stream-restore */ +            if (!pa_module_load(u->core, "module-stream-restore", "")) +                pa_log_warn("Failed to load module-stream-restore while disabling role-based device-priority routing");          } -        trigger_save(u); -          break; +    }      case SUBCOMMAND_SUBSCRIBE: {  | 
