Rockbox Technical Forums

Rockbox Development => Feature Ideas => Topic started by: Avalon on January 01, 2010, 10:50:47 AM

Title: PictureFlow Improvement
Post by: Avalon on January 01, 2010, 10:50:47 AM
First of all, thanks to the developer(s) of PictureFlow.  If you enjoy playing albums as I do, it is a great way to quickly get to the album of choice.

I would like to suggest a couple of items if development is ongoing:

1.  The albums are aranged by album title and if you have many albums, it would help if they were ordered by artist/album.  I have changed the ID3 album tags to include artist & album, but this is inconvenient and complicates other ID3 tag uses.  It would help a lot if PictureFlow displayed the artist and album tag information in separate lines and ordered the album art by artist/album.

2.  I have read several forum entries suggesting a PictureFlow main menu item.  It appears that this may not happen, so I would like to offer a suggestion.  I usually configure my settings to have the start screen as "Previous Screen" or "Resume Playback".  If PictureFlow is running on shutdown, the start up screen becomes the "Plugins" screen or the WPS screen respectively.  Both require navigating back to the PictureFlow selection.  It would help on startup if "Previous Screen" was configured, then the selected PictureFlow screen would be the startup screen.  Also, if "Resume Playback" was configured, then the Pictureflow track list would be the startup screen if it was the previous playback screen.  As it is, the WPS screen is the startup screen.

3. Some way to toggle between WPS and PictureFlow would be nice.  Perhaps a quickmenu item which remembers the previous PictureFlow screen would be useful.  PictureFlow allows selection to go to WPS but there is no direct return route.  As a general enhancement for all items including PictureFlow, perhaps a "Previous Screen" selection would help a lot, similar to a TV remote.  It could be a key or a quickmenu item.

I would appreciate some indication as to whether these types of enhancements are being considered or have already been added to recent revisions.

Thankyou for reading this.

Title: Re: PictureFlow Improvement
Post by: [Saint] on January 01, 2010, 08:19:57 PM
1.  The albums are arranged by album title and if you have many albums, it would help if they were ordered by artist/album.

I guess this depends entirely on which type of ordering you expect it to be in.

The people who expect it to be ordered alphabetically might not see eye to eye with this however.


It would help a lot if PictureFlow displayed the artist and album tag information in separate lines and ordered the album art by artist/album.

Personally, I disagree.

Do you perhaps mean that "you yourself would find it usefull, and *possibly* some others may too", instead of "this is the way it should be"....?

A compromise could be a "Sort By" option in the settings that allowed the user to choose the sorting order (default *should* be alphabetically, by title in my opinion though), with various options for sorting to suit the users personal preference...


Just a suggestion,
[St.]


EDIT:

If you enjoy playing albums as I do, it is a great way to quickly get to the album of choice.

Doesn't it take quite a few more menu selections (and as a result, more time) to navigate to a specific album using the Pictureflow plugin than it would to say navigate to the same album using the File or Database menu?
Title: Re: PictureFlow Improvement
Post by: Avalon on January 02, 2010, 05:43:36 AM
Thankyou for commenting.

Of course I agree.  The beauty of Rockbox (for me) is the variety of options and the ability to tailor them to the user preferences.

My comments only reflect what I would see as slight improvements for my use of the PictureFlow demo if it is to remain a demo and is not added in some way to the main menus.

Quote
A compromise could be a "Sort By" option in the settings that allowed the user to choose the sorting order (default *should* be alphabetically, by title in my opinion though), with various options for sorting to suit the users personal preference...

Great idea!  The PictureFlow settings could have the option added to select if artist name is desired for display and sorting (alphabeticaly).

Quote
Doesn't it take quite a few more menu selections (and as a result, more time) to navigate to a specific album using the Pictureflow plugin than it would to say navigate to the same album using the File or Database menu?

I agree...that was the reason for my comment.  Some may want to remain in PictureFlow when you power off/on to avoid having to navigate back to the last screen.  Since there is no way to directly get back to PictureFlow from the WPS, the last screen selection may be a way of doing this.  This may be useful for other demos and plugins as well....just a thought.





 
Title: Re: PictureFlow Improvement
Post by: M_Koga on March 12, 2010, 06:34:20 AM
Some may want to remain in PictureFlow when you power off/on to avoid having to navigate back to the last screen.  Since there is no way to directly get back to PictureFlow from the WPS, the last screen selection may be a way of doing this.  This may be useful for other demos and plugins as well....just a thought.

I wonder what it would involve to include a primitive run-at-boot-time function? Not a batch processor, just something simple like CP/M used (it's been decades since I've played with CP/M, I've by now forgotten more than I ever knew), as I recall, there was a trick we used to stuff a SINGLE command into a buffer, which would be executed ONCE, the next time the OS booted.  (To invoke execution of multiple commands, we had to... boy, reaching way around to the back pages of my brain here... I think we had to take a list of commands, put them into a file in reverse-order, and then use the SUBMIT utility as the single boot-time command).

If it WAS possible to stuff a single command into a slot to be executed at boot time, then one user could have his player boot into Pictureflow, another could have his start out with the Clock display, and so forth.
Title: Re: PictureFlow Improvement
Post by: torne on March 12, 2010, 08:08:16 AM
You can do this already, but it's not compiled in by default. There's a #define to enable booting a plugin (with a specific name) automatically on start.
Title: Re: PictureFlow Improvement
Post by: pabouk on March 15, 2010, 05:13:24 AM
Is there a sensible reason why the possibility to run a plugin after boot is not compiled by default?

I am missing possibility to run a (LUA) script after boot.
Title: Re: PictureFlow Improvement
Post by: Llorean on March 15, 2010, 06:00:35 AM
It would mean checking for the presence of another file at boot, further slowing down the boot process (which in my opinion has gotten way too slow recently already).

There may be other reasons as well.
Title: Re: PictureFlow Improvement
Post by: pabouk on March 16, 2010, 06:23:12 AM
I do not know how is the autorun currently implemented in SVN but it is not necessary to always check for an existence of a file. Autorun could be a configurable parameter with possibility to enable / disable it (or even select a name of the autorun file). In addition I think that testing for a presence of a file is not very time consuming with directory cache enabled.

I hope I am not diverging the theme of this thread too much. If yes please excuse me and delete this message.
Title: Re: PictureFlow Improvement
Post by: Llorean on March 16, 2010, 06:29:06 AM
An enabling directory cache also slows down startup, so for startup to not be slowed down in one way, it must be slowed in another?
Title: Re: PictureFlow Improvement
Post by: torne on March 16, 2010, 07:20:53 AM
Autorun could be a configurable parameter with possibility to enable / disable it (or even select a name of the autorun file).
This is probably sensible, but would need someone to implement it. It could work similar to selecting a background bitmap...
Title: Re: PictureFlow Improvement
Post by: pabouk on March 16, 2010, 07:25:02 AM
Of course directory cache slows down startup significantly. That is the reason why I wrote it as just an unimportant additional secondary argument for users which already use directory cache. Maybe it was not clear.

I do not know any statistics but for me personally the directory cache adds so much to the player usability that I do not hesitate to enable it. Indeed the longer startup is unpleasant but it is just a little price for the advantages during runtime.
Title: PictureFlow integrated with WPS
Post by: csavery on May 12, 2010, 06:46:01 PM
I just saw this topic and it's related to what I wanted.

So I went ahead and coded this now for my own use and have it working here.

I haven't made a patch yet but if others want an WPS integrated PictureFlow I'd be happy to make a patch.

What I've done:

Added a setting to PictureFlow for "Auto WPS". This causes PictureFlow to goto to WPS when an album is played (with Set key). It also saves a "last_album" value so it knows where to come back to.

Added a PictureFlow WPS Hotkey setting. This causes the * hotkey in WPS to load PictureFlow directly (which now remembers which album it was centered on). I wanted to make it work with generic plugins but the Hotkey menu doesn't currently support a filename parameter, so I hard coded PictureFlow.

It works quite well. You can pretty much instantly bounce back and forth between PictureFlow and WPS to use it as album selector. I'm using it but haven't given it a thorough testing. It's fresh still.

As for autorun, well, if you boot into WPS then PictureFlow is just one key to select a new Album. Ta Da.

Oh, I had to add a new language string for the hotkey setting as well.
Title: Re: PictureFlow Improvement
Post by: Vague Rant on May 14, 2010, 09:25:57 AM
So is that to say that the track list display from PictureFlow is unavailable as a result of our changes? It sounds interesting, not particularly useful for me as a Clip+ user (monochrome screen makes PicFlow a bit ugly) but definitely something I'd be willing to test out.

EDIT: Meantime, there are a few improvements which could make PictureFlow a lot more usable on small/mono screens like the Clip series.

(http://i41.tinypic.com/2mmygx3.png)

Here's how I have it set up at present, but there are several issues:

1. The "show album title" setting is not saved, and simply defaults to displaying at bottom at all times. The Clip series work best with the title displayed at top, as the top 16px are yellow/black (and the bottom 48px are blue/black).

2. The covers are practically unusably small; I have them zoomed out to 51% and that's the reason for their size; the reason for this is that otherwise the covers overlap with the yellow section, which creates a jarring disconnect both in colour and spatially--there's a ~2px "gap" between the yellow and blue areas. Two things might assist with this; firstly the images need to be "forced" to remain in the bottom 48px, secondly it'd be nice for all targets if there were an option to disable the reflections and allow the covers to take up that space; certainly the reflections are pretty on devices which can display them meaningfully, but the increased size may well be preferred on all devices.
Title: Re: PictureFlow Improvement
Post by: csavery on May 14, 2010, 10:51:21 PM
Vague Rant: keep in mind that my changes are just something I've done for myself and are not merged with the general Rockbox version. I do have a patch now which can be done against the latest svn build.

Regarding track list I chose to have "select" first click go to track list and second click start playback and go to WPS. I was thinking about having it go direct on first click and decided to play with it for a while and see what I preferred. I've also added another small change so that when a playlist ends or is stopped the WPS reverts back to the PictureFlow rather than dumping you into the tracklist as usually happens. This is because otherwise to get back to PictureFlow you have to go via the main menu again since you can't get to WPS when nothing is playing.
Title: Re: PictureFlow Improvement
Post by: saratoga on May 15, 2010, 01:06:45 AM
If you haven't already, you probably want to go talk to kugel on IRC about that patch.  Hes the most recent person working on pictureflow. 
Title: Re: PictureFlow Improvement
Post by: csavery on May 15, 2010, 03:18:55 AM
saratoga: I did post a note about the patch on IRC but didn't know about kugel. No one replied about the patch so I don't know that there's any interest. That's kind of odd because I find the feature quite nice.

I have updated my patch again to support both modes. "Direct" will go to WPS on first click, "Via Track list" will go to the track list first and a second click takes you to WPS.

I changed the setting menu item to "WPS Integration".

The patch is in the patch tracker.
Title: Re: PictureFlow Improvement
Post by: Vague Rant on May 19, 2010, 12:54:11 PM
While I did make this by hacking around in pictureflow.c, it should be considered as nothing more than a mockup as my changes unilaterally disabled the reflection and resulted in a divide by zero in the code; but here's how PictureFlow would look with reflections turned off, allowing for much larger (by a factor of 1/3) album art.

(http://i49.tinypic.com/s5hkye.jpg)

As I say, my changes were horrible and ugly, but I would immensely appreciate if anyone was interested in applying a similar functionality as a setting in PictureFlow.

Also it's worth noting that the inability of PF to acknowledge album title display location appears to be a bug and has been filed as FS#11292 (http://www.rockbox.org/tracker/task/11292).
Title: Re: PictureFlow Improvement
Post by: csavery on May 20, 2010, 06:07:04 PM
What changes did you make do disable reflection?

It looks like the bitmaps are being scaled up in your picture as they are jaggy. That seems to imply you are using the bitmaps stored for the smaller size from the cache. The code probably should change the bitmap height when the albums are cached as well so that they are the right size. They will look much better using all pixels available.

I could do this change for you as a setting option but I'm interested in what changes you tried already.
Title: Re: PictureFlow Improvement
Post by: Vague Rant on May 20, 2010, 06:29:07 PM
Actually that jagginess is just a result of me scaling up the screenshot from 128*66 to 256*132 (2:1); it would be almost unbearably small otherwise. I've been using my slightly modded version on my Clip+ and it looks fine, just no reflection.

Unfortunately I'm not on the machine I did the edits on, but give me a minute to check the source and I'll see if I can recreate it ...

In pictureflow.c, I believe I changed this:
Code: [Select]
#define REFLECT_TOP (LCD_HEIGHT * 2 / 3)
#define REFLECT_HEIGHT (LCD_HEIGHT - REFLECT_TOP)

To this (cringe):
Code: [Select]
#define REFLECT_TOP (LCD_HEIGHT)
#define REFLECT_HEIGHT (LCD_HEIGHT - LCD_HEIGHT)

REFLECT_TOP would appear to be the actual area where the cover is displayed, while REFLECT_HEIGHT is the reflection, rendered over 1/3 of the LCD_HEIGHT (basically, LCD HEIGHT - LCD HEIGHT * 2 / 3).

Honestly all the programming I've done was some TI-83 BASIC in high school math when I should have been working, so that may go some way to explain why I used such an ugly hack to do this. It's probably of minimal usefulness to anyone trying to implement this in a way that could ever be committed, hence why I didn't bother posting my changes earlier. Maybe this will point you in the right general direction, though.
Title: Re: PictureFlow Improvement
Post by: csavery on May 20, 2010, 07:20:22 PM
Ok. Thanks. I just wanted to see how extensive you had made changes. You're probably getting a divide by zero error because the reflection height is reduced to 0.

Anyway, I'll have a look at the code again and test out some changes that skip over the reflection code and adjust the heights at runtime instead using the defines. This way it can be changed via the settings. Also will have to alter the build cache code since it currently uses the defines.

I'll post back here when I get somewhere - though I won't be able to test it on a Clip with reduced screen I should be able to try on the UISim. And then you can try it out.

UPDATED - I have this working for Clip+ in Sim now. I'm just cleaning up some side effects found on my Fuze when reflection is turned off. I'll post it as a seperate patch in Flyspray soon.

Also see I posted a fix for your "album title" bug, FS#11292.
Title: Re: PictureFlow Improvement
Post by: Vague Rant on May 22, 2010, 02:01:45 PM
Thanks for the PM, csavery, a hectic week has left me unable to follow development as closely as I would have liked.

Sorry I haven't been by sooner to test your changes, it looks like you've done some stellar work here. Just about to compile right now and will let you know how it goes on hardware as soon as it's done (compiling from scratch on a slow netbook).

EDIT: Or not, looks like Flyspray is still nonworking.

EDIT2: Well as long as we're waiting, I'm messing with that ugly PF hack I did, and while I really don't want to be the guy going "Hey csavery, add this, now add this" (you're just so good at it) one minor niggle with the Clip+ is the tracklist, which uses gradients of brightness on titles further from the selected one; it ends up looking just kind of weird on the Clip+, though you can't tell in the simulator because it actually simulates a greyscale rather than monochrome screen. To approximate multiple colours, Rockbox flickers pixels at different rates in order to foster the illusion, but this looks awkward when applied to text; if you or anyone else had any interest it'd be nice to see a check for mono screens here and switching out of the multicolour tracklist for a monochrome one closer to the style of Rockbox's own menus (plain, as it were). Obviously, as always, this is just a none so subtle "This would be nice"; it's kind of a limited interest feature, especially considering I'm not aware of anyone who's interested in working on PictureFlow and uses a monochrome device, so this making it into anybody's workload is not a major concern.
Title: Re: PictureFlow Improvement
Post by: csavery on May 23, 2010, 09:33:35 PM
I've made a patch changing the track list to non-gradient.
Just waiting for FlySpray to be up and I can post it for testing.
It works ok for me in Sim.
Title: Re: PictureFlow Improvement
Post by: Vague Rant on May 24, 2010, 03:33:29 AM
That's fantastic, you've really improved the PictureFlow experience for us small-screen mono weirdos; so much appreciated. Looking forward to the return of Flyspray.

EDIT: Huzzah, site's back; finally got a chance to apply your two patches for the title display bug and the reflection setting (couldn't apply both but did the title bug patch "manually" as it was only one line); tested them on hardware and in sim and they behave perfectly and identically in each. PictureFlow is really looking professional now even on extremely limited screens like the Clip's; just great.
Title: Re: PictureFlow Improvement
Post by: csavery on May 24, 2010, 09:41:38 AM
Just posted this mono track list as FS#11310 (http://www.rockbox.org/tracker/task/11310).

Title: Re: PictureFlow Improvement
Post by: yelped on May 24, 2010, 12:51:34 PM
Awesome! You're really doing great work!