Compare commits

...

1 Commits

Author SHA1 Message Date
3b2d6e4366 Add a callback for refreshing the mixer info
This also adds a "Refresh" button to the main window.

From Nathanial Sloss <nat@netbsd.org>, thanks!
2017-05-19 01:38:27 +02:00
3 changed files with 82 additions and 0 deletions

View File

@ -39,6 +39,67 @@
#include "callbacks.h" #include "callbacks.h"
#include "../config.h" #include "../config.h"
struct _MixerWindow
{
Mixer * mixer;
gboolean fullscreen;
/* widgets */
GtkWidget * window;
#ifndef EMBEDDED
GtkWidget * menubar;
#endif
GtkWidget * about;
};
#ifdef AUDIO_MIXER_DEVINFO
typedef struct _MixerClass
{
int mixer_class;
audio_mixer_name_t label;
GtkWidget * hbox;
int page;
} MixerClass;
#endif
typedef struct _MixerLevel
{
uint8_t channels[8];
size_t channels_cnt;
} MixerLevel;
typedef struct _MixerControl
{
int index;
int type;
union {
int ord;
int mask;
MixerLevel level;
} un;
} MixerControl;
struct _Mixer
{
/* widgets */
GtkWidget * window;
GtkWidget * widget;
GtkWidget * notebook;
GtkWidget * properties;
PangoFontDescription * bold;
/* internals */
char * device;
#ifdef AUDIO_MIXER_DEVINFO
int fd;
MixerClass * mc;
size_t mc_cnt;
#else
int fd;
#endif
};
/* public */ /* public */
/* functions */ /* functions */
@ -53,6 +114,20 @@ gboolean on_closex(gpointer data)
} }
/* on_refresh */
void on_refresh(gpointer data)
{
MixerWindow * mixer = data;
GtkWidget * vbox;
GtkWidget * widget;
mixerwindow_delete(mixer);
mixer= mixerwindow_new("/dev/mixer", ML_TABBED, FALSE);
mixerwindow_show(mixer);
}
/* on_embedded */ /* on_embedded */
void on_embedded(gpointer data) void on_embedded(gpointer data)
{ {

View File

@ -41,6 +41,7 @@ void on_embedded(gpointer data);
/* menubar */ /* menubar */
void on_file_properties(gpointer data); void on_file_properties(gpointer data);
void on_file_close(gpointer data); void on_file_close(gpointer data);
void on_refresh(gpointer data);
void on_help_about(gpointer data); void on_help_about(gpointer data);
void on_help_contents(gpointer data); void on_help_contents(gpointer data);

View File

@ -111,6 +111,8 @@ static const DesktopMenu _mixer_menu_view[] =
NULL, NULL,
# endif # endif
0, GDK_KEY_F11 }, 0, GDK_KEY_F11 },
{ N_("_Refresh"), G_CALLBACK(on_refresh), "refresh", GDK_CONTROL_MASK,
GDK_KEY_R },
{ "", NULL, NULL, 0, 0 }, { "", NULL, NULL, 0, 0 },
{ N_("_All"), G_CALLBACK(on_view_all), "stock_select-all", { N_("_All"), G_CALLBACK(on_view_all), "stock_select-all",
GDK_CONTROL_MASK, GDK_KEY_A }, GDK_CONTROL_MASK, GDK_KEY_A },
@ -142,6 +144,8 @@ static const DesktopMenu _mixer_menu_view_tabbed[] =
NULL, NULL,
# endif # endif
0, GDK_KEY_F11 }, 0, GDK_KEY_F11 },
{ N_("_Refresh"), G_CALLBACK(on_refresh), "refresh", GDK_CONTROL_MASK,
GDK_KEY_R },
# ifdef AUDIO_MIXER_DEVINFO # ifdef AUDIO_MIXER_DEVINFO
{ "", NULL, NULL, 0, 0 }, { "", NULL, NULL, 0, 0 },
{ N_("_Outputs"), G_CALLBACK(on_view_outputs), "audio-volume-high", { N_("_Outputs"), G_CALLBACK(on_view_outputs), "audio-volume-high",
@ -191,6 +195,8 @@ static DesktopToolbar _mixer_toolbar[] =
"gtk-fullscreen", "gtk-fullscreen",
# endif # endif
0, GDK_KEY_F11, NULL }, 0, GDK_KEY_F11, NULL },
{ N_("_Refresh"), G_CALLBACK(on_refresh), "refresh", GDK_CONTROL_MASK,
GDK_KEY_R },
{ NULL, NULL, NULL, 0, 0, NULL }, { NULL, NULL, NULL, 0, 0, NULL },
{ N_("All"), G_CALLBACK(on_view_all), "stock_select-all", 0, 0, NULL }, { N_("All"), G_CALLBACK(on_view_all), "stock_select-all", 0, 0, NULL },
# ifdef AUDIO_MIXER_DEVINFO # ifdef AUDIO_MIXER_DEVINFO