From: Francois B <mrs...@us...> - 2004-07-09 22:20:45
|
Update of /cvsroot/openneo/openneo/apps In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25086 Modified Files: wps-display.h wps-display.c Log Message: Use the new general draw flags, added second wps and updated wps file reading to support new format Index: wps-display.c =================================================================== RCS file: /cvsroot/openneo/openneo/apps/wps-display.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** wps-display.c 26 Jun 2004 14:57:11 -0000 1.19 --- wps-display.c 9 Jul 2004 22:20:35 -0000 1.20 *************** *** 57,62 **** #include "volume.h" #include "genre.h" ! ! #define WPS_CONFIG OPENNEO_DIR "/default.wps" #define MAX_LINES 4 --- 57,62 ---- #include "volume.h" #include "genre.h" ! #include "flags.h" ! #include "gui.h" #define MAX_LINES 4 *************** *** 71,112 **** #define SUBLINE_RESET -1 - //static unsigned char wps_progress_pat[8]={0,0,0,0,0,0,0,0}; static bool full_line_progressbar=0; static bool draw_player_progress(struct mp3entry* id3, int ff_rewwind_count); static void draw_player_fullbar(char* buf, unsigned int buf_size, struct mp3entry* id3, int ff_rewwind_count); - //static char map_fullbar_char(char ascii_val); ! static char format_buffer[FORMAT_BUFFER_SIZE]; ! static char* format_lines[MAX_LINES][MAX_SUBLINES]; ! static unsigned char line_type[MAX_LINES][MAX_SUBLINES]; ! static unsigned char time_mult[MAX_LINES][MAX_SUBLINES]; ! static long subline_expire_time[MAX_LINES]; ! static int curr_subline[MAX_LINES]; static int ff_rewind_count; bool wps_time_countup = true; ! static bool wps_loaded = false; ! /* Set format string to use for WPS, splitting it into lines */ ! static void wps_format(char* fmt) { ! char* buf = format_buffer; ! int line = 0; ! int subline; ! strncpy(format_buffer, fmt, sizeof(format_buffer)); ! format_buffer[sizeof(format_buffer) - 1] = 0; for (line=0;line<MAX_LINES;line++) { for (subline=0;subline<MAX_SUBLINES;subline++) { ! format_lines[line][subline]=0; ! time_mult[line][subline]=0; } ! subline_expire_time[line]=0; ! curr_subline[line]=SUBLINE_RESET; } line=0; subline=0; ! format_lines[line][subline] = buf; while (*buf && (line<MAX_LINES)) --- 71,110 ---- #define SUBLINE_RESET -1 static bool full_line_progressbar=0; static bool draw_player_progress(struct mp3entry* id3, int ff_rewwind_count); static void draw_player_fullbar(char* buf, unsigned int buf_size, struct mp3entry* id3, int ff_rewwind_count); ! static char format_buffer[2][FORMAT_BUFFER_SIZE]; ! static char* format_lines[2][MAX_LINES][MAX_SUBLINES]; ! static unsigned int line_type[2][MAX_LINES][MAX_SUBLINES]; ! static unsigned char time_mult[2][MAX_LINES][MAX_SUBLINES]; ! static long subline_expire_time[2][MAX_LINES]; ! static int curr_subline[2][MAX_LINES]; static int ff_rewind_count; bool wps_time_countup = true; ! static bool wps_loaded[2] = {false, false}; ! static void wps_format(char* fmt, int nb) { ! char* buf = format_buffer[nb]; ! int line = 0; ! int subline; ! strncpy(format_buffer[nb], fmt, FORMAT_BUFFER_SIZE ); ! format_buffer[nb][sizeof(format_buffer) - 1] = 0; ! for (line=0;line<MAX_LINES;line++) { for (subline=0;subline<MAX_SUBLINES;subline++) { ! format_lines[nb][line][subline]=0; ! time_mult[nb][line][subline]=0; } ! subline_expire_time[nb][line] = 0; ! curr_subline[nb][line] = SUBLINE_RESET; } line=0; subline=0; ! format_lines[nb][line][subline] = buf; while (*buf && (line<MAX_LINES)) *************** *** 114,117 **** --- 112,124 ---- switch (*buf) { + case '[': + + if( !memcmp( buf, "[PLAYER", 7 ) ) + *buf = 0; + else + buf++; + + break; + /* skip % sequences so "%;" doesn't start a new subline */ case '%': *************** *** 130,134 **** /* the next line starts on the next byte */ subline = 0; ! format_lines[line][subline] = buf+1; } break; --- 137,141 ---- /* the next line starts on the next byte */ subline = 0; ! format_lines[nb][line][subline] = buf+1; } break; *************** *** 137,141 **** subline++; if (subline<MAX_SUBLINES) { ! format_lines[line][subline] = buf+1; } else { //exceed max sublines, skip rest of line while (*(++buf)) { --- 144,148 ---- subline++; if (subline<MAX_SUBLINES) { ! format_lines[nb][line][subline] = buf+1; } else { //exceed max sublines, skip rest of line while (*(++buf)) { *************** *** 154,159 **** void wps_reset(void) { ! wps_loaded = false; ! memset(&format_buffer, 0, sizeof format_buffer); } --- 161,166 ---- void wps_reset(void) { ! wps_loaded[0] = false; ! wps_loaded[1] = false; } *************** *** 161,208 **** { char buffer[FORMAT_BUFFER_SIZE]; ! int fd,i,s=0; ! ! fd = open(file, O_RDONLY); ! if (fd >= 0) { ! int numread = read(fd, buffer, sizeof(buffer) - 1); ! ! if (numread > 0) ! { ! buffer[numread] = 0; ! wps_format(buffer); ! } ! ! close(fd); ! if ( display ) { ! bool any_defined_line; ! lcd_clear(false); ! for (i=0; i<MAX_LINES && format_lines[i]; i++) { ! any_defined_line = false; ! for (i=0; i<MAX_LINES; i++) { ! if (format_lines[i][s]) { ! if (*format_lines[i][s] == 0) ! lcd_puts(0,i," "); ! else ! lcd_puts(0,i,format_lines[i][s]); ! any_defined_line = true; ! } else { ! lcd_puts(0,i," "); ! } ! } ! if(any_defined_line) { ! lcd_update(); ! sleep(HZ/2); ! } ! } } - - wps_loaded = true; - - return numread > 0; } ! return false; } --- 168,244 ---- { char buffer[FORMAT_BUFFER_SIZE]; ! char line[256]; ! int fd; ! int numread; ! int p1 = -1; ! int p2 = -1; ! ! fd = fopen(file, O_RDONLY); ! if (fd < 0) ! return false; ! ! wps_loaded[0] = false; ! wps_loaded[1] = false; ! ! while(1) { ! ! numread = read_line(fd, line, 255); ! if( numread <= 0 ) ! break; ! ! strim(line); ! ! if( !line[0] ) ! continue; ! ! if( !memcmp( line, "[PLAYER1]", 9 ) ) ! p1 = lseek( fd, 0, SEEK_CUR ); ! else if( !memcmp( buffer, "[PLAYER2]", 9) ) ! p2 = lseek( fd, 0, SEEK_CUR ); ! } ! ! if( p1 == -1 && p2 == -1 ) { //Old school?? ! ! lseek( fd, 0, SEEK_SET ); ! numread = read( fd, buffer, sizeof(buffer)-1); ! if( numread > 0 ) { ! buffer[numread] = 0; ! wps_format(buffer, 0 ); ! wps_loaded[0] = true; ! } ! } ! ! if( p1 != -1 ) { ! ! lseek( fd, p1, SEEK_SET ); ! numread = read(fd, buffer, sizeof(buffer)-1); ! ! if( numread > 0 ) { ! buffer[numread] = 0; ! wps_format(buffer, 0 ); ! wps_loaded[0] = true; } } + + if( p2 != -1 ) { + + lseek( fd, p2, SEEK_SET ); + numread = read(fd, buffer, sizeof(buffer)-1); + + if( numread > 0 ) { + buffer[numread] = 0; + wps_format(buffer, 1 ); + wps_loaded[1] = true; + } + } + + fclose(fd); ! if( display && (wps_loaded[0] || wps_loaded[1]) ) ! msg_splash( HZ, MSG_CENTER|MSG_VCENTER, "WPS file loaded" ); ! ! return true; } *************** *** 279,283 **** unsigned char* tag_len, unsigned char* subline_time_mult, ! unsigned char* flags) { if ((0 == tag[0]) || (0 == tag[1])) --- 315,319 ---- unsigned char* tag_len, unsigned char* subline_time_mult, ! unsigned int* flags) { if ((0 == tag[0]) || (0 == tag[1])) *************** *** 292,296 **** { case 'i': /* ID3 Information */ ! *flags |= WPS_REFRESH_STATIC; switch (tag[1]) { --- 328,332 ---- { case 'i': /* ID3 Information */ ! *flags |= WPS_TYPE_TRACK_INFO; switch (tag[1]) { *************** *** 339,343 **** case 'f': /* File Information */ ! *flags |= WPS_REFRESH_STATIC; switch(tag[1]) { --- 375,379 ---- case 'f': /* File Information */ ! *flags |= WPS_TYPE_TRACK_INFO; switch(tag[1]) { *************** *** 389,400 **** switch(tag[1]) { - // case 'b': /* progress bar */ - // *flags |= WPS_REFRESH_PLAYER_PROGRESS; - // snprintf(buf, buf_size, "%c", wps_progress_pat[0]); - // full_line_progressbar=0; - // return buf; case 'f': /* full-line progress bar */ ! *flags |= WPS_REFRESH_PLAYER_PROGRESS; ! *flags |= WPS_REFRESH_DYNAMIC; full_line_progressbar=1; /* we need 20 characters (full line) for --- 425,430 ---- switch(tag[1]) { case 'f': /* full-line progress bar */ ! *flags |= WPS_TYPE_PROGRESS|WPS_TYPE_TRACK_TIME; full_line_progressbar=1; /* we need 20 characters (full line) for *************** *** 403,408 **** return buf; case 'm': /* mute */ if (audio_is_muted()) { ! snprintf(buf,buf_size,"Mute"); return buf; } else --- 433,439 ---- return buf; case 'm': /* mute */ + *flags |= WPS_TYPE_SETTING; if (audio_is_muted()) { ! snprintf(buf,buf_size,str(LANG_MUTE)); return buf; } else *************** *** 410,433 **** case 'p': /* Playlist Position */ ! *flags |= WPS_REFRESH_STATIC; snprintf(buf, buf_size, "%d", playlist_get_display_index()); return buf; case 'n': /* Playlist Name (without path) */ ! *flags |= WPS_REFRESH_STATIC; return playlist_name(buf, buf_size); case 'e': /* Playlist Total Entries */ ! *flags |= WPS_REFRESH_STATIC; snprintf(buf, buf_size, "%d", playlist_amount()); return buf; case 'c': /* Current Time in Song */ ! *flags |= WPS_REFRESH_DYNAMIC; format_time(buf, buf_size, id3->elapsed + ff_rewind_count); return buf; case 'r': /* Remaining Time in Song */ ! *flags |= WPS_REFRESH_DYNAMIC; format_time(buf, buf_size, id3->length - id3->elapsed - ff_rewind_count); --- 441,464 ---- case 'p': /* Playlist Position */ ! *flags |= WPS_TYPE_TRACK_INFO; snprintf(buf, buf_size, "%d", playlist_get_display_index()); return buf; case 'n': /* Playlist Name (without path) */ ! *flags |= WPS_TYPE_TRACK_INFO; return playlist_name(buf, buf_size); case 'e': /* Playlist Total Entries */ ! *flags |= WPS_TYPE_TRACK_INFO; snprintf(buf, buf_size, "%d", playlist_amount()); return buf; case 'c': /* Current Time in Song */ ! *flags |= WPS_TYPE_TRACK_TIME; format_time(buf, buf_size, id3->elapsed + ff_rewind_count); return buf; case 'r': /* Remaining Time in Song */ ! *flags |= WPS_TYPE_TRACK_TIME; format_time(buf, buf_size, id3->length - id3->elapsed - ff_rewind_count); *************** *** 435,443 **** case 't': /* Total Time */ ! *flags |= WPS_REFRESH_STATIC; format_time(buf, buf_size, id3->length); return buf; case 's': /* shuffle */ if ( global_settings.playlist_shuffle ) return "s"; --- 466,475 ---- case 't': /* Total Time */ ! *flags |= WPS_TYPE_TRACK_INFO; format_time(buf, buf_size, id3->length); return buf; case 's': /* shuffle */ + *flags |= WPS_TYPE_SETTING; if ( global_settings.playlist_shuffle ) return "s"; *************** *** 447,450 **** --- 479,483 ---- case 'a': + *flags |= WPS_TYPE_SETTING; switch (global_settings.repeat_mode) { case REPEAT_OFF: *************** *** 460,464 **** case 'v': /* volume */ ! *flags |= WPS_REFRESH_DYNAMIC; snprintf(buf, buf_size, "%d%s", volume_get(), volume_get_units()); return buf; --- 493,497 ---- case 'v': /* volume */ ! *flags |= WPS_TYPE_SETTING; snprintf(buf, buf_size, "%d%s", volume_get(), volume_get_units()); return buf; *************** *** 470,474 **** { int level = tag[1] - '0'; ! *flags |= WPS_REFRESH_STATIC; /* d1 through d9 */ if ((0 < level) && (9 > level)) --- 503,507 ---- { int level = tag[1] - '0'; ! *flags |= WPS_TYPE_TRACK_INFO; /* d1 through d9 */ if ((0 < level) && (9 > level)) *************** *** 603,607 **** char* fmt, unsigned char* subline_time_mult, ! unsigned char* flags) { char temp_buf[128]; --- 636,640 ---- char* fmt, unsigned char* subline_time_mult, ! unsigned int* flags) { char temp_buf[128]; *************** *** 644,648 **** case 's': ! *flags |= WPS_REFRESH_SCROLL; ++fmt; break; --- 677,681 ---- case 's': ! *flags |= WPS_TYPE_SCROLL; ++fmt; break; *************** *** 696,708 **** We still want to refresh it. */ if(*flags == 0) ! *flags = WPS_REFRESH_STATIC; } ! bool wps_refresh(struct mp3entry* id3, int ffwd_offset, unsigned char refresh_mode) { char buf[MAX_PATH]; ! unsigned char flags; int i; - bool update_line; bool only_one_subline; bool new_subline_refresh; --- 729,740 ---- We still want to refresh it. */ if(*flags == 0) ! *flags = WPS_TYPE_SETTING; } ! bool wps_refresh(struct mp3entry* id3, int nb, int ffwd_offset, unsigned int refresh_mode) { char buf[MAX_PATH]; ! unsigned int flags; int i; bool only_one_subline; bool new_subline_refresh; *************** *** 711,726 **** lcd_set_cgram_bank( CGRAM_BANK_WPS ); /* reset to first subline if refresh all flag is set */ ! if (refresh_mode == WPS_REFRESH_ALL) { ! for (i=0; i<MAX_LINES; i++) ! { ! curr_subline[i] = SUBLINE_RESET; ! } } - /* for (i=0; i<8; i++) { - if (wps_progress_pat[i]==0) - wps_progress_pat[i]=lcd_get_locked_pattern(); - }*/ if (!id3) --- 743,754 ---- lcd_set_cgram_bank( CGRAM_BANK_WPS ); + /* reset to first subline if refresh all flag is set */ ! if( refresh_mode == FLAGS_REDRAW_ALL ) { ! lcd_clear(false); ! for (i=0; i<MAX_LINES; i++) ! curr_subline[nb][i] = SUBLINE_RESET; } if (!id3) *************** *** 731,827 **** for (i = 0; i < MAX_LINES; i++) { ! new_subline_refresh = false; ! only_one_subline = false; ! /* if time to advance to next sub-line */ ! if (TIME_AFTER(current_tick, subline_expire_time[i] - 1) || ! (curr_subline[i] == SUBLINE_RESET)) { ! /* search all sublines until the next subline with time > 0 ! is found or we get back to the subline we started with */ ! if (curr_subline[i] == SUBLINE_RESET) ! search_start = 0; ! else ! search_start = curr_subline[i]; ! for (search=0; search<MAX_SUBLINES; search++) { ! curr_subline[i]++; ! ! // wrap around if beyond last defined subline or MAX_SUBLINES ! if ((!format_lines[i][curr_subline[i]]) || ! (curr_subline[i] == MAX_SUBLINES)) { ! if (curr_subline[i] == 1) ! only_one_subline = true; ! curr_subline[i] = 0; ! } ! ! /* if back where we started after search or ! only one subline is defined on the line */ ! if (((search > 0) && (curr_subline[i] == search_start)) || ! only_one_subline) { ! /* no other subline with a time > 0 exists */ ! subline_expire_time[i] = current_tick + 100 * HZ; ! break; ! } else { ! /* get initial time multiplier and ! line type flags for this subline */ ! format_display(buf, sizeof(buf), id3, ! format_lines[i][curr_subline[i]], ! &time_mult[i][curr_subline[i]], ! &line_type[i][curr_subline[i]]); ! ! /* only use this subline if subline time > 0 */ ! if (time_mult[i][curr_subline[i]] > 0) { ! new_subline_refresh = true; ! subline_expire_time[i] = current_tick + ! BASE_SUBLINE_TIME * time_mult[i][curr_subline[i]]; ! break; ! } ! } ! } ! ! } ! update_line = false; ! if ( !format_lines[i][curr_subline[i]] ) ! break; - if ((line_type[i][curr_subline[i]] & refresh_mode) || - (refresh_mode == WPS_REFRESH_ALL) || new_subline_refresh) { - flags = 0; - format_display(buf, sizeof(buf), id3, - format_lines[i][curr_subline[i]], - &time_mult[i][curr_subline[i]], &flags); - line_type[i][curr_subline[i]] = flags; - - /* progress */ - if (flags & refresh_mode & WPS_REFRESH_PLAYER_PROGRESS) { - if (full_line_progressbar) - draw_player_fullbar(buf, sizeof(buf), - id3, ff_rewind_count); - else - draw_player_progress(id3, ff_rewind_count); - } - if (flags & WPS_REFRESH_SCROLL) { - /* scroll line */ - if (refresh_mode & WPS_REFRESH_SCROLL || - new_subline_refresh) { - lcd_puts_scroll(0, i, buf); - update_line = true; - } - } - /* dynamic / static line */ - else if (flags & (WPS_REFRESH_DYNAMIC | WPS_REFRESH_STATIC)) - { - if ((refresh_mode & (WPS_REFRESH_DYNAMIC | WPS_REFRESH_STATIC)) || - new_subline_refresh) { - update_line = true; - lcd_puts(0, i, buf); - } - } - } - } lcd_update(); return true; } ! bool wps_display(struct mp3entry* id3) { //Check if we have something to display --- 759,854 ---- for (i = 0; i < MAX_LINES; i++) { ! new_subline_refresh = false; ! only_one_subline = false; ! ! /* if time to advance to next sub-line */ ! if (TIME_AFTER(current_tick, subline_expire_time[nb][i] - 1) || (curr_subline[nb][i] == SUBLINE_RESET)) { ! ! /* search all sublines until the next subline with time > 0 ! is found or we get back to the subline we started with */ ! if (curr_subline[nb][i] == SUBLINE_RESET) ! search_start = 0; ! else ! search_start = curr_subline[nb][i]; ! ! for (search=0; search<MAX_SUBLINES; search++) { ! curr_subline[nb][i]++; ! ! // wrap around if beyond last defined subline or MAX_SUBLINES ! if ((!format_lines[nb][i][curr_subline[nb][i]]) || ! (curr_subline[nb][i] == MAX_SUBLINES)) { ! if (curr_subline[nb][i] == 1) ! only_one_subline = true; ! curr_subline[nb][i] = 0; ! } ! ! /* if back where we started after search or ! only one subline is defined on the line */ ! if (((search > 0) && (curr_subline[nb][i] == search_start)) || ! only_one_subline) { ! /* no other subline with a time > 0 exists */ ! subline_expire_time[nb][i] = current_tick + 100 * HZ; ! break; ! } else { ! /* get initial time multiplier and ! line type flags for this subline */ ! format_display(buf, sizeof(buf), id3, ! format_lines[nb][i][curr_subline[nb][i]], ! &time_mult[nb][i][curr_subline[nb][i]], ! &line_type[nb][i][curr_subline[nb][i]]); ! ! /* only use this subline if subline time > 0 */ ! if (time_mult[nb][i][curr_subline[nb][i]] > 0) { ! new_subline_refresh = true; ! subline_expire_time[nb][i] = current_tick + ! BASE_SUBLINE_TIME * time_mult[nb][i][curr_subline[nb][i]]; ! break; ! } ! } ! } ! } ! ! if( !format_lines[nb][i][curr_subline[nb][i]] ) ! break; ! ! if ((line_type[nb][i][curr_subline[nb][i]] & refresh_mode) || (refresh_mode == FLAGS_REDRAW_ALL) || new_subline_refresh) { ! flags = 0; ! format_display(buf, sizeof(buf), id3, ! format_lines[nb][i][curr_subline[nb][i]], ! &time_mult[nb][i][curr_subline[nb][i]], &flags); ! ! line_type[nb][i][curr_subline[nb][i]] = flags; ! ! /* progress */ ! if( flags & WPS_TYPE_PROGRESS ){ ! ! if( (refresh_mode & (FLAGS_REDRAW_PROGRESS|FLAGS_REDRAW_TRACK_TIME)) || new_subline_refresh ) { ! if (full_line_progressbar) ! draw_player_fullbar(buf, sizeof(buf), id3, ff_rewind_count); ! else ! draw_player_progress(id3, ff_rewind_count); ! ! lcd_puts(0, i, buf); ! } ! } ! else if( flags & WPS_TYPE_SCROLL) { ! /* scroll line */ ! if( (refresh_mode & FLAGS_REDRAW_TRACK_DATA) || new_subline_refresh ) ! lcd_puts_scroll(0, i, buf); ! } ! else { ! /* dynamic / static line */ ! if( refresh_mode & (FLAGS_REDRAW_TRACK_DATA|FLAGS_REDRAW_TRACK_TIME|FLAGS_REDRAW_SETTING|FLAGS_REDRAW_STATUS) || new_subline_refresh ) ! lcd_puts(0, i, buf); ! } ! } ! } lcd_update(); return true; } ! bool wps_display(struct mp3entry* id3, int nb) { //Check if we have something to display *************** *** 830,848 **** return true; //to tell wps_show() to exit } ! else { //Check if we have a wps script loaded if not load the default one ! if (!wps_loaded) { ! if( !format_buffer[0] ) { ! wps_format("Vol:%pv %?ps<R| > (%pp/%pe)\n" ! "%s%?pm< Mute |%s%?ia<%ia|%d1>>\n" ! //"%s%it\n" ! "%s%?it<%it|%fn>\n" ! "%pf\n"); ! } ! } } //Here's were the actual wps display occurs ! wps_refresh(id3, 0, WPS_REFRESH_ALL); return false; } --- 857,870 ---- return true; //to tell wps_show() to exit } ! else if( !wps_loaded[nb] ){ //Check if we have a wps script loaded if not load the default one ! wps_format("Vol:%pv %?ps<R| > (%pp/%pe)\n" ! "%s%?pm< Mute |%s%?ia<%ia|%d1>>\n" ! "%s%?it<%it|%fn>\n" ! "%pf\n", nb); } //Here's were the actual wps display occurs ! wps_refresh(id3, nb, 0, FLAGS_REDRAW_ALL ); return false; } *************** *** 917,933 **** } - /*static char map_fullbar_char(char ascii_val) - { - if (ascii_val >= '0' && ascii_val <= '9') { - return(ascii_val - '0'); - } - else if (ascii_val == ':') { - return(10); - } - else - return(11); // anything besides a number or ':' is mapped to <blank> - } - */ - /* ----------------------------------------------------------------- * vim: et sw=4 ts=8 sts=4 tw=78 --- 939,942 ---- Index: wps-display.h =================================================================== RCS file: /cvsroot/openneo/openneo/apps/wps-display.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** wps-display.h 19 May 2004 01:39:58 -0000 1.3 --- wps-display.h 9 Jul 2004 22:20:35 -0000 1.4 *************** *** 36,53 **** #include <stdbool.h> #include "id3.h" /* constants used in line_type and as refresh_mode for wps_refresh */ ! #define WPS_REFRESH_STATIC 1 /* line doesn't change over time */ ! #define WPS_REFRESH_DYNAMIC 2 /* line may change (e.g. time flag) */ ! #define WPS_REFRESH_SCROLL 4 /* line scrolls */ ! #define WPS_REFRESH_PLAYER_PROGRESS 8 /* line contains a progress bar */ ! #define WPS_REFRESH_PEAK_METER 16 /* line contains a peak meter */ ! #define WPS_REFRESH_ALL 0xff /* to refresh all line types */ /* to refresh only those lines that change over time */ ! #define WPS_REFRESH_NON_STATIC (WPS_REFRESH_ALL & ~WPS_REFRESH_STATIC & ~WPS_REFRESH_SCROLL) ! bool wps_refresh(struct mp3entry* id3, int ffwd_offset, unsigned char refresh_mode); ! bool wps_display(struct mp3entry* id3); bool wps_load(char* file, bool display); void wps_reset(void); --- 36,63 ---- #include <stdbool.h> #include "id3.h" + #include "flags.h" /* constants used in line_type and as refresh_mode for wps_refresh */ ! #define WPS_TYPE_TRACK_INFO FLAGS_REDRAW_TRACK_DATA ! #define WPS_TYPE_TRACK_TIME FLAGS_REDRAW_TRACK_TIME ! #define WPS_TYPE_PROGRESS FLAGS_REDRAW_PROGRESS ! #define WPS_TYPE_SETTING FLAGS_REDRAW_SETTING ! #define WPS_TYPE_STATUS FLAGS_REDRAW_STATUS ! #define WPS_TYPE_SCROLL 0x20 ! #define WPS_TYPE_ALL FLAGS_REDRAW_ALL|0x20 ! ! ! //#define WPS_REFRESH_STATIC 1 /* line doesn't change over time */ ! ///#define WPS_REFRESH_DYNAMIC 2 /* line may change (e.g. time flag) */ ! //#define WPS_REFRESH_SCROLL 4 /* line scrolls */ ! ///#define WPS_REFRESH_PLAYER_PROGRESS 8 /* line contains a progress bar */ ! //#define WPS_REFRESH_PEAK_METER 16 /* line contains a peak meter */ ! //#define WPS_REFRESH_ALL 0xff /* to refresh all line types */ /* to refresh only those lines that change over time */ ! //#define WPS_REFRESH_NON_STATIC (WPS_REFRESH_ALL & ~WPS_REFRESH_STATIC & ~WPS_REFRESH_SCROLL) ! bool wps_refresh(struct mp3entry* id3, int nb, int ffwd_offset, unsigned int refresh_mode); ! bool wps_display(struct mp3entry* id3, int nb); bool wps_load(char* file, bool display); void wps_reset(void); |