|
|
| |
#include <audacious/plugin.h> | #include <audacious/plugin.h> |
#include <audacious/util.h> | #include <audacious/util.h> |
#include <audacious/beepctrl.h> |
#include <audacious/auddrct.h> |
#include <audacious/configdb.h> | #include <audacious/configdb.h> |
#include <audacious/playlist.h> | #include <audacious/playlist.h> |
#include <audacious/titlestring.h> |
|
| |
#include <libg15.h> | #include <libg15.h> |
#include <libg15render.h> | #include <libg15render.h> |
|
|
| |
| |
VisPlugin g15analyser_vp = { | VisPlugin g15analyser_vp = { |
NULL, |
.description = PLUGIN_NAME " " PLUGIN_VERSION, |
NULL, |
.num_pcm_chs_wanted = 1, |
0, |
.num_freq_chs_wanted = 1, |
PLUGIN_NAME " " PLUGIN_VERSION, |
.init = g15analyser_init, /* init */ |
1, |
.cleanup = g15analyser_cleanup, /* cleanup */ |
1, |
.about = g15analyser_about, /* about */ |
g15analyser_init, /* init */ |
.configure = g15analyser_conf, /* configure */ |
g15analyser_cleanup, /* cleanup */ |
.playback_start = g15analyser_playback_start, /* playback_start */ |
g15analyser_about, /* about */ |
.playback_stop = g15analyser_playback_stop, /* playback_stop */ |
g15analyser_conf, /* configure */ |
.render_pcm = g15analyser_render_pcm, /* render_pcm */ |
NULL, /* disable_plugin */ |
.render_freq = g15analyser_render_freq /* render_freq */ |
g15analyser_playback_start, /* playback_start */ |
|
g15analyser_playback_stop, /* playback_stop */ |
|
g15analyser_render_pcm, /* render_pcm */ |
|
g15analyser_render_freq /* render_freq */ |
|
}; | }; |
| |
|
VisPlugin *g15_vp[] = { &g15analyser_vp, NULL }; |
|
|
|
SIMPLE_VISUAL_PLUGIN(g15, g15_vp); |
|
|
gint g15analyser_disable(gpointer data){ | gint g15analyser_disable(gpointer data){ |
g15analyser_vp.disable_plugin (&g15analyser_vp); /* disable if unusable */ | g15analyser_vp.disable_plugin (&g15analyser_vp); /* disable if unusable */ |
return FALSE; | return FALSE; |
|
|
return &g15analyser_vp; | return &g15analyser_vp; |
} | } |
| |
|
int get_main_volume() { |
|
int tmpvol; |
|
audacious_drct_get_main_volume(&tmpvol); |
|
return tmpvol; |
|
} |
| |
void g15spectrum_read_config(void) | void g15spectrum_read_config(void) |
{ | { |
|
|
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioPlay)) { | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioPlay)) { |
if(playing) { | if(playing) { |
if (paused) { | if (paused) { |
xmms_remote_play(g15analyser_vp.xmms_session); |
audacious_drct_play(); |
paused = 0; | paused = 0; |
} else { | } else { |
xmms_remote_pause(g15analyser_vp.xmms_session); |
audacious_drct_pause(); |
paused = 1; | paused = 1; |
} | } |
} else | } else |
xmms_remote_play(g15analyser_vp.xmms_session); |
audacious_drct_play(); |
} | } |
| |
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioStop)) | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioStop)) |
xmms_remote_stop(g15analyser_vp.xmms_session); |
audacious_drct_stop(); |
| |
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioLowerVolume)){ | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioLowerVolume)){ |
volume = xmms_remote_get_main_volume(g15analyser_vp.xmms_session); |
volume = get_main_volume(); |
if(volume<1) | if(volume<1) |
volume=1; | volume=1; |
xmms_remote_set_main_volume(g15analyser_vp.xmms_session, --volume); |
audacious_drct_set_main_volume(--volume); |
} | } |
| |
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioRaiseVolume)){ | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioRaiseVolume)){ |
volume = xmms_remote_get_main_volume(g15analyser_vp.xmms_session); |
volume = get_main_volume(); |
if(volume>99) | if(volume>99) |
volume=99; | volume=99; |
xmms_remote_set_main_volume(g15analyser_vp.xmms_session, ++volume); |
audacious_drct_set_main_volume(++volume); |
} | } |
| |
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioMute)){ | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioMute)){ |
if(xmms_remote_get_main_volume(g15analyser_vp.xmms_session)!=0){ |
if(get_main_volume()!=0){ |
lastvolume = xmms_remote_get_main_volume(g15analyser_vp.xmms_session); |
volume = get_main_volume(); |
volume = 0; | volume = 0; |
} | } |
else { | else { |
volume = lastvolume; | volume = lastvolume; |
} | } |
| |
xmms_remote_set_main_volume(g15analyser_vp.xmms_session, volume); |
audacious_drct_set_main_volume(volume); |
} | } |
| |
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioNext)) | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioNext)) |
if (playing) | if (playing) |
xmms_remote_playlist_next(g15analyser_vp.xmms_session); |
audacious_drct_playlist_next(); |
| |
if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioPrev)) | if(event.xkey.keycode==XKeysymToKeycode(dpy, XF86XK_AudioPrev)) |
if (playing) | if (playing) |
xmms_remote_playlist_prev(g15analyser_vp.xmms_session); |
audacious_drct_playlist_prev(); |
| |
} | } |
return TRUE; | return TRUE; |
|
|
pthread_mutex_lock (&g15buf_mutex); | pthread_mutex_lock (&g15buf_mutex); |
g15r_clearScreen (canvas, G15_COLOR_WHITE); | g15r_clearScreen (canvas, G15_COLOR_WHITE); |
| |
if (xmms_remote_get_playlist_length(g15analyser_vp.xmms_session) > 0) |
if (audacious_drct_get_playlist_length() > 0) |
{ | { |
playlist_pos = xmms_remote_get_playlist_pos(g15analyser_vp.xmms_session); |
playlist_pos = audacious_drct_get_playlist_pos(); |
| |
title = xmms_remote_get_playlist_title(g15analyser_vp.xmms_session, playlist_pos); |
title = audacious_drct_get_playlist_title(playlist_pos); |
if(title!=NULL && show_title){ | if(title!=NULL && show_title){ |
if (rownum != 1) { | if (rownum != 1) { |
/* | /* |
|
|
} | } |
} | } |
if (show_pbar){ | if (show_pbar){ |
int output_time = xmms_remote_get_output_time(g15analyser_vp.xmms_session)/1000; |
int output_time = audacious_drct_get_output_time()/1000; |
int playlist_time = xmms_remote_get_playlist_time(g15analyser_vp.xmms_session,playlist_pos)/1000; |
int playlist_time = audacious_drct_get_playlist_time(playlist_pos)/1000; |
/* bugfix: Sometimes xmms don't get the output time */ | /* bugfix: Sometimes xmms don't get the output time */ |
if (playlist_time == 0){ | if (playlist_time == 0){ |
playlist_time = 1000; | playlist_time = 1000; |
|
|
else | else |
g15r_renderString (canvas, (unsigned char *)"Playlist Empty", 0, G15_TEXT_LARGE, 24, 16); | g15r_renderString (canvas, (unsigned char *)"Playlist Empty", 0, G15_TEXT_LARGE, 24, 16); |
| |
if(lastvolume!=xmms_remote_get_main_volume(g15analyser_vp.xmms_session) || vol_timeout>=0) { |
if(lastvolume!=get_main_volume() || vol_timeout>=0) { |
if(lastvolume!=xmms_remote_get_main_volume(g15analyser_vp.xmms_session)) |
if(lastvolume!=get_main_volume()) |
vol_timeout=10; | vol_timeout=10; |
else | else |
vol_timeout--; | vol_timeout--; |
/* render volume */ | /* render volume */ |
lastvolume = xmms_remote_get_main_volume(g15analyser_vp.xmms_session); |
lastvolume = get_main_volume(); |
if (lastvolume >= 0) | if (lastvolume >= 0) |
g15r_drawBar (canvas, 10, 15, 149, 28, G15_COLOR_BLACK, lastvolume, 100, 1); | g15r_drawBar (canvas, 10, 15, 149, 28, G15_COLOR_BLACK, lastvolume, 100, 1); |
canvas->mode_xor=1; | canvas->mode_xor=1; |
|
|
return; | return; |
| |
} | } |
|
|