diff options
| author | Colin Guthrie <cguthrie@mandriva.org> | 2009-10-10 14:19:39 +0100 | 
|---|---|---|
| committer | Colin Guthrie <cguthrie@mandriva.org> | 2009-10-10 15:45:49 +0100 | 
| commit | 0ff2a6b434dec1a694f4cde64469ca19d97d9897 (patch) | |
| tree | 69121ff8dbaabdb86590c9d2b039e70fd9dafc1a /src | |
| parent | 8ec304d2d1e956cc3f5f35437ac4fe580b36f004 (diff) | |
device-manager: Rather than flagging the device as available, just include the sink/source index with PA_INVALID_INDEX meaning unavailable
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/module-device-manager.c | 8 | ||||
| -rw-r--r-- | src/pulse/ext-device-manager.c | 5 | ||||
| -rw-r--r-- | src/pulse/ext-device-manager.h | 2 | 
3 files changed, 6 insertions, 9 deletions
| diff --git a/src/modules/module-device-manager.c b/src/modules/module-device-manager.c index bfcbfeaf..e3158644 100644 --- a/src/modules/module-device-manager.c +++ b/src/modules/module-device-manager.c @@ -1033,13 +1033,13 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio          if ((e = read_entry(u, name))) {              uint32_t idx;              char *devname; -            pa_bool_t available = FALSE; +            uint32_t index = PA_INVALID_INDEX;              if ((devname = get_name(name, "sink:"))) {                  pa_sink* s;                  PA_IDXSET_FOREACH(s, u->core->sinks, idx) {                      if (strcmp(s->name, devname) == 0) { -                        available = TRUE; +                        index = s->index;                          break;                      }                  } @@ -1048,7 +1048,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio                  pa_source* s;                  PA_IDXSET_FOREACH(s, u->core->sources, idx) {                      if (strcmp(s->name, devname) == 0) { -                        available = TRUE; +                        index = s->index;                          break;                      }                  } @@ -1058,7 +1058,7 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio              pa_tagstruct_puts(reply, name);              pa_tagstruct_puts(reply, e->description);              pa_tagstruct_puts(reply, e->icon); -            pa_tagstruct_put_boolean(reply, available); +            pa_tagstruct_putu32(reply, index);              pa_tagstruct_putu32(reply, NUM_ROLES);              for (uint32_t i = ROLE_NONE; i < NUM_ROLES; ++i) { diff --git a/src/pulse/ext-device-manager.c b/src/pulse/ext-device-manager.c index 138ed838..57cb57c8 100644 --- a/src/pulse/ext-device-manager.c +++ b/src/pulse/ext-device-manager.c @@ -128,21 +128,18 @@ static void ext_device_manager_read_cb(pa_pdispatch *pd, uint32_t command, uint3          while (!pa_tagstruct_eof(t)) {              pa_ext_device_manager_info i; -            pa_bool_t available;              memset(&i, 0, sizeof(i)); -            available = FALSE;              if (pa_tagstruct_gets(t, &i.name) < 0 ||                  pa_tagstruct_gets(t, &i.description) < 0 ||                  pa_tagstruct_gets(t, &i.icon) < 0 || -                pa_tagstruct_get_boolean(t, &available) < 0 || +                pa_tagstruct_getu32(t, &i.index) < 0 ||                  pa_tagstruct_getu32(t, &i.n_role_priorities) < 0) {                  pa_context_fail(o->context, PA_ERR_PROTOCOL);                  goto finish;              } -            i.available = (uint8_t)available;              if (i.n_role_priorities > 0) {                  uint32_t j; diff --git a/src/pulse/ext-device-manager.h b/src/pulse/ext-device-manager.h index 13538f0c..1442a1a9 100644 --- a/src/pulse/ext-device-manager.h +++ b/src/pulse/ext-device-manager.h @@ -44,7 +44,7 @@ typedef struct pa_ext_device_manager_info {      const char *name;            /**< Identifier string of the device. A string like "sink:" or similar followed by the name of the device. */      const char *description;     /**< The description of the device when it was last seen, if applicable and saved */      const char *icon;            /**< The icon given to the device */ -    uint8_t available;           /**< Is the device currently available? */ +    uint32_t index;              /**< The device index if it is currently available or PA_INVALID_INDEX */      uint32_t n_role_priorities;  /**< How many role priorities do we have? */      pa_ext_device_manager_role_priority_info *role_priorities; /**< An array of role priority structures or NULL */  } pa_ext_device_manager_info; | 
