Mon objectif est d'écrire une application graphique de bureau qui utilisera ces commandes trouvées dans https://askubuntu.com/a/14083/183
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%)
Ensuite, l'application aura une icône de plateau qui affiche une liste de périphériques audio qui seront cliquables pour basculer le périphérique audio sur celui-ci. Au fur et à mesure qu'ils sont cliqués, le volume sonore diminuera le volume de 0 au point du volume du système actuel (j'ai donc également besoin d'accéder au volume du système.)
Inconnus:
J'ai juste besoin de quelques conseils pour identifier le composant de bureau que j'essaie de manipuler et où trouver la documentation de l'API pour celui-ci.
Remarques:
Découvrez libappindicator
. Il est chargé de mettre l'icône dans le bac. Le menu déroulant affiché par l'indicateur est un GtkMenu
. Le reste devrait être familier si vous avez travaillé avec GTK +. Voici un exemple minimal.
#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();
}
Vous le compilez avec ce qui suit. Tu auras besoin libgtk2.0-dev
et libappindicator-dev
paquets.
$ gcc test.c `pkg-config --cflags --libs gtk+-2.0 appindicator-0.1`
Vous comprendrez le reste. Le moyen le plus simple consiste à consulter d'autres applications d'indicateurs simples. Par exemple, voir l'indicateur de cette réponse .