summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/interface.c81
-rw-r--r--src/pa-sink-ctl.c54
-rw-r--r--src/unix_signal.c9
3 files changed, 97 insertions, 47 deletions
diff --git a/src/interface.c b/src/interface.c
index f48363b..cdf01e1 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -88,8 +88,8 @@ print_volume(struct context *ctx, pa_volume_t volume, int mute, int y)
gint x = 2 /* left */ + 2 /* index num width */ + 1 /* space */ +
1 /* space */ + ctx->max_name_len + 1 /* space */;
- //gint vol = (gint) (VOLUME_BAR_LEN * volume / PA_VOLUME_NORM);
- int volume_bar_len = getmaxx(ctx->menu_win) - x - 6 /* mute button + brackets + space */;
+ /* mute button + brackets + space */
+ int volume_bar_len = getmaxx(ctx->menu_win) - x - 6;
gint vol = (gint) (volume_bar_len * volume / PA_VOLUME_NORM);
mvwprintw(ctx->menu_win, y, x - 1, "[%c]", mute ? 'M' : ' ');
@@ -104,7 +104,8 @@ print_volume(struct context *ctx, pa_volume_t volume, int mute, int y)
}
static void
-print_input_list(struct context *ctx, sink_info *sink, gint sink_num, gint *poffset)
+print_input_list(struct context *ctx, sink_info *sink,
+ gint sink_num, gint *poffset)
{
GList *l;
gint offset = *poffset;
@@ -114,7 +115,8 @@ print_input_list(struct context *ctx, sink_info *sink, gint sink_num, gint *poff
sink_input_info *input = l->data;
if (input->sink != sink->index)
continue;
- gboolean selected = (ctx->chooser_sink == sink_num && ctx->chooser_input == ++i);
+ gboolean selected = (ctx->chooser_sink == sink_num &&
+ ctx->chooser_input == ++i);
if (selected)
wattron(ctx->menu_win, A_REVERSE);
@@ -173,12 +175,13 @@ print_sink_list(struct context *ctx)
werase(ctx->menu_win);
box(ctx->menu_win, 0, 0);
- /* derive ctx->chooser_input from ctx->selected_index (this is set when input is moved) */
+ /* derive chooser_input from selected_index (set when input is moved) */
if (ctx->chooser_input == SELECTED_UNKNOWN) {
- /* if index is will not be found (in the loop), select the sink itself */
+ /* if index is will not be found, select sink as fallback */
ctx->chooser_input = SELECTED_SINK;
/* step through inputs for current sink and find the selected */
- sink_info *sink = g_list_nth_data(ctx->sink_list, ctx->chooser_sink);
+ sink_info *sink = g_list_nth_data(ctx->sink_list,
+ ctx->chooser_sink);
for (l = ctx->input_list, i = -1; l; l = l->next) {
sink_input_info *input = l->data;
if (input->sink != sink->index)
@@ -193,7 +196,8 @@ print_sink_list(struct context *ctx)
for (l = ctx->sink_list, i = 0; l; l = l->next,++i) {
sink_info *sink = l->data;
- gboolean selected = (i == ctx->chooser_sink && ctx->chooser_input == SELECTED_SINK);
+ gboolean selected = (i == ctx->chooser_sink &&
+ ctx->chooser_input == SELECTED_SINK);
if (selected)
wattron(ctx->menu_win, A_REVERSE);
@@ -220,6 +224,7 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
gboolean volume_increment = TRUE;
sink_info *sink = NULL;
guint32 index;
+ pa_operation *o;
if (!ctx->context_ready)
return TRUE;
@@ -229,9 +234,11 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
case 'k':
case 'w':
case KEY_UP:
- if (ctx->chooser_input == SELECTED_SINK && ctx->chooser_sink > 0) {
- sink = g_list_nth_data(ctx->sink_list, --ctx->chooser_sink);
- /* automatic SELECTED_SINK (=-1) assignment if length = 0 */
+ if (ctx->chooser_input == SELECTED_SINK &&
+ ctx->chooser_sink > 0) {
+ sink = g_list_nth_data(ctx->sink_list,
+ --ctx->chooser_sink);
+ /* autoassigment to SELECTED_SINK (=-1) if length = 0 */
ctx->chooser_input = sink_input_len(ctx, sink) - 1;
}
@@ -244,7 +251,8 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
case 's':
case KEY_DOWN:
sink = g_list_nth_data(ctx->sink_list, ctx->chooser_sink);
- if (ctx->chooser_input == (sink_input_len(ctx, sink) - 1) && ctx->chooser_sink < (gint)g_list_length(ctx->sink_list) - 1) {
+ if (ctx->chooser_input == (sink_input_len(ctx, sink) - 1) &&
+ ctx->chooser_sink < (gint)g_list_length(ctx->sink_list)-1) {
++ctx->chooser_sink;
ctx->chooser_input = SELECTED_SINK;
}
@@ -264,10 +272,14 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
sink = g_list_nth_data(ctx->sink_list, ctx->chooser_sink);
pa_cvolume volume;
pa_volume_t tmp_vol;
- pa_operation* (*volume_set) (pa_context*, guint32, const pa_cvolume*, pa_context_success_cb_t, gpointer);
+ pa_operation* (*volume_set) (pa_context*, guint32,
+ const pa_cvolume *,
+ pa_context_success_cb_t, gpointer);
if (ctx->chooser_input >= 0) {
- sink_input_info *input = sink_get_nth_input(ctx, sink, ctx->chooser_input);
+ sink_input_info *input =
+ sink_get_nth_input(ctx, sink,
+ ctx->chooser_input);
index = input->index;
volume = (pa_cvolume) {.channels = input->channels};
tmp_vol = input->vol;
@@ -284,25 +296,31 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
pa_volume_t inc = 2 * PA_VOLUME_NORM / 100;
if (volume_increment)
- if (PA_VOLUME_NORM > tmp_vol && PA_VOLUME_NORM - tmp_vol > inc)
+ if (PA_VOLUME_NORM > tmp_vol &&
+ PA_VOLUME_NORM - tmp_vol > inc)
pa_cvolume_inc(&volume, inc);
else
- pa_cvolume_set(&volume, volume.channels, PA_VOLUME_NORM);
+ pa_cvolume_set(&volume, volume.channels,
+ PA_VOLUME_NORM);
else
pa_cvolume_dec(&volume, inc);
- pa_operation_unref(volume_set(ctx->context, index, &volume, change_callback, ctx));
+ pa_operation_unref(volume_set(ctx->context, index, &volume,
+ change_callback, ctx));
break;
case 'm':
case 'x':
case 'M':
sink = g_list_nth_data(ctx->sink_list, ctx->chooser_sink);
gint mute;
- pa_operation* (*mute_set) (pa_context*, guint32, int, pa_context_success_cb_t, void*);
+ pa_operation* (*mute_set) (pa_context*, guint32, int,
+ pa_context_success_cb_t, void*);
if (ctx->chooser_input >= 0) {
- sink_input_info *input = sink_get_nth_input(ctx, sink, ctx->chooser_input);
+ sink_input_info *input =
+ sink_get_nth_input(ctx, sink,
+ ctx->chooser_input);
index = input->index;
mute = !input->mute;
mute_set = pa_context_set_sink_input_mute;
@@ -313,7 +331,8 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
} else
break;
- pa_operation_unref(mute_set(ctx->context, index, mute, change_callback, ctx));
+ pa_operation_unref(mute_set(ctx->context, index, mute,
+ change_callback, ctx));
break;
case '\n':
@@ -322,7 +341,8 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
if (ctx->chooser_input == SELECTED_SINK)
break;
sink = g_list_nth_data(ctx->sink_list, ctx->chooser_sink);
- sink_input_info *input = sink_get_nth_input(ctx, sink, ctx->chooser_input);
+ sink_input_info *input = sink_get_nth_input(ctx, sink,
+ ctx->chooser_input);
ctx->selected_index = input->index;
if (ctx->chooser_sink < (gint)g_list_length(ctx->sink_list) - 1)
ctx->chooser_sink++;
@@ -330,12 +350,14 @@ interface_get_input(GIOChannel *source, GIOCondition condition, gpointer data)
ctx->chooser_sink = 0;
sink = g_list_nth_data(ctx->sink_list, ctx->chooser_sink);
- /* ctx->chooser_input needs to be derived from $ctx->selected_index */
+ /* chooser_input needs to be derived from $selected_index */
ctx->chooser_input = SELECTED_UNKNOWN;
ctx->block_for_selected_index = TRUE;
- pa_operation_unref(pa_context_move_sink_input_by_index(ctx->context, ctx->selected_index,
- sink->index,
- change_callback, NULL));
+ o = pa_context_move_sink_input_by_index(ctx->context,
+ ctx->selected_index,
+ sink->index,
+ change_callback, NULL);
+ pa_operation_unref(o);
break;
case 'q':
@@ -396,9 +418,11 @@ interface_init(struct context *ctx)
{
GIOChannel *input_channel;
- ctx->chooser_sink = 0; /* Selected sink-device. 0 is the first device */
- ctx->chooser_input = SELECTED_SINK; /* Selected input of the current sink-device. */
+ /* Selected sink-device. 0 is the first device */
+ ctx->chooser_sink = 0;
+ /* Selected input of the current sink-device. */
/* SELECTED_SINK refers to sink-device itself */
+ ctx->chooser_input = SELECTED_SINK;
initscr();
clear();
@@ -435,7 +459,8 @@ interface_init(struct context *ctx)
}
#else
/* register event handler for resize and input */
- ctx->resize_source_id = unix_signal_add(SIGWINCH, interface_resize, ctx);
+ ctx->resize_source_id = unix_signal_add(SIGWINCH,
+ interface_resize, ctx);
#endif
input_channel = g_io_channel_unix_new(STDIN_FILENO);
if (!input_channel)
diff --git a/src/pa-sink-ctl.c b/src/pa-sink-ctl.c
index 8e0be30..bda5052 100644
--- a/src/pa-sink-ctl.c
+++ b/src/pa-sink-ctl.c
@@ -44,13 +44,15 @@ find_sink_by_idx(struct context *ctx, gint idx)
* is called after sink-input
*/
static void
-get_sink_input_info_callback(pa_context *c, const pa_sink_input_info *i, gint is_last, gpointer userdata)
+sink_input_info_cb(pa_context *c, const pa_sink_input_info *i,
+ gint is_last, gpointer userdata)
{
g_assert(userdata != NULL);
struct context *ctx = userdata;
if (is_last < 0) {
- g_printerr("Failed to get sink input information: %s\n", pa_strerror(pa_context_errno(c)));
+ g_printerr("Failed to get sink input information: %s\n",
+ pa_strerror(pa_context_errno(c)));
return;
}
@@ -69,7 +71,8 @@ get_sink_input_info_callback(pa_context *c, const pa_sink_input_info *i, gint is
.index = i->index,
.sink = i->sink,
.name = pa_proplist_contains(i->proplist, "application.name") ?
- g_strdup(pa_proplist_gets(i->proplist, "application.name")):
+ g_strdup(pa_proplist_gets(i->proplist,
+ "application.name")):
g_strdup(i->name),
.mute = i->mute,
.channels = i->volume.channels,
@@ -88,13 +91,15 @@ get_sink_input_info_callback(pa_context *c, const pa_sink_input_info *i, gint is
* the begin of the callback loops
*/
static void
-get_sink_info_callback(pa_context *c, const pa_sink_info *i, gint is_last, gpointer userdata)
+sink_info_cb(pa_context *c, const pa_sink_info *i,
+ gint is_last, gpointer userdata)
{
g_assert(userdata != NULL);
struct context *ctx = userdata;
if (is_last < 0) {
- g_printerr("Failed to get sink information: %s\n", pa_strerror(pa_context_errno(c)));
+ g_printerr("Failed to get sink information: %s\n",
+ pa_strerror(pa_context_errno(c)));
quit(ctx);
}
@@ -110,8 +115,11 @@ get_sink_info_callback(pa_context *c, const pa_sink_info *i, gint is_last, gpoin
.vol = pa_cvolume_avg(&i->volume),
.channels = i->volume.channels,
.name = g_strdup(i->name),
- .device = pa_proplist_contains(i->proplist, "device.product.name") ?
- g_strdup(pa_proplist_gets(i->proplist, "device.product.name")) : NULL,
+ .device = pa_proplist_contains(i->proplist,
+ "device.product.name") ?
+ g_strdup(pa_proplist_gets(i->proplist,
+ "device.product.name")) :
+ NULL,
};
sink_info *inlist = find_sink_by_idx(ctx, i->index);
@@ -122,7 +130,8 @@ get_sink_info_callback(pa_context *c, const pa_sink_info *i, gint is_last, gpoin
}
static void
-subscribe_cb(pa_context *c, pa_subscription_event_type_t t, guint32 idx, gpointer userdata)
+subscribe_cb(pa_context *c, pa_subscription_event_type_t t,
+ guint32 idx, gpointer userdata)
{
struct context *ctx = userdata;
pa_operation *op;
@@ -133,11 +142,15 @@ subscribe_cb(pa_context *c, pa_subscription_event_type_t t, guint32 idx, gpointe
case PA_SUBSCRIPTION_EVENT_CHANGE:
switch (t & PA_SUBSCRIPTION_EVENT_FACILITY_MASK) {
case PA_SUBSCRIPTION_EVENT_SINK:
- op = pa_context_get_sink_info_by_index(c, idx, get_sink_info_callback, ctx);
+ op = pa_context_get_sink_info_by_index(c, idx,
+ sink_info_cb,
+ ctx);
pa_operation_unref(op);
break;
case PA_SUBSCRIPTION_EVENT_SINK_INPUT:
- op = pa_context_get_sink_input_info(c, idx, get_sink_input_info_callback, ctx);
+ op = pa_context_get_sink_input_info(c, idx,
+ sink_input_info_cb,
+ ctx);
pa_operation_unref(op);
break;
}
@@ -151,7 +164,8 @@ subscribe_cb(pa_context *c, pa_subscription_event_type_t t, guint32 idx, gpointe
break;
case PA_SUBSCRIPTION_EVENT_SINK_INPUT:
object = find_sink_input_by_idx(ctx, idx);
- ctx->input_list = g_list_remove(ctx->input_list, object);
+ ctx->input_list = g_list_remove(ctx->input_list,
+ object);
g_free(object);
break;
default:
@@ -171,6 +185,7 @@ static void
context_state_callback(pa_context *c, gpointer userdata)
{
struct context *ctx = userdata;
+ pa_operation *op;
ctx->context_ready = FALSE;
switch (pa_context_get_state(c)) {
@@ -185,11 +200,16 @@ context_state_callback(pa_context *c, gpointer userdata)
break;
case PA_CONTEXT_READY:
- pa_operation_unref(pa_context_get_sink_info_list(c, get_sink_info_callback, ctx));
- pa_operation_unref(pa_context_get_sink_input_info_list(c, get_sink_input_info_callback, ctx));
+ op = pa_context_get_sink_info_list(c, sink_info_cb, ctx);
+ pa_operation_unref(op);
+ op = pa_context_get_sink_input_info_list(c, sink_input_info_cb,
+ ctx);
+ pa_operation_unref(op);
pa_context_set_subscribe_callback(c, subscribe_cb, ctx);
- pa_subscription_mask_t mask = PA_SUBSCRIPTION_MASK_SINK | PA_SUBSCRIPTION_MASK_SINK_INPUT;
+ pa_subscription_mask_t mask =
+ PA_SUBSCRIPTION_MASK_SINK |
+ PA_SUBSCRIPTION_MASK_SINK_INPUT;
g_assert((ctx->op = pa_context_subscribe(c, mask, NULL, NULL)));
ctx->context_ready = TRUE;
interface_set_status(ctx, "ready to process events.");
@@ -261,8 +281,10 @@ main(int argc, char** argv)
}
// define callback for connection init
- pa_context_set_state_callback(ctx->context, context_state_callback, ctx);
- if (pa_context_connect(ctx->context, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL)) {
+ pa_context_set_state_callback(ctx->context,
+ context_state_callback, ctx);
+ if (pa_context_connect(ctx->context, NULL,
+ PA_CONTEXT_NOAUTOSPAWN, NULL)) {
interface_clear(ctx);
g_printerr("error: pa_context_connect() failed.\n");
}
diff --git a/src/unix_signal.c b/src/unix_signal.c
index 894b6d9..6d458d6 100644
--- a/src/unix_signal.c
+++ b/src/unix_signal.c
@@ -46,7 +46,8 @@ prepare(GSource *source, gint *timeout_)
UnixSignalSource *signal_source = (UnixSignalSource*) source;
if (signal_source->data->context == NULL) {
- g_main_context_ref(signal_source->data->context = g_source_get_context(source));
+ g_main_context_ref(signal_source->data->context =
+ g_source_get_context(source));
signal_source->data->source_id = g_source_get_id(source);
}
@@ -114,7 +115,8 @@ unix_signal_source_new(gint signum)
}
guint
-unix_signal_add_full(gint priority, gint signum, GSourceFunc function, gpointer data, GDestroyNotify notify)
+unix_signal_add_full(gint priority, gint signum, GSourceFunc function,
+ gpointer data, GDestroyNotify notify)
{
g_return_val_if_fail(function != NULL, 0);
GSource *source = unix_signal_source_new(signum);
@@ -131,5 +133,6 @@ unix_signal_add_full(gint priority, gint signum, GSourceFunc function, gpointer
guint unix_signal_add(gint signum, GSourceFunc function, gpointer data)
{
- return unix_signal_add_full(G_PRIORITY_DEFAULT, signum, function, data, NULL);
+ return unix_signal_add_full(G_PRIORITY_DEFAULT, signum,
+ function, data, NULL);
}