--- apps/playlist.h 2003-03-04 15:14:07.000000000 -0500 +++ /home/dlr/pfiles/apps/playlist.h 2003-03-04 15:13:32.000000000 -0500 @@ -66,6 +66,9 @@ int playlist_get_resume_info(int *resume_index, int *queue_resume, int *queue_resume_index); +int usrfile_add(char *filename,int UsrList); +//int txtfile_add(char *filename,int RmvList); + enum { QUEUE_OFF, QUEUE_BEGIN_QUEUE, QUEUE_BEGIN_PLAYLIST, NUM_QUEUE_MODES }; #endif /* __PLAYLIST_H__ */ --- apps/playlist.c 2003-01-25 00:00:17.000000000 -0500 +++ /home/dlr/pfiles/apps/playlist.c 2003-03-04 10:40:19.000000000 -0500 @@ -39,6 +39,9 @@ static struct playlist_info playlist; +#define USR_FILE "/~UsrFlg.txt" +#define HOT_FILE "/~HotLst.m3u" + #define QUEUE_FILE ROCKBOX_DIR "/.queue_file" #define PLAYLIST_BUFFER_SIZE (AVERAGE_FILENAME_LENGTH*MAX_FILES_IN_DIR) @@ -793,3 +796,48 @@ mpeg_flush_and_reload_tracks(); } + + +/* Add currently playing track to UsrFlg or HotLst */ + +int usrfile_add(char *filename,int UsrList) +{ + int fd, seek, result; + int len = strlen(filename); + char fname[MAX_PATH+1]; + + if(UsrList) + strcpy(fname,USR_FILE); + else + strcpy(fname,HOT_FILE); + + fd = open(fname, O_RDWR); + + if (fd < 0){ + fd = creat(fname, O_RDWR); + if (fd < 0) + return -1; + } + seek = lseek(fd, 0, SEEK_END); + if (seek < 0){ + close(fd); + return -1; + } + + /* save the file name with a trailing \n. FILE can be used as a + playlist if desired */ + filename[len] = '\n'; + + result = write(fd, filename, len+1); + if (result < 0) + { + close(fd); + return -1; + } + filename[len] = '\0'; + + close(fd); + + return 1; +} + --- apps/screens.c 2003-03-01 00:00:13.000000000 -0500 +++ /home/dlr/pfiles/apps/screens.c 2003-03-04 10:59:49.000000000 -0500 @@ -5,7 +5,7 @@ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ * \/ \/ \/ \/ \/ - * $Id: screens.c,v 1.17 2003/02/28 08:07:45 adiamas Exp $ + * $Id: screens.c,v 1.16 2003/02/15 00:03:22 bagder Exp $ * * Copyright (C) 2002 Björn Stenberg * @@ -26,6 +26,7 @@ #include "icons.h" #include "font.h" #include "mpeg.h" +#include "id3.h" #include "usb.h" #include "settings.h" #include "status.h" @@ -387,6 +388,9 @@ { bool exit = false; bool used = false; + int ret_val; + struct mp3entry* id3 = NULL; + char current_track[MAX_PATH+1]; lcd_setfont(FONT_SYSFIXED); @@ -394,50 +398,51 @@ int w,h; char* ptr; - ptr = str(LANG_F3_STATUS); + ptr = str(LANG_F3_FILES); lcd_getstringsize(ptr,&w,&h); lcd_clear_display(); - lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_SCROLL)); - lcd_putsxy(0, LCD_HEIGHT/2 - h, str(LANG_F3_BAR)); - lcd_putsxy(0, LCD_HEIGHT/2, - global_settings.scrollbar ? str(LANG_ON) : str(LANG_OFF)); + lcd_putsxy(0, LCD_HEIGHT/2 - h*2, str(LANG_F3_ADD)); + + lcd_putsxy(0, LCD_HEIGHT/2 , str(LANG_F3_FILES)); + + // display << icon lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], - LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); + LCD_WIDTH/2 - 16, LCD_HEIGHT/2 + h*2, 7, 8, true); - lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h*2, ptr); - lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2 - h, str(LANG_F3_BAR)); - lcd_putsxy(LCD_WIDTH - w, LCD_HEIGHT/2, - global_settings.statusbar ? str(LANG_ON) : str(LANG_OFF)); + // display >> icon lcd_bitmap(bitmap_icons_7x8[Icon_FastForward], - LCD_WIDTH/2 + 8, LCD_HEIGHT/2 - 4, 7, 8, true); + LCD_WIDTH/2 + 8, LCD_HEIGHT/2 + h*2, 7, 8, true); - /* Invert */ - lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h*2, str(LANG_INVERT)); - lcd_putsxy((LCD_WIDTH-w)/2, LCD_HEIGHT - h, - global_settings.invert ? str(LANG_ON) : str(LANG_OFF)); - lcd_bitmap(bitmap_icons_7x8[Icon_DownArrow], - LCD_WIDTH/2 - 3, LCD_HEIGHT - h*3, 7, 8, true); lcd_update(); switch (button_get(true)) { case BUTTON_LEFT: case BUTTON_F3 | BUTTON_LEFT: - global_settings.scrollbar = !global_settings.scrollbar; + id3 = mpeg_current_track(); + memcpy(current_track, id3->path, sizeof(current_track)); + ret_val = usrfile_add(current_track,1); + if(ret_val > 0){ + lcd_putsxy(LCD_WIDTH/2 -8, LCD_HEIGHT/2 + h*2, "OK"); + lcd_update(); + sleep(HZ*2); + lcd_putsxy(LCD_WIDTH/2 -8, LCD_HEIGHT/2 + h*2, " "); + } used = true; break; case BUTTON_RIGHT: case BUTTON_F3 | BUTTON_RIGHT: - global_settings.statusbar = !global_settings.statusbar; - used = true; - break; - - case BUTTON_DOWN: - case BUTTON_F3 | BUTTON_DOWN: - global_settings.invert = !global_settings.invert; - lcd_set_invert_display(global_settings.invert); + id3 = mpeg_current_track(); + memcpy(current_track, id3->path, sizeof(current_track)); + ret_val = usrfile_add(current_track,0); + if(ret_val > 0){ + lcd_putsxy(LCD_WIDTH/2 -8, LCD_HEIGHT/2 + h*2 , "OK"); + lcd_update(); + sleep(HZ*2); + lcd_putsxy(LCD_WIDTH/2 -8, LCD_HEIGHT/2 + h*2 , " "); + } used = true; break; @@ -457,7 +462,6 @@ } } - settings_save(); if (global_settings.statusbar) lcd_setmargins(0, STATUSBAR_HEIGHT); else --- apps/lang/english.lang 2003-02-28 00:00:24.000000000 -0500 +++ /home/dlr/pfiles/apps/lang/english.lang 2003-03-04 09:12:18.000000000 -0500 @@ -1429,3 +1429,13 @@ desc: in sound_settings eng: "Karaoke" new: + +id: LANG_F3_ADD +desc: in wps F3 pressed +eng: "Add Track To:" +new: + +id: LANG_F3_FILES +desc: in wps F3 pressed +eng: "~UsrFlg ~HotLst" +new: