FS#9953 - Add Playback Control to more plugins

Attached to Project: Rockbox
Opened by Joshua Simmons (mud) - Wednesday, 25 February 2009, 18:10 GMT
Task Type Patches
Category Plugins
Status Unconfirmed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


I've noticed that many plugins don't have the Playback Control menu even though they could. I'm going to have a go at fixing that.

I've categorised the plugins which could use the menu like so:

Already have a standard-ish menu (not bitmap), it just needs to be added:

These are the easiest case, it's just a matter of adding the menu item.

Don't have a menu that makes sense to add Playback Control to (either they don't have a menu at all, or they only have a start-menu that can't be usefully returned to):

These are a mixed bunch. Some could actually use a menu, and some could just have a key assigned to bring up the Playback Control menu. More involved than the first bunch in general.

Already have a menu, but it's really custom in some way. They either need to be switched to more standard menus, or something special needs to be done:

These will probably be the most work.

Let me know if I forgot any plugins, or if you think it doesn't make sense to add the menu to a plugin that I've listed above.

Attached is a patch for the first bunch. The others will be coming eventually.

I'd appreciate it if you leave this FS entry open until I get to the second and third bunch, even if the first bunch happens to get commited to svn.
This task depends upon

Comment by Joshua Simmons (mud) - Thursday, 26 February 2009, 07:42 GMT
Added playback control to brickmania. Depends on  FS#9956  (change brickmania to use a standard menu).
Comment by Thomas Martitz (kugel.) - Thursday, 26 February 2009, 16:55 GMT
I'd appreciate if you don't open a task for each plugin.

The topic of this task is pretty generic, so if you choose good filenames for the patches, everything can be here.
Comment by Thomas Martitz (kugel.) - Thursday, 26 February 2009, 17:11 GMT
I just committed the first patch. Thank you very much.
I'll leave this open as you wanted.
Comment by Joshua Simmons (mud) - Thursday, 26 February 2009, 17:32 GMT
linuxstb pointed out that chessbox is an overlay on archos targets. It shouldn't have the menu in that case, so here's a patch to remove it on archos targets.
Comment by Joshua Simmons (mud) - Thursday, 26 February 2009, 17:42 GMT
Sorry, attached wrong patch. Here it is again.
Comment by Joshua Simmons (mud) - Thursday, 26 February 2009, 22:10 GMT
Here's pegbox.

pegbox-menu.patch converts pegbox to use a standard menu. In addition to this patch, delete apps/plugins/bitmaps/native/pegbox_menu* .

pegbox-playback.patch goes _on top of_ pegbox-menu.patch and adds the playback_control menu.

kugel: Thanks for commiting that first bunch. I'll try to keep the patches all in here like you requested.
Comment by Joshua Simmons (mud) - Friday, 27 February 2009, 00:21 GMT
chessclock was way easier than I thought it would be.
Comment by Joshua Simmons (mud) - Friday, 27 February 2009, 01:39 GMT
rockpaint turned out easy as well.
Comment by Joshua Simmons (mud) - Friday, 27 February 2009, 23:48 GMT
I finished group 2 and I believe I'm done now. Attached are two patches, playback_control_or_quit.patch adds a function of that name to lib/playback_control.h, and is used in group2.patch. group2.patch adds the Playback Control menu in some fashion to the following plugins:
flipit, maze, oscilliscope, robotfindskitten, rockblox, rockblox1d, rocklife, sliding_puzzle, snake, snake2, spacerocks, star, stopwatch

Most of them now have a short menu upon "exiting" which lets the user choose Playback Control, Resume, or Quit. The plugins that had a pause mode, I changed the pause mode into a menu which allows them to select Playback Control, Resume or Quit. It's less consistent this way, but highjacking pause mode like that is superior to preventing immediate exit from plugins.

In summary, to get all of my changes that aren't in svn (as of r20133), the following patches should be applied roughly in order:
Delete apps/plugins/bitmaps/native/brickmania_menu*
Delete apps/plugins/bitmaps/native/pegbox_menu*

If you want all of the changes, all_changes.patch includes everything listed there. (you still need to delete the bitmaps manually, the patch can't do that)

If all of these patches get resolved in one way or another (accepted or rejected), this FS entry can now be closed.
Comment by Johannes Schwarz (Ubuntuxer) - Sunday, 08 March 2009, 14:13 GMT
Hi, I have tested all_changes.patch and it works great for me. I have some ideas to improve game menus in rockbox.
- same game menu for all games including playback control
- only display resume, if you can select it
- add help to all game menus, particularly to complex games like goban
I have written a patch for brickmania, which display only resume, if you can select it. It's my first patch, so please be tolerant. I'm not really satisfied with the style of my code, but I hope you can tell me, how to improve it.
Comment by Johannes Schwarz (Ubuntuxer) - Sunday, 08 March 2009, 14:14 GMT
Brickmania Game Menu Patch
Comment by Johannes Schwarz (Ubuntuxer) - Tuesday, 17 March 2009, 22:26 GMT
I have rework brickmania:
-add a small menu to choose difficulty
- correct buttons on Sansa

I hope it works fine for you.
Comment by Johannes Schwarz (Ubuntuxer) - Sunday, 22 March 2009, 18:56 GMT
I have added a highscore list, which display the five best games.
I have to change highscore.c, but it hasn't got any effect on other plugins, which use this file. The function highscore_update() just returns the position of the input in the list.
Comment by Johannes Schwarz (Ubuntuxer) - Monday, 23 March 2009, 21:39 GMT
add highscore list to rockblox
improve game menu in snake