Rockbox Development > Starting Development and Compiling

cpchan's Menu Patch Expliantion?

(1/1)

Dajax:
I was wondering if there is a kind soul to help explian this

It's cpchan's Patch for Custom Main Menu
and well i'm not to savy with coding but i was wondering how it works can someone please explain,



--- Code: ---diff -Naur rockbox-modified/apps/lang/english.lang rockbox-experimental/apps/lang/english.lang
--- rockbox-modified/apps/lang/english.lang 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/lang/english.lang 2007-11-07 10:18:57.000000000 -0500
@@ -383,13 +383,13 @@
   desc: main menu title
   user:
   
-    *: "Files"
+    *: "Manage Files"
   
   
-    *: "Files"
+    *: "Manage Files"
   
   
-    *: "Files"
+    *: "Manage Files"
   
 
 
@@ -483,20 +483,6 @@
   
 
 
-  id: LANG_PLAYLISTS
-  desc: in the main menu and  file vew setting
-  user:
-  
-    *: "Playlists"
-  
-  
-    *: "Playlists"
-  
-  
-    *: "Playlists"
-  
-
-
   id: LANG_PLUGINS
   desc: in the main menu
   user:
@@ -7146,13 +7132,13 @@
   desc: in onplay menu
   user:
   
-    *: "Playlist Catalog"
+    *: "Playlists Actions"
   
   
-    *: "Playlist Catalog"
+    *: "Playlists Actions"
   
   
-    *: "Playlist Catalog"
+    *: "Playlist Catalog Actions"
   
 
 
@@ -7427,13 +7413,13 @@
   desc: Used when you need to say playlist, also voiced
   user:
   
-    *: "Playlist Actions"
+    *: "Playlist"
   
   
-    *: "Playlist Actions"
+    *: "Playlist"
   
   
-    *: "Playlist Actions"
+    *: "Playlists Options"
   
 
 
@@ -10769,15 +10755,15 @@
   user:
   
     *: none
-    lcd_bitmap: "Playlists"
+    lcd_bitmap: "Playlists Options"
   
   
     *: none
-    lcd_bitmap: "Playlists"
+    lcd_bitmap: "Playlists Options"
   
   
     *: none
-    lcd_bitmap: "Playlists"
+    lcd_bitmap: "Playlists Options"
   
 
 
@@ -12055,3 +12041,87 @@
     *: "title and time"
   
 
+
+  id: LANG_MUSIC
+  desc: in root menu
+  user:
+  
+    *: "Music"
+  
+  
+    *: "Music"
+  
+  
+    *: "Music"
+  
+
+
+  id: LANG_PLAYLISTS
+  desc: in root menu
+  user:
+  
+    *: "Playlist Catalog"
+  
+  
+    *: "Playlist Catalog"
+  
+  
+    *: "Playlist Catalog"
+  
+
+
+  id: LANG_PLAYLIST_ACTIONS
+  desc: in root menu
+  user:
+  
+    *: "Playlist Actions"
+  
+  
+    *: "Playlist Action"
+  
+  
+    *: "Playlist Actions"
+  
+
+
+  id: LANG_PLAYLISTS_SETTINGS
+  desc: in root menu
+  user:
+  
+    *: "Playlists"
+  
+  
+    *: "Playlists"
+  
+  
+    *: "Playlists"
+  
+
+
+  id: LANG_OTHER_AUDIO
+  desc: in root menu
+  user:
+  
+    *: "Other Audios"
+  
+  
+    *: "Other Audios"
+  
+  
+    *: "Other Audios"
+  
+
+
+  id: LANG_TAGS_BROWSER
+  desc: in root menu
+  user:
+  
+    *: "Browse Tags"
+  
+  
+    *: "Browse Tags"
+  
+  
+    *: "Browse Tags"
+  
+
diff -Naur rockbox-modified/apps/menus/playlist_menu.c rockbox-experimental/apps/menus/playlist_menu.c
--- rockbox-modified/apps/menus/playlist_menu.c 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/menus/playlist_menu.c 2007-11-07 10:23:55.000000000 -0500
@@ -74,16 +74,15 @@
 MENUITEM_FUNCTION(save_playlist, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST),
                          (int(*)(void*))save_playlist_screen,
                         NULL, NULL, Icon_NOICON);
-MENUITEM_FUNCTION(catalog, 0, ID2P(LANG_CATALOG_VIEW),
+MENUITEM_FUNCTION(catalog, 0, ID2P(LANG_PLAYLISTS),
                   (int(*)(void))catalog_view_playlists,
                    NULL, NULL, Icon_NOICON);
 MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL);
 MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL);
-
-MAKE_MENU(playlist_settings, ID2P(LANG_PLAYLISTS), NULL,
+MAKE_MENU(playlist_settings, ID2P(LANG_PLAYLISTS_SETTINGS), NULL,
           Icon_Playlist,
           &recursive_dir_insert, &warn_on_erase);
-MAKE_MENU(playlist_options, ID2P(LANG_PLAYLISTS), NULL,
+MAKE_MENU(playlist_options, ID2P(LANG_CATALOG), NULL,
           Icon_Playlist,
           &create_playlist_item, &view_playlist, &save_playlist, &catalog);
 
diff -Naur rockbox-modified/apps/onplay.c rockbox-experimental/apps/onplay.c
--- rockbox-modified/apps/onplay.c 2007-11-07 09:30:36.000000000 -0500
+++ rockbox-experimental/apps/onplay.c 2007-11-07 10:18:57.000000000 -0500
@@ -70,6 +70,8 @@
 #endif
 #include "root_menu.h"
 
+#include "root_menu.h"
+
 static int context;
 static char* selected_file = NULL;
 static int selected_file_attr = 0;
@@ -95,6 +97,10 @@
 
 static int bookmark_menu_callback(int action,
                                   const struct menu_item_ex *this_item);
+
+MENUITEM_RETURNVALUE(playlists_browser, ID2P(LANG_PLAYLISTS), GO_TO_PLAYLISTS,
+                        NULL, Icon_Audio);
+
 MENUITEM_FUNCTION(bookmark_create_menu_item, 0,
                   ID2P(LANG_BOOKMARK_MENU_CREATE),
                   bookmark_create_menu, NULL, NULL, Icon_Bookmark);
@@ -239,17 +245,20 @@
         false);
 }
 
+static bool view_playlists_catalog(void)
+{
+    return rockbox_browse("/Playlist/",SHOW_SUPPORTED);
+}
+
 static bool cat_add_to_a_new_playlist(void)
 {
     return catalog_add_to_a_playlist(selected_file, selected_file_attr, true);
 }
 
-
 static int cat_playlist_callback(int action,
                                  const struct menu_item_ex *this_item);
 MENUITEM_FUNCTION(cat_view_lists, 0, ID2P(LANG_CATALOG_VIEW),
-                  catalog_view_playlists, 0, cat_playlist_callback,
-                  Icon_Playlist);
+                  view_playlists_catalog, 0, NULL, Icon_Playlist);
 MENUITEM_FUNCTION(cat_add_to_list, 0, ID2P(LANG_CATALOG_ADD_TO),
                   cat_add_to_a_playlist, 0, NULL, Icon_Playlist);
 MENUITEM_FUNCTION(cat_add_to_new, 0, ID2P(LANG_CATALOG_ADD_TO_NEW),
diff -Naur rockbox-modified/apps/playlist.h rockbox-experimental/apps/playlist.h
--- rockbox-modified/apps/playlist.h 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/playlist.h 2007-11-07 10:18:57.000000000 -0500
@@ -30,7 +30,7 @@
 #define PLAYLIST_ATTR_SKIPPED   0x04
 #define PLAYLIST_MAX_CACHE      16
 
-#define DEFAULT_PLAYLIST_DIR "/Playlists"
+#define DEFAULT_PLAYLIST_DIR "/Playlist"
 #define DEFAULT_DYNAMIC_PLAYLIST_NAME "/dynamic.m3u8"
 
 enum playlist_command {
diff -Naur rockbox-modified/apps/playlist_catalog.c rockbox-experimental/apps/playlist_catalog.c
--- rockbox-modified/apps/playlist_catalog.c 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/playlist_catalog.c 2007-11-07 10:18:57.000000000 -0500
@@ -41,6 +41,7 @@
 #include "debug.h"
 
 #define PLAYLIST_CATALOG_CFG ROCKBOX_DIR "/playlist_catalog.config"
+#define PLAYLIST_CATALOG_DEFAULT_DIR "/Playlist"
 #define MAX_PLAYLISTS 400
 #define PLAYLIST_DISPLAY_COUNT 10
 
@@ -422,6 +423,9 @@
 
 bool catalog_view_playlists(void)
 {
+    int filter = SHOW_SUPPORTED;
+    char folder[MAX_PATH] = "/";
+
     if (initialize_catalog() == -1)
         return false;
 
@@ -429,6 +433,7 @@
         return false;
 
     return true;
+
 }
 
 bool catalog_add_to_a_playlist(char* sel, int sel_attr, bool new_playlist)
diff -Naur rockbox-modified/apps/root_menu.c rockbox-experimental/apps/root_menu.c
--- rockbox-modified/apps/root_menu.c 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/root_menu.c 2007-11-07 10:18:57.000000000 -0500
@@ -217,6 +217,18 @@
             filter = SHOW_SUPPORTED;
             snprintf(folder, MAX_PATH, "%s/", SHORTCUTS_DIR);
         break;        
+        case GO_TO_MUSIC:
+            filter = SHOW_SUPPORTED;
+            snprintf(folder, MAX_PATH, "%s/", MUSIC_DIR);
+        break;
+        case GO_TO_OTHER_AUDIO:
+            filter = SHOW_SUPPORTED;
+            snprintf(folder, MAX_PATH, "%s/", OTHER_AUDIO_DIR);
+        break;
+        case GO_TO_PLAYLISTS:
+            filter = SHOW_SUPPORTED;
+            snprintf(folder, MAX_PATH, "%s/", PLAYLISTS_DIR);
+        break;                
     }
     ret_val = rockbox_browse(folder, filter);
     switch ((intptr_t)param)
@@ -363,12 +375,24 @@
     [GO_TO_PHOTOS] = { browser, (void*)GO_TO_PHOTOS, NULL },    
     [GO_TO_EBOOKS] = { browser, (void*)GO_TO_EBOOKS, NULL },
     [GO_TO_SHORTCUTS] = { browser, (void*)GO_TO_SHORTCUTS, NULL },
+    [GO_TO_MUSIC] = { browser, (void*)GO_TO_MUSIC, NULL },    
+    [GO_TO_OTHER_AUDIO] = { browser, (void*)GO_TO_OTHER_AUDIO, NULL },    
+    [GO_TO_PLAYLISTS] = { browser, (void*)GO_TO_PLAYLISTS, NULL },    
     
 };
 static const int nb_items = sizeof(items)/sizeof(*items);
 
 int item_callback(int action, const struct menu_item_ex *this_item) ;
 
+MENUITEM_RETURNVALUE(playlists_browser, ID2P(LANG_PLAYLISTS), GO_TO_PLAYLISTS,
+                        NULL, Icon_Playlist);
+
+MENUITEM_RETURNVALUE(music_browser, ID2P(LANG_MUSIC), GO_TO_MUSIC,
+                        NULL, Icon_Audio);
+
+MENUITEM_RETURNVALUE(other_audio_browser, ID2P(LANG_OTHER_AUDIO), GO_TO_OTHER_AUDIO,
+                        NULL, Icon_Folder);
+
 MENUITEM_RETURNVALUE(file_browser, ID2P(LANG_DIR_BROWSER), GO_TO_FILEBROWSER,
                         NULL, Icon_file_view_menu);
 #ifdef HAVE_TAGCACHE
@@ -408,18 +432,17 @@
                         Icon_Bookmark);
 MAKE_MENU(root_menu_, ID2P(LANG_ROCKBOX_TITLE),
             item_callback, Icon_Rockbox,
-            &bookmarks, &file_browser,
+            &playlists_browser, &bookmarks, &playlist_options, &music_browser,
 #ifdef HAVE_TAGCACHE
             &db_browser,
 #endif
-            &wps_item, &menu_,
-#ifdef HAVE_RECORDING
-            &rec,
-#endif
 #if CONFIG_TUNER
             &fm,
 #endif
-            &playlist_options, &vids_browser, &photos_browser, &ebooks_browser, &rocks_browser, &info_menu        );
+#ifdef HAVE_RECORDING
+            &rec,
+#endif
+            &other_audio_browser, &vids_browser, &photos_browser, &ebooks_browser, &rocks_browser, &file_browser, &info_menu, &menu_        );
 
 int item_callback(int action, const struct menu_item_ex *this_item)
 {
diff -Naur rockbox-modified/apps/root_menu.h rockbox-experimental/apps/root_menu.h
--- rockbox-modified/apps/root_menu.h 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/root_menu.h 2007-11-07 10:18:57.000000000 -0500
@@ -46,6 +46,9 @@
     /* Do Not add any items above here unless you want it to be able to
        be the "start screen" after a boot up. The setting in settings_list.c
        will need editing if this is the case. */
+    GO_TO_PLAYLISTS,
+    GO_TO_MUSIC,
+    GO_TO_OTHER_AUDIO,    
     GO_TO_BROWSEPLUGINS,
     GO_TO_CUSTOM_MENU,
     GO_TO_VIDEOS,
diff -Naur rockbox-modified/apps/settings.h rockbox-experimental/apps/settings.h
--- rockbox-modified/apps/settings.h 2007-11-07 09:18:04.000000000 -0500
+++ rockbox-experimental/apps/settings.h 2007-11-07 10:18:57.000000000 -0500
@@ -69,7 +69,7 @@
 #define VIEWERS_DIR         PLUGIN_DIR "/viewers"
 
 #define BACKDROP_DIR ROCKBOX_DIR "/backdrops"
-#define REC_BASE_DIR "/"
+#define REC_BASE_DIR "/other_audio/recordings"
 #define EQS_DIR     ROCKBOX_DIR "/eqs"
 #define CODECS_DIR  ROCKBOX_DIR "/codecs"
 #define RECPRESETS_DIR  ROCKBOX_DIR "/recpresets"
@@ -78,6 +78,9 @@
 #define PHOTOS_DIR "/photo"
 #define EBOOKS_DIR "/ebooks"
 #define SHORTCUTS_DIR "/_Shortcuts"
+#define MUSIC_DIR "/musica"
+#define OTHER_AUDIO_DIR "/other_audio"
+#define PLAYLISTS_DIR "/playlist"
 
 #define VIEWERS_CONFIG      ROCKBOX_DIR "/viewers.config"
 #define CONFIGFILE          ROCKBOX_DIR "/config.cfg"
diff -Naur rockbox-modified/tools/svnversion.sh rockbox-experimental/tools/svnversion.sh
--- rockbox-modified/tools/svnversion.sh 2007-11-07 09:18:05.000000000 -0500
+++ rockbox-experimental/tools/svnversion.sh 2007-11-07 10:18:57.000000000 -0500
@@ -36,6 +36,6 @@
         SVNVER=`svnversion_safe $TOP/tools`;
     fi
 fi
-VERSION=$SVNVER-cpchan-branch-`date -u +%y%m%d`
+VERSION=$SVNVER-cpchan-menu-branch-`date -u +%y%m%d`
 echo $VERSION
 

--- End code ---


Thanks
Dajax

Dajax:
sorry for double post..

but what im truely asking for is just an explination of how to move items around on the root menu

Like:

Music
Video
Photo
Ebook
Setting
Files
System

etc...

nls:
see apps/root_menu.c:395
MAKE_MENU(root_menu_, ID2P(LANG_ROCKBOX_TITLE), ...
change the order of the items to change the order in the menu, simple!  ;)

Navigation

[0] Message Index

Go to full version