Моя цель состоит в том, чтобы записать рабочий стол gui приложение, которое использует эти команды, найденные в https://askubuntu.com/a/14083/18330
pacmd list-sinks to list name or index number of possible sinks
pacmd set-default-sink "SINKNAME" to set the default output sink
pacmd set-default-source "SOURCENAME" to set the default input
pacmd set-sink-volume index volume
pacmd set-source-volume index volume for volume control (0 = Mute, 65536 = 100%)
Затем приложение будет иметь значок панели задач, который показывает список звуковых устройств, которые будут активируемы по щелчку для переключения звукового устройства на то. Поскольку они нажаты, громкость звука исчезнет объем от 0 до точки объем существующей системы (поэтому, мне нужен доступ к системному тому также.)
Неизвестные:
Мне просто нужно некоторое руководство об идентификации настольного компонента, которым я пытаюсь управлять и где найти документацию API для него.
Примечания:
Выезд libappindicator
. Это ответственно за помещение значка в лотке. Выпадающее меню, отображенное индикатором, GtkMenu
. Остальные должны быть знакомыми, если бы Вы работали с GTK +. Вот минимальный пример.
#include <gtk/gtk.h>
#include <libappindicator/app-indicator.h>
static void do_something(GtkWidget *widget, gpointer data) {
//...
}
int main (int argc, char **argv) {
gtk_init(&argc, &argv);
GtkWidget *menu = gtk_menu_new();
GtkWidget *menuitem = gtk_menu_item_new_with_mnemonic("_This is a menu item");
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
g_signal_connect(menuitem, "activate", G_CALLBACK(do_something), NULL);
/* the second parameter is the icon displayed */
AppIndicator* ind = app_indicator_new("test", "indicator-messages-new",
APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
app_indicator_set_menu(ind, GTK_MENU(menu));
gtk_main();
}
Вы компилируете его со следующим. Вам будет нужно libgtk2.0-dev
и libappindicator-dev
пакеты.
$ gcc test.c `pkg-config --cflags --libs gtk+-2.0 appindicator-0.1`
Вы выясните остальных. Самый легкий путь состоит в том, чтобы проверить другие простые приложения индикатора. Например, посмотрите индикатор от этот ответ .