Rockbox Development > Feature Ideas

The menu......... restructure thing... again

<< < (2/3) > >>

tatsudoshi:
Ofc it has nothing to do with how long ago it was made. It was kinda implied that it is solely because of the structure, logic or the lag thereof and the fact that is static. I presume some level of customization is preferred..

sakamoto:
I fully agree with tatsudoshi. The music database for instance has to many features I never use. It would be great if I could hide some of these database menu items in order to enable a more smooth/easy browsing through the rockbox menu while driving my car  ;D

i am thinking of some kind of xml/ini file which would enable some basic menu editing. show/dont show specific menu items.

i am pretty confident that many users would like to hide items in the database like recently added, track (who is using this in fact?), composer, user rating,....


just my 2 cents and my first post since 2006  :P

[Saint]:

--- Quote from: sakamoto on July 29, 2011, 06:19:16 PM ---I fully agree with tatsudoshi. The music database for instance has to many features I never use. It would be great if I could hide some of these database menu items in order to enable a more smooth/easy browsing through the rockbox menu while driving my car  ;D

--- End quote ---

You can...and no one is stopping you from doing so. ;)
You don't even have to set up a development environment and compile your own binary, nor know anything about coding...
You can modify the layout and ordering of the Database via the tagnavi_custom file...considering the desire you express in your post it would be worth your while to read that.



[St.]


EDIT: Here's my tagnavi_custom.config


--- Code: ---#! rockbox/tagbrowser/2.0

%format "fmt_title"       "%s - %02d:%02d" filename Lm Ls ? title == "<Untagged>"
%format "fmt_title"       "%d.%02d. %s - %02d:%02d" discnum tracknum title Lm Ls ? discnum > "0"
%format "fmt_title"       "%02d. %s - %02d:%02d" tracknum title Lm Ls ? tracknum > "0"
%format "fmt_title"       "%s - %02d:%02d" title Lm Ls
%format "fmt_mostplayed"  "%2d|%3d %s (%s)" playcount autoscore title artist %sort = "inverse" %limit = "100"
%format "fmt_lastplayed"  "%06d%s - %s" lastplayed artist title %sort = "inverse" %limit = "99" %strip = "6"
%format "fmt_forgotten"   "%06d%s - %s" lastplayed artist title %limit = "99" %strip = "6"
%format "fmt_best_tracks" "%02d. %s (%3d)" tracknum title autoscore
%format "fmt_score"       "(%3d) %s-%s" autoscore title artist
%format "fmt_rating"      "(%2d) %s-%s" rating title artist %sort = "inverse"

# "History"

%menu_start "menu-history" "History"
"Favourite Artists" -> artist ? playcount > "3" & autoscore > "85" -> album -> title = "fmt_best_tracks"
"Favourite Albums" -> album ? playcount > "3" & autoscore > "85" -> title = "fmt_best_tracks"
"Forgotten Favourites" -> title = "fmt_forgotten" ? playcount > "3" & autoscore > "85"
"Most Played" -> title = "fmt_mostplayed" ? playcount > "0"
"Never Played" -> artist ? playcount == "0" -> album -> title = "fmt_title"
"New Favourites" -> artist ? playcount <= "3" & autoscore > "85" -> album -> title = "fmt_best_tracks"
"Recent Favourites" -> title = "fmt_lastplayed" ? playcount > "3" & autoscore > "85"
"Recently Played" -> title = "fmt_lastplayed" ? playcount > "0"

# "Same As Current"

%menu_start "menu-same-as-current" "Same As Current"
"Album" -> title = "fmt_title" ? album = "#album#"
"Album Artist" -> albumartist ? albumartist = "#albumartist#" -> title  = "fmt_title"
"Artist" -> album ? artist = "#artist#" -> title  = "fmt_title"
"Directory" -> title ? filename ^ "#directory#"
"Title" -> title = "fmt_title" ? title = "#title#"

# "Search"

%menu_start "menu-search" "Search"
"Album" -> album ? album ~ "" -> title = "fmt_title"
"Album Artist" -> albumartist ? albumartist ~ "" -> album -> title = "fmt_title"
"Artist" -> artist ? artist ~ "" -> album -> title = "fmt_title"
"Filename" -> filename ? filename ~ ""
"Title" -> title = "fmt_title" ? title ~ ""
"Rating" -> title = "fmt_rating" ? rating > ""

# "Database" Main Menu

%menu_start "menu-database" "Database"
"Album"    -> album    -> title = "fmt_title"
"Album Artist"   -> albumartist   -> album  -> title = "fmt_title"
"Artist"   -> artist   -> album  -> title = "fmt_title"
"Genre"    -> genre    -> artist -> album -> title = "fmt_title"
"History" ==> "menu-history"
"Rating" -> rating -> title = "fmt_title"
"Same As Current" ==> "menu-same-as-current"
"Search" ==> "menu-search"
"Track"    -> title
"Year"     -> year ? year > "0" -> artist -> album -> title = "fmt_title"

%root_menu "menu-database"

--- End code ---

The layout of the Database with this tagnavi file (in case you can't follow the syntax) is as follows:

Database
    -Album
        <All Tracks>
        <Random>
    -Album Artist
        <All Tracks>
        <Random>
    -Artist
        <All Tracks>
        <Random>
    -Genre
        <All Tracks>
        <Random>
    -History
        --Favourite Artists
            <All Tracks>
            <Random>
        --Favourite Albums
            <All Tracks>
            <Random>
        --Forgotten Favourites
            <All Tracks>
            <Random>
        --Most Played
            <All Tracks>
            <Random>
        --Never Played
            <All Tracks>
            <Random>
        --New Favourites
            <All Tracks>
            <Random>
        --Recent Favourites
            <All Tracks>
            <Random>
        --Recently Played
            <All Tracks>
            <Random>
    -Rating
        <All Tracks>
        <Random>
    -Same As Current
        --Album
            <All Tracks>
            <Random>
        --Album Artist
            <All Tracks>
            <Random>
        --Artist
            <All Tracks>
            <Random>
        --Composer
            <All Tracks>
            <Random>
        --Directory
            <All Tracks>
            <Random>
        --Title
            <All Tracks>
            <Random>
    -Search
        --Album
            <All Tracks>
            <Random>
        --Album Artist
            <All Tracks>
            <Random>
        --Artist
            <All Tracks>
            <Random>
        --Filename
            <All Tracks>
            <Random>
        --Title
            <All Tracks>
            <Random>
        --Rating
            <All Tracks>
            <Random>
    -Track
        <All Tracks>
        <Random>
    -Year
        <All Tracks>
        <Random>

It looks daunting in a long list like that...but when its on the player, there is a lot of "trimmed fat" whilst still offering me all the usability needed*. As you can see, I have also alphabetized the menu.
I hardly used the Database before I created this as the menus seemed to have no specific ordering scheme so I found it difficult to find things at times when my concentration was divided.

*(Your milage may vary, I may have cut out things that others use on a regular basis and left other things that are never used by others. This is /my/ tagnavi_custom.config file, it is not supposed to fit the needs of Mr. Joe Everydayman. ;))

GodEater:
I think it's probably worth mentioning, although it has been done so before, but the idea of the XML menus has been shot down before.

Although to some (although not me!), XML is a nice format for this kind of thing, it does mean we'd have to build out rockbox with an XML parser too, and they're not lightweight. It would mean the rockbox binary size would jump a large amount, and for only one purpose in the long run. This is why we don't use XML anywhere else either - not the skin enginer, and not the tagnavi format that [St.] has kindly illustrated above.

In the short term to new users, they don't look awesome - but they're very compact, and because they're very focused on the task at hand, they can be built small and not carry a lot of extra baggage that an XML parser has to carry.

Note, this doesn't mean we wouldn't implement some *other* system of customisable menus (although the jury is still out for those that think they're a good idea and those that don't) - I'm just saying XML is an awful way to do them!

JdGordon:
As a reply to godeater, XML isnt completly an impossibility. Just because the user interacts with XML files doesnt mean the file the player reads needs to be XML. case in point is the lang files which are "compiled" into a binary format which is loaded onto the player.

There is absolutely no reason we couldn't allow customization with a XML file and provide a simple tool to convert it to a binary format (either in rbutil, standalone, or as a plugin on target)!

We all agree that the menus are complex, but what do people want when they ask for customisation? Easier access to settings? A patch could be whipped up incredibly quickly to provide a menu with settings populated from a text file. Is that all users actually want?
Would users want to replace the quickscreen with such a menu? (still providing both in the build though so its either/or but everyone can choose which they prefer)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version