summaryrefslogtreecommitdiff
path: root/pa-sink-ctl.c
diff options
context:
space:
mode:
authorJan Klemkow <web2p10@wemelug.de>2010-07-09 00:55:02 +0200
committerJan Klemkow <web2p10@wemelug.de>2010-07-09 00:55:02 +0200
commit21b1027832ff5e53edc37dd9f5c153217a65b6fd (patch)
tree156d666ade9380434ecae73f9bd02fe71e2d2caf /pa-sink-ctl.c
parent83a220ec9b1fe7e706478bc1604fe8741be649a2 (diff)
downloadpa-sink-ctl-21b1027832ff5e53edc37dd9f5c153217a65b6fd.tar.gz
pa-sink-ctl-21b1027832ff5e53edc37dd9f5c153217a65b6fd.tar.bz2
pa-sink-ctl-21b1027832ff5e53edc37dd9f5c153217a65b6fd.zip
wip: cleanup sink & co.
Diffstat (limited to 'pa-sink-ctl.c')
-rw-r--r--pa-sink-ctl.c40
1 files changed, 14 insertions, 26 deletions
diff --git a/pa-sink-ctl.c b/pa-sink-ctl.c
index b024d60..2370505 100644
--- a/pa-sink-ctl.c
+++ b/pa-sink-ctl.c
@@ -18,10 +18,6 @@ sink_info** sink_list = NULL;
int sink_counter;
uint32_t sink_max;
-sink_input_info** sink_input_list = NULL;
-int sink_input_counter;
-int sink_input_max;
-
pa_mainloop_api *mainloop_api = NULL;
pa_context *context = NULL;
@@ -33,14 +29,9 @@ int starty;
int main(int argc, char** argv)
{
- // pulseaudio
- sink_input_counter = 0;
- sink_input_max = 1;
- sink_input_list = (sink_input_info**) calloc(sink_input_max, sizeof(sink_input_info*));
-
sink_counter = 0;
sink_max = 1;
- sink_list = (sink_info**) calloc(sink_max, sizeof(sink_info*));
+ sink_list = sink_list_init(sink_max);
// ncurses
chooser = 0;
@@ -146,7 +137,7 @@ void get_sink_input_info_callback(pa_context *c, const pa_sink_input_info *i, in
if (is_last) {
print_sinks();
- get_input();
+ get_input();
return;
}
@@ -171,25 +162,22 @@ void get_sink_input_info_callback(pa_context *c, const pa_sink_input_info *i, in
pa_proplist_gets(i->proplist, "application.process.id"));
*/
- const char *name = pa_proplist_gets(i->proplist, "application.name");
+// const char *name = pa_proplist_gets(i->proplist, "application.name");
-// if (i->sink > sink_max)
-// sink_max = i->sink;
+ int sink_num = i->sink;
+ int counter = sink_list[sink_num]->input_counter;
- ++sink_input_counter;
-
- if (sink_input_counter >= sink_input_max) {
- sink_input_max*=2;
- sink_input_list = (sink_input_info**) realloc(sink_input_list, sizeof(sink_input_info*) * sink_input_max);
- }
+ // check the length of the list
+ sink_check_list(sink_list[sink_num]);
+ // check the current element of the list
+ sink_input_check(&(sink_list[ sink_num ]->input_list[ counter ]));
+ sink_input_info* input = sink_list[sink_num]->input_list[counter];
- sink_input_list[sink_input_counter-1] = (sink_input_info*) calloc(1, sizeof(sink_input_info));
- sink_input_list[sink_input_counter-1]->name = (char*) calloc(strlen(name) + 1, sizeof(char));
+ input->name = strdup(pa_proplist_gets(i->proplist, "application.name"));
+ input->index = i->index;
+ input->vol = pa_cvolume_avg(&i->volume);
- sink_input_list[sink_input_counter-1]->index = i->index;
- sink_input_list[sink_input_counter-1]->sink = i->sink;
- strncpy(sink_input_list[sink_input_counter-1]->name, name, strlen(name));
- sink_input_list[sink_input_counter-1]->vol = pa_cvolume_avg(&i->volume);
+ ++sink_list[sink_num]->input_counter;
}
void quit(void)