#include #include #include #include #define filetypes 3 static gint xmms_session(void) { gint session; for(session = 0 ; session < 16 ; session++) if (xmms_remote_is_running(session)) return session; exit(1); } int main(void) { int x; char match[8]; gint session; gint pos; gint rate, freq, nch; gint track_length; gint rerr = 0; regex_t pdata; regmatch_t pmatch[3]; char *file; char *title; for(session = 0; session < 16; session++) if (xmms_remote_is_running(session)) break; if (session == 16) { exit(1); } else { session = xmms_session(); } pos = xmms_remote_get_playlist_pos(session); xmms_remote_get_info(session, &rate, &freq, &nch); file = xmms_remote_get_playlist_file(session, pos); track_length = xmms_remote_get_playlist_time(session, pos) / 1000; title = xmms_remote_get_playlist_title(session, pos); char *ftype[filetypes] = { "flac", "mp3", "ogg" }; if (rate && freq && nch && file && track_length && title) { printf("%d:%-2.2d\n", track_length/60, track_length%60); printf("%d\n", rate); printf("%d\n", freq); printf("%d\n", nch); printf("%s\n", title); printf("%s\n", file); for(x = 0; x < filetypes; x++) { sprintf(match,"(%s)", ftype[x]); regcomp(&pdata, ftype[x], 1); if(rerr == regexec(&pdata, file, 3, pmatch, 0)) { printf("%s\n",ftype[x]); } regfree(&pdata); } } else return 1; return 0; }