diff options
-rw-r--r-- | apps/database.c | 3 | ||||
-rw-r--r-- | apps/lang/english.lang | 12 | ||||
-rw-r--r-- | apps/onplay.c | 3 | ||||
-rw-r--r-- | apps/screens.c | 50 | ||||
-rw-r--r-- | apps/screens.h | 1 |
5 files changed, 69 insertions, 0 deletions
diff --git a/apps/database.c b/apps/database.c index 0d0caebdc2..0e2a53b317 100644 --- a/apps/database.c +++ b/apps/database.c | |||
@@ -382,6 +382,7 @@ int rundb_init(void) | |||
382 | audio_set_track_buffer_event(&rundb_buffer_track); | 382 | audio_set_track_buffer_event(&rundb_buffer_track); |
383 | audio_set_track_changed_event(&rundb_track_change); | 383 | audio_set_track_changed_event(&rundb_track_change); |
384 | audio_set_track_unbuffer_event(&rundb_unbuffer_track); | 384 | audio_set_track_unbuffer_event(&rundb_unbuffer_track); |
385 | logf("rundb inited."); | ||
385 | #endif | 386 | #endif |
386 | rundbsize=lseek(rundb_fd,0,SEEK_END); | 387 | rundbsize=lseek(rundb_fd,0,SEEK_END); |
387 | return 0; | 388 | return 0; |
@@ -451,6 +452,7 @@ void writerundbentry(struct mp3entry *id) | |||
451 | } | 452 | } |
452 | 453 | ||
453 | void writeruntimeinfo(struct mp3entry *id) { | 454 | void writeruntimeinfo(struct mp3entry *id) { |
455 | logf("rundb write"); | ||
454 | if(!id->rundbhash) | 456 | if(!id->rundbhash) |
455 | addrundbentry(id); | 457 | addrundbentry(id); |
456 | else | 458 | else |
@@ -474,6 +476,7 @@ void clearruntimeinfo(struct mp3entry *id) { | |||
474 | 476 | ||
475 | void loadruntimeinfo(struct mp3entry *id) | 477 | void loadruntimeinfo(struct mp3entry *id) |
476 | { | 478 | { |
479 | logf("rundb load"); | ||
477 | clearruntimeinfo(id); | 480 | clearruntimeinfo(id); |
478 | clearfileentryinfo(id); | 481 | clearfileentryinfo(id); |
479 | if(!getfentrybyfilename(id)) { | 482 | if(!getfentrybyfilename(id)) { |
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index fb0da889cd..b7c829f4b8 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -3154,3 +3154,15 @@ desc: in settings_menu. | |||
3154 | eng: "Gather runtime data (experimental)" | 3154 | eng: "Gather runtime data (experimental)" |
3155 | voice: "Gather runtime data" | 3155 | voice: "Gather runtime data" |
3156 | new: | 3156 | new: |
3157 | |||
3158 | id: LANG_MENU_SET_RATING | ||
3159 | desc: in wps context menu | ||
3160 | eng: "Set song rating" | ||
3161 | voice: "Set song rating" | ||
3162 | new: | ||
3163 | |||
3164 | id: LANG_RATING | ||
3165 | desc: in set_rating | ||
3166 | eng: "Rating:" | ||
3167 | voice "Rating" | ||
3168 | new: | ||
diff --git a/apps/onplay.c b/apps/onplay.c index d1b5285faa..af35824c1e 100644 --- a/apps/onplay.c +++ b/apps/onplay.c | |||
@@ -556,6 +556,9 @@ int onplay(char* file, int attr, int from) | |||
556 | items[i].desc = ID2P(LANG_MENU_SHOW_ID3_INFO); | 556 | items[i].desc = ID2P(LANG_MENU_SHOW_ID3_INFO); |
557 | items[i].function = browse_id3; | 557 | items[i].function = browse_id3; |
558 | i++; | 558 | i++; |
559 | items[i].desc = ID2P(LANG_MENU_SET_RATING); | ||
560 | items[i].function = set_rating; | ||
561 | i++; | ||
559 | } | 562 | } |
560 | 563 | ||
561 | #ifdef HAVE_MULTIVOLUME | 564 | #ifdef HAVE_MULTIVOLUME |
diff --git a/apps/screens.c b/apps/screens.c index 19caf96cc9..e188d341d8 100644 --- a/apps/screens.c +++ b/apps/screens.c | |||
@@ -1417,3 +1417,53 @@ bool browse_id3(void) | |||
1417 | return false; | 1417 | return false; |
1418 | } | 1418 | } |
1419 | 1419 | ||
1420 | bool set_rating(void) | ||
1421 | { | ||
1422 | struct mp3entry* id3 = audio_current_track(); | ||
1423 | int button; | ||
1424 | bool exit = false; | ||
1425 | char rating_text[20]; | ||
1426 | |||
1427 | if (!(audio_status() & AUDIO_STATUS_PLAY)) | ||
1428 | return false; | ||
1429 | while (!exit) | ||
1430 | { | ||
1431 | lcd_clear_display(); | ||
1432 | lcd_puts(0, 0, str(LANG_RATING)); | ||
1433 | snprintf(rating_text,sizeof(rating_text),"%d",id3->rating); | ||
1434 | lcd_puts(0,1,rating_text); | ||
1435 | lcd_update(); | ||
1436 | button = button_get(true); | ||
1437 | |||
1438 | switch(button) | ||
1439 | { | ||
1440 | case SETTINGS_DEC: | ||
1441 | if (id3->rating > 0) | ||
1442 | id3->rating--; | ||
1443 | else | ||
1444 | id3->rating = 10; | ||
1445 | break; | ||
1446 | |||
1447 | case SETTINGS_INC: | ||
1448 | if (id3->rating < 10) | ||
1449 | id3->rating++; | ||
1450 | else | ||
1451 | id3->rating = 0; | ||
1452 | break; | ||
1453 | case SETTINGS_CANCEL: | ||
1454 | #ifdef SETTINGS_OK2 | ||
1455 | case SETTINGS_OK2: | ||
1456 | #endif | ||
1457 | /* eat release event */ | ||
1458 | button_get(true); | ||
1459 | exit = true; | ||
1460 | break; | ||
1461 | |||
1462 | default: | ||
1463 | if(default_event_handler(button) == SYS_USB_CONNECTED) | ||
1464 | return true; | ||
1465 | break; | ||
1466 | } | ||
1467 | } | ||
1468 | return false; | ||
1469 | } | ||
diff --git a/apps/screens.h b/apps/screens.h index 8648f4fb50..7a1b3f32bb 100644 --- a/apps/screens.h +++ b/apps/screens.h | |||
@@ -55,6 +55,7 @@ bool set_time_screen(const char* string, struct tm *tm); | |||
55 | 55 | ||
56 | bool shutdown_screen(void); | 56 | bool shutdown_screen(void); |
57 | bool browse_id3(void); | 57 | bool browse_id3(void); |
58 | bool set_rating(void); | ||
58 | 59 | ||
59 | #endif | 60 | #endif |
60 | 61 | ||