diff options
-rw-r--r-- | apps/tree.c | 202 |
1 files changed, 89 insertions, 113 deletions
diff --git a/apps/tree.c b/apps/tree.c index 43bd5e6f5c..4923b970b8 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -658,7 +658,7 @@ static int onplay_screen(char* dir, char* file) | |||
658 | snprintf(buf, sizeof buf, "%s/%s", dir, file); | 658 | snprintf(buf, sizeof buf, "%s/%s", dir, file); |
659 | 659 | ||
660 | lcd_clear_display(); | 660 | lcd_clear_display(); |
661 | #ifdef HAVE_LCD_BITMAP | 661 | |
662 | { | 662 | { |
663 | int w,h; | 663 | int w,h; |
664 | char* ptr; | 664 | char* ptr; |
@@ -686,11 +686,6 @@ static int onplay_screen(char* dir, char* file) | |||
686 | lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], | 686 | lcd_bitmap(bitmap_icons_7x8[Icon_FastBackward], |
687 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); | 687 | LCD_WIDTH/2 - 16, LCD_HEIGHT/2 - 4, 7, 8, true); |
688 | } | 688 | } |
689 | #else | ||
690 | if (playing) | ||
691 | lcd_puts(0,0,str(LANG_PLAYER_ONPLAY_1)); | ||
692 | lcd_puts(0,1,str(LANG_PLAYER_ONPLAY_2)); | ||
693 | #endif | ||
694 | lcd_update(); | 689 | lcd_update(); |
695 | 690 | ||
696 | 691 | ||
@@ -723,15 +718,10 @@ static int onplay_screen(char* dir, char* file) | |||
723 | if (isdir) | 718 | if (isdir) |
724 | break; | 719 | break; |
725 | lcd_clear_display(); | 720 | lcd_clear_display(); |
726 | #ifdef HAVE_LCD_CHARCELLS | ||
727 | lcd_puts(0,0,file); | ||
728 | lcd_puts(0,1,str(LANG_REALLY_DELETE)); | ||
729 | #else | ||
730 | lcd_puts(0,0,str(LANG_REALLY_DELETE)); | 721 | lcd_puts(0,0,str(LANG_REALLY_DELETE)); |
731 | lcd_puts(0,1,file); | 722 | lcd_puts(0,1,file); |
732 | lcd_puts(0,3,str(LANG_RESUME_CONFIRM_RECORDER)); | 723 | lcd_puts(0,3,str(LANG_RESUME_CONFIRM_RECORDER)); |
733 | lcd_puts(0,4,str(LANG_RESUME_CANCEL_RECORDER)); | 724 | lcd_puts(0,4,str(LANG_RESUME_CANCEL_RECORDER)); |
734 | #endif | ||
735 | lcd_update(); | 725 | lcd_update(); |
736 | while (!exit) { | 726 | while (!exit) { |
737 | int btn = button_get(true); | 727 | int btn = button_get(true); |
@@ -746,8 +736,8 @@ static int onplay_screen(char* dir, char* file) | |||
746 | lcd_update(); | 736 | lcd_update(); |
747 | sleep(HZ); | 737 | sleep(HZ); |
748 | exit = true; | 738 | exit = true; |
749 | break; | ||
750 | } | 739 | } |
740 | break; | ||
751 | 741 | ||
752 | default: | 742 | default: |
753 | /* ignore button releases */ | 743 | /* ignore button releases */ |
@@ -775,17 +765,13 @@ static int onplay_screen(char* dir, char* file) | |||
775 | exit = true; | 765 | exit = true; |
776 | break; | 766 | break; |
777 | 767 | ||
778 | #ifdef HAVE_RECORDER_KEYPAD | ||
779 | case BUTTON_OFF: | 768 | case BUTTON_OFF: |
780 | exit = true; | 769 | exit = true; |
781 | break; | 770 | break; |
782 | #endif | ||
783 | } | 771 | } |
784 | } | 772 | } |
785 | 773 | ||
786 | #ifdef HAVE_LCD_BITMAP | ||
787 | lcd_setfont(FONT_UI); | 774 | lcd_setfont(FONT_UI); |
788 | #endif | ||
789 | 775 | ||
790 | return false; | 776 | return false; |
791 | } | 777 | } |
@@ -794,113 +780,103 @@ static int onplay_screen(char* dir, char* file) | |||
794 | 780 | ||
795 | static int onplay_screen(char* dir, char* file) | 781 | static int onplay_screen(char* dir, char* file) |
796 | { | 782 | { |
797 | bool exit = false; | 783 | bool exit = false; |
798 | bool playing = mpeg_status() & MPEG_STATUS_PLAY; | 784 | bool playing = mpeg_status() & MPEG_STATUS_PLAY; |
799 | char buf[MAX_PATH]; | 785 | char buf[MAX_PATH]; |
800 | struct entry* f = &dircache[dirstart + dircursor]; | 786 | struct entry* f = &dircache[dirstart + dircursor]; |
801 | bool isdir = f->attr & ATTR_DIRECTORY; | 787 | bool isdir = f->attr & ATTR_DIRECTORY; |
802 | struct menu_items items[3]; | 788 | struct menu_items items[3]; |
803 | int ids[3]; | 789 | int ids[3]; |
804 | int lastitem=0; | 790 | int lastitem=0; |
805 | int m_handle; | 791 | int m_handle; |
806 | int selected; | 792 | int selected; |
807 | 793 | ||
808 | if ((dir[0]=='/') && (dir[1]==0)) | 794 | if ((dir[0]=='/') && (dir[1]==0)) |
809 | snprintf(buf, sizeof buf, "%s%s", dir, file); | 795 | snprintf(buf, sizeof buf, "%s%s", dir, file); |
810 | else | 796 | else |
811 | snprintf(buf, sizeof buf, "%s/%s", dir, file); | 797 | snprintf(buf, sizeof buf, "%s/%s", dir, file); |
812 | 798 | ||
813 | if (playing) { | 799 | if (playing) { |
814 | items[lastitem].desc=str(LANG_QUEUE); | 800 | items[lastitem].desc=str(LANG_QUEUE); |
815 | ids[lastitem]=1; | 801 | ids[lastitem]=1; |
816 | lastitem++; | 802 | lastitem++; |
817 | } | 803 | } |
818 | 804 | ||
819 | items[lastitem].desc=str(LANG_RENAME); | 805 | items[lastitem].desc=str(LANG_RENAME); |
820 | ids[lastitem]=2; | 806 | ids[lastitem]=2; |
821 | lastitem++; | 807 | lastitem++; |
822 | 808 | ||
823 | /* don't delete directories */ | 809 | /* don't delete directories */ |
824 | if (!isdir) { | 810 | if (!isdir) { |
825 | items[lastitem].desc=str(LANG_DELETE); | 811 | items[lastitem].desc=str(LANG_DELETE); |
826 | ids[lastitem]=3; | 812 | ids[lastitem]=3; |
827 | lastitem++; | 813 | lastitem++; |
828 | } | 814 | } |
829 | m_handle=menu_init(items, lastitem); | 815 | m_handle=menu_init(items, lastitem); |
830 | 816 | ||
831 | selected=menu_show(m_handle); | 817 | selected=menu_show(m_handle); |
832 | if (selected>=0) { | 818 | if (selected>=0) { |
833 | switch(ids[selected]) { | 819 | switch(ids[selected]) { |
834 | case 1: | 820 | case 1: |
835 | if (playing) | 821 | if (playing) |
836 | queue_add(buf); | 822 | queue_add(buf); |
837 | break; | 823 | break; |
838 | case 2: | 824 | |
839 | { | 825 | case 2: { |
840 | char newname[MAX_PATH]; | 826 | char newname[MAX_PATH]; |
841 | char* ptr = strrchr(buf, '/') + 1; | 827 | char* ptr = strrchr(buf, '/') + 1; |
842 | int pathlen = (ptr - buf); | 828 | int pathlen = (ptr - buf); |
843 | strncpy(newname, buf, sizeof newname); | 829 | strncpy(newname, buf, sizeof newname); |
844 | if (!kbd_input(newname + pathlen, (sizeof newname)-pathlen)) { | 830 | if (!kbd_input(newname + pathlen, (sizeof newname)-pathlen)) { |
845 | if (rename(buf, newname) < 0) { | 831 | if (rename(buf, newname) < 0) { |
846 | lcd_clear_display(); | 832 | lcd_clear_display(); |
847 | lcd_puts(0,0,str(LANG_RENAME)); | 833 | lcd_puts(0,0,str(LANG_RENAME)); |
848 | lcd_puts(0,1,str(LANG_FAILED)); | 834 | lcd_puts(0,1,str(LANG_FAILED)); |
849 | lcd_update(); | 835 | lcd_update(); |
850 | sleep(HZ*2); | 836 | sleep(HZ*2); |
851 | } | 837 | } |
852 | else | 838 | else |
853 | reload_dir = true; | 839 | reload_dir = true; |
854 | } | 840 | } |
855 | } | ||
856 | break; | ||
857 | case 3: | ||
858 | lcd_clear_display(); | ||
859 | #ifdef HAVE_LCD_CHARCELLS | ||
860 | lcd_puts(0,0,file); | ||
861 | lcd_puts(0,1,str(LANG_REALLY_DELETE)); | ||
862 | #else | ||
863 | lcd_puts(0,0,str(LANG_REALLY_DELETE)); | ||
864 | lcd_puts(0,1,file); | ||
865 | lcd_puts(0,3,str(LANG_RESUME_CONFIRM_RECORDER)); | ||
866 | lcd_puts(0,4,str(LANG_RESUME_CANCEL_RECORDER)); | ||
867 | #endif | ||
868 | lcd_update(); | ||
869 | { | ||
870 | while (!exit) { | ||
871 | int btn = button_get(true); | ||
872 | switch (btn) { | ||
873 | case BUTTON_PLAY: | ||
874 | case BUTTON_PLAY | BUTTON_REL: | ||
875 | if (!remove(buf)) { | ||
876 | reload_dir = true; | ||
877 | lcd_clear_display(); | ||
878 | lcd_puts(0,0,file); | ||
879 | lcd_puts(0,1,str(LANG_DELETED)); | ||
880 | lcd_update(); | ||
881 | sleep(HZ); | ||
882 | exit = true; | ||
883 | break; | ||
884 | } | 841 | } |
885 | |||
886 | default: | ||
887 | /* ignore button releases */ | ||
888 | if (!(btn & BUTTON_REL)) | ||
889 | exit = true; | ||
890 | break; | 842 | break; |
891 | } | 843 | |
844 | case 3: | ||
845 | lcd_clear_display(); | ||
846 | lcd_puts(0,0,file); | ||
847 | lcd_puts(0,1,str(LANG_REALLY_DELETE)); | ||
848 | lcd_update(); | ||
849 | while (!exit) { | ||
850 | int btn = button_get(true); | ||
851 | switch (btn) { | ||
852 | case BUTTON_PLAY: | ||
853 | case BUTTON_PLAY | BUTTON_REL: | ||
854 | if (!remove(buf)) { | ||
855 | reload_dir = true; | ||
856 | lcd_clear_display(); | ||
857 | lcd_puts(0,0,file); | ||
858 | lcd_puts(0,1,str(LANG_DELETED)); | ||
859 | lcd_update(); | ||
860 | sleep(HZ); | ||
861 | exit = true; | ||
862 | } | ||
863 | break; | ||
864 | |||
865 | default: | ||
866 | /* ignore button releases */ | ||
867 | if (!(btn & BUTTON_REL)) | ||
868 | exit = true; | ||
869 | break; | ||
870 | } | ||
871 | } | ||
872 | break; | ||
892 | } | 873 | } |
893 | } | ||
894 | break; | ||
895 | } | 874 | } |
896 | } | 875 | menu_exit(m_handle); |
897 | menu_exit(m_handle); | 876 | return false; |
898 | return false; | ||
899 | } | 877 | } |
900 | #endif | 878 | #endif |
901 | 879 | ||
902 | |||
903 | |||
904 | static bool handle_on(int* ds, int* dc, int numentries, int tree_max_on_screen) | 880 | static bool handle_on(int* ds, int* dc, int numentries, int tree_max_on_screen) |
905 | { | 881 | { |
906 | bool exit = false; | 882 | bool exit = false; |