# HG changeset patch # User Andrew O. Shadoura # Date 1200164950 21600 # Node ID 7389143313747ab2693393c4e2373ec74244ab80 # Parent ccca9906abd081d45808c45f9362a025165f859b Add ability to enter track number using remote. (Bugzilla #115) diff -r ccca9906abd0 -r 738914331374 src/lirc/common.h --- a/src/lirc/common.h Sat Jan 12 18:43:12 2008 +0100 +++ b/src/lirc/common.h Sat Jan 12 13:09:10 2008 -0600 @@ -2,6 +2,7 @@ extern gint b_enable_reconnect; extern gint reconnect_timeout; +extern gchar *aosd_font; void load_cfg(void); void save_cfg(void); diff -r ccca9906abd0 -r 738914331374 src/lirc/lirc.c --- a/src/lirc/lirc.c Sat Jan 12 18:43:12 2008 +0100 +++ b/src/lirc/lirc.c Sat Jan 12 13:09:10 2008 -0600 @@ -69,6 +69,11 @@ gint input_tag; +char track_no[64]; +int track_no_pos; + +gint tid; + void init_lirc(void) { int flags; @@ -104,6 +109,8 @@ { load_cfg(); init_lirc(); + track_no_pos=0; + tid=0; } gboolean reconnect_lirc(gpointer data) @@ -113,6 +120,13 @@ return (lirc_fd==-1); } +gboolean jump_to(gpointer data) +{ + audacious_drct_pl_set_pos(atoi(track_no)-1); + track_no_pos=0; + return FALSE; +} + void lirc_input_callback(gpointer data,gint source, GdkInputCondition condition) { @@ -124,6 +138,7 @@ gint balance; gboolean show_pl; int n; + gchar *utf8_title_markup; while((ret=lirc_nextcode(&code))==0 && code!=NULL) { @@ -305,6 +320,19 @@ /* This is to refresh window content */ audacious_drct_pl_win_toggle(pl_visible); } + else if((strlen(c)==1) && ((*c>='0') || (*c<='9'))) + { + if (track_no_pos<63) + { + if (tid) g_source_remove(tid); + track_no[track_no_pos++]=*c; + track_no[track_no_pos]=0; + tid=g_timeout_add(1500, jump_to, NULL); + utf8_title_markup = g_markup_printf_escaped( + "%s", aosd_font, track_no); + aud_hook_call("aosd toggle", utf8_title_markup); + } + } else { fprintf(stderr,_("%s: unknown command \"%s\"\n"), @@ -341,4 +369,5 @@ lirc_deinit(); lirc_fd=-1; } + g_free(aosd_font); } diff -r ccca9906abd0 -r 738914331374 src/lirc/lirc_cfg.c --- a/src/lirc/lirc_cfg.c Sat Jan 12 18:43:12 2008 +0100 +++ b/src/lirc/lirc_cfg.c Sat Jan 12 13:09:10 2008 -0600 @@ -11,6 +11,7 @@ gint b_enable_reconnect; gint reconnect_timeout; +gchar *aosd_font = NULL; void load_cfg(void) { @@ -18,6 +19,8 @@ db = aud_cfg_db_open(); aud_cfg_db_get_int(db, "lirc", "enable_reconnect", &b_enable_reconnect); aud_cfg_db_get_int(db, "lirc", "reconnect_timeout", &reconnect_timeout); + if (!aud_cfg_db_get_string(db, "aosd", "text_fonts_name_0", &aosd_font)) + aosd_font = g_strdup("Sans 26"); if (!reconnect_timeout) reconnect_timeout = 5; aud_cfg_db_close(db); }