diff options
Diffstat (limited to 'polyp')
| -rw-r--r-- | polyp/cli-command.c | 24 | ||||
| -rw-r--r-- | polyp/core.c | 1 | ||||
| -rw-r--r-- | polyp/core.h | 1 | ||||
| -rw-r--r-- | polyp/namereg.c | 69 | ||||
| -rw-r--r-- | polyp/namereg.h | 5 | ||||
| -rwxr-xr-x | polyp/polypaudio.pa | 2 | ||||
| -rw-r--r-- | polyp/polyplib-stream.c | 2 | ||||
| -rw-r--r-- | polyp/protocol-native.c | 8 | 
8 files changed, 82 insertions, 30 deletions
diff --git a/polyp/cli-command.c b/polyp/cli-command.c index 1d2788fa..4c4f566b 100644 --- a/polyp/cli-command.c +++ b/polyp/cli-command.c @@ -210,8 +210,30 @@ static int pa_cli_command_source_outputs(struct pa_core *c, struct pa_tokenizer  }  static int pa_cli_command_stat(struct pa_core *c, struct pa_tokenizer *t, struct pa_strbuf *buf, int *fail, int *verbose) { +    char s[256];      assert(c && t); -    pa_strbuf_printf(buf, "Memory blocks currently allocated: %u, size: %u bytes.\nMemory blocks allocated during the whole lifetime: %u, size: %u bytes.\n", c->memblock_stat->total, c->memblock_stat->total_size, c->memblock_stat->allocated, c->memblock_stat->allocated_size); + +    pa_bytes_snprint(s, sizeof(s), c->memblock_stat->total_size); +    pa_strbuf_printf(buf, "Memory blocks currently allocated: %u, size: %s.\n", +                     c->memblock_stat->total, +                     s); + +    pa_bytes_snprint(s, sizeof(s), c->memblock_stat->allocated_size); +    pa_strbuf_printf(buf, "Memory blocks allocated during the whole lifetime: %u, size: %s.\n", +                     c->memblock_stat->allocated, +                     s); + +    pa_bytes_snprint(s, sizeof(s), pa_scache_total_size(c)); +    pa_strbuf_printf(buf, "Total sample cache size: %s.\n", s); + +    pa_sample_spec_snprint(s, sizeof(s), &c->default_sample_spec); +    pa_strbuf_printf(buf, "Default sample spec: %s\n", s); + +    pa_strbuf_printf(buf, "Default sink name: %s\n" +                     "Default source name: %s\n", +                     pa_namereg_get_default_sink_name(c), +                     pa_namereg_get_default_source_name(c)); +          return 0;  } diff --git a/polyp/core.c b/polyp/core.c index 4362f0cb..5d79a365 100644 --- a/polyp/core.c +++ b/polyp/core.c @@ -139,3 +139,4 @@ void pa_core_check_quit(struct pa_core *c) {          c->quit_event = NULL;      }  } + diff --git a/polyp/core.h b/polyp/core.h index ca37507c..ddba6a83 100644 --- a/polyp/core.h +++ b/polyp/core.h @@ -55,7 +55,6 @@ struct pa_core {  struct pa_core* pa_core_new(struct pa_mainloop_api *m);  void pa_core_free(struct pa_core*c); -  void pa_core_check_quit(struct pa_core *c);  #endif diff --git a/polyp/namereg.c b/polyp/namereg.c index 44a9cdc6..5791a3e4 100644 --- a/polyp/namereg.c +++ b/polyp/namereg.c @@ -122,30 +122,10 @@ void* pa_namereg_get(struct pa_core *c, const char *name, enum pa_namereg_type t      assert(c);      if (!name) { -        if (type == PA_NAMEREG_SOURCE) { -            if (!c->default_source_name) { -                struct pa_source *s; - -                for (s = pa_idxset_first(c->sources, &index); s; s = pa_idxset_next(c->sources, &index)) -                    if (!s->monitor_of) { -                        pa_namereg_set_default(c, s->name, PA_NAMEREG_SOURCE); -                        break; -                    } -            } - -            name = c->default_source_name; -                 -        } else if (type == PA_NAMEREG_SINK) { - -            if (!c->default_sink_name) { -                struct pa_sink *s; - -                if ((s = pa_idxset_first(c->sinks, NULL))) -                    pa_namereg_set_default(c, s->name, PA_NAMEREG_SINK); -            } - -            name = c->default_sink_name; -        } +        if (type == PA_NAMEREG_SOURCE) +            name = pa_namereg_get_default_source_name(c); +        else if (type == PA_NAMEREG_SINK) +            name = pa_namereg_get_default_sink_name(c);      }      if (!name) @@ -197,3 +177,44 @@ void pa_namereg_set_default(struct pa_core*c, const char *name, enum pa_namereg_      *s = pa_xstrdup(name);      pa_subscription_post(c, PA_SUBSCRIPTION_EVENT_SERVER|PA_SUBSCRIPTION_EVENT_CHANGE, PA_INVALID_INDEX);  } + +const char *pa_namereg_get_default_sink_name(struct pa_core *c) { +    struct pa_sink *s; +    assert(c); + +    if (c->default_sink_name) +        return c->default_sink_name; +     +    if ((s = pa_idxset_first(c->sinks, NULL))) +        pa_namereg_set_default(c, s->name, PA_NAMEREG_SINK); + +    if (c->default_sink_name) +        return c->default_sink_name; + +    return NULL; +} + +const char *pa_namereg_get_default_source_name(struct pa_core *c) { +    struct pa_source *s; +    uint32_t index; +     +    assert(c); + +    if (c->default_source_name) +        return c->default_source_name; + +    for (s = pa_idxset_first(c->sources, &index); s; s = pa_idxset_next(c->sources, &index)) +        if (!s->monitor_of) { +            pa_namereg_set_default(c, s->name, PA_NAMEREG_SOURCE); +            break; +        } + +    if (!c->default_source_name) +        if ((s = pa_idxset_first(c->sources, NULL))) +            pa_namereg_set_default(c, s->name, PA_NAMEREG_SOURCE); + +    if (c->default_source_name) +        return c->default_source_name; + +    return NULL; +} diff --git a/polyp/namereg.h b/polyp/namereg.h index b8db1105..f1be3958 100644 --- a/polyp/namereg.h +++ b/polyp/namereg.h @@ -37,4 +37,9 @@ void pa_namereg_unregister(struct pa_core *c, const char *name);  void* pa_namereg_get(struct pa_core *c, const char *name, enum pa_namereg_type type, int autoload);  void pa_namereg_set_default(struct pa_core*c, const char *name, enum pa_namereg_type type); + +const char *pa_namereg_get_default_sink_name(struct pa_core *c); +const char *pa_namereg_get_default_source_name(struct pa_core *c); + +  #endif diff --git a/polyp/polypaudio.pa b/polyp/polypaudio.pa index 9e18abfd..40012fd6 100755 --- a/polyp/polypaudio.pa +++ b/polyp/polypaudio.pa @@ -21,7 +21,7 @@  # Load audio drivers statically  #load module-alsa-sink -#load module-alsa-source device=plughw:1,0 +load module-alsa-source device=plughw:1,0  load module-oss device="/dev/dsp" sink_name=output source_name=input record=0  #load module-oss-mmap device="/dev/dsp" sink_name=output source_name=input  #load module-pipe-sink diff --git a/polyp/polyplib-stream.c b/polyp/polyplib-stream.c index 7170a32e..a66a0fc6 100644 --- a/polyp/polyplib-stream.c +++ b/polyp/polyplib-stream.c @@ -239,7 +239,7 @@ static void create_stream(struct pa_stream *s, const char *dev, const struct pa_      pa_tagstruct_putu32(t, tag = s->context->ctag++);      pa_tagstruct_puts(t, s->name);      pa_tagstruct_put_sample_spec(t, &s->sample_spec); -    pa_tagstruct_putu32(t, (uint32_t) -1); +    pa_tagstruct_putu32(t, PA_INVALID_INDEX);      pa_tagstruct_puts(t, dev ? dev : "");      pa_tagstruct_putu32(t, s->buffer_attr.maxlength);      if (s->direction == PA_STREAM_PLAYBACK) { diff --git a/polyp/protocol-native.c b/polyp/protocol-native.c index 3d6114cf..943d6b22 100644 --- a/polyp/protocol-native.c +++ b/polyp/protocol-native.c @@ -1203,6 +1203,7 @@ static void command_get_server_info(struct pa_pdispatch *pd, uint32_t command, u      struct connection *c = userdata;      struct pa_tagstruct *reply;      char txt[256]; +    const char *n;      assert(c && t);      if (!pa_tagstruct_eof(t)) { @@ -1224,8 +1225,11 @@ static void command_get_server_info(struct pa_pdispatch *pd, uint32_t command, u      pa_tagstruct_puts(reply, pa_get_user_name(txt, sizeof(txt)));      pa_tagstruct_puts(reply, pa_get_host_name(txt, sizeof(txt)));      pa_tagstruct_put_sample_spec(reply, &c->protocol->core->default_sample_spec); -    pa_tagstruct_puts(reply, c->protocol->core->default_sink_name ?  c->protocol->core->default_sink_name : ""); -    pa_tagstruct_puts(reply, c->protocol->core->default_source_name ?  c->protocol->core->default_source_name : ""); + +    n = pa_namereg_get_default_sink_name(c->protocol->core); +    pa_tagstruct_puts(reply, n ? n : ""); +    n = pa_namereg_get_default_source_name(c->protocol->core); +    pa_tagstruct_puts(reply, n ? n : "");      pa_pstream_send_tagstruct(c->pstream, reply);  }  | 
