Commit graph

1646 commits

Author SHA1 Message Date
Michael Sevakis
023f6b6efd Get rid of some superfluous single-purpose functions in playback.
* Remove explicit tracking of elapsed time of previous track.
* Remove function to obtain auto skip flag.
* Most playback events now carry the extra information instead and
  pass 'struct track_event *' for data.
* Tweak scrobbler to use PLAYBACK_EVENT_TRACK_FINISH, which makes
  it cleaner and removes the struct mp3entry.

Change-Id: I500d2abb4056a32646496efc3617406e36811ec5
2013-07-13 00:08:51 -04:00
Michael Sevakis
ffa8626b0c Fix whitespace in files for following commit.
Change-Id: I4adb8a152e9b99fcd26d95da7334d7d0cbe2a036
2013-07-12 21:39:06 -04:00
Thomas Martitz
be5fadff94 skin_engine: Fix crash on skin_reset (e.g. on language change).
Change-Id: Ie2da1a1ba9d2dad76e2f1c45abd907c3ede4f56c
2013-06-23 20:55:46 +02:00
Thomas Martitz
4263f67e4b Fix warning (move variable into #ifdef section).
Change-Id: Ic6ba4b786eef00eab7f20abd5fbf2bcb8977993a
2013-06-09 21:08:49 +02:00
Thomas Martitz
770fadddd6 Fix reds (this code needs #ifdef HAVE_ALBUMART)
Change-Id: Ia50cd846d5451b0cb5cf3a6f8097ea9fe3b3c60a
2013-06-09 21:01:47 +02:00
Thomas Martitz
58b4e71d32 skin_engine: Fix albumart logic on skin reloading.
This logic checks whether the skin's albumart dimensions differ from the
previous skin to force rebuffering if necessary. This was broken since
a while as the necessary information was reset.

Change-Id: I3b9f3a819c6af202af8ad66c13742f704ce45ab1
Reviewed-on: http://gerrit.rockbox.org/476
Tested-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2013-06-09 17:39:08 +02:00
Jonathan Gordon
83d3f1d3f6 simplelist: Fix simplelist_set_line_count() so it actually sets the count
(hopefully) Fixes FS#12838

Change-Id: I932184afaf7b65121a0c459cd03c8482e3bad22b
2013-03-28 22:32:57 +11:00
Jonathan Gordon
3a13150a81 Revert "skin tags: fix the id3 track/disc numbers in conditionals"
This reverts commit a395a34671.
And fixes FS#12836 - need to rethink how to do this later.
2013-02-28 16:53:41 +11:00
Jonathan Gordon
d76dca165b checkwps: show a helpful error if the parser callback errors out
Change-Id: Ie3e35292ba8d74f0ff3d1bb3483a5e83aae0e6b6
2013-02-26 21:18:16 +11:00
Jonathan Gordon
657b91acfa skin engine: Relax the AA load width/height checks
d6c6c07 changed the AA load tag to make sure the image width/heights
fit in the viewport, Revert this because it doesn't actually make
sense to check it here.

Change-Id: I3fe4b074ef8fe88560f2f894ec651027ea3642f4
2013-02-26 20:47:46 +11:00
Jonathan Gordon
a395a34671 skin tags: fix the id3 track/disc numbers in conditionals
Fix the %in tag so %xd(a, %in) works as expected

Change-Id: I33dd3ae092a66b1363c9cf3afa08075e4534af7c
2013-02-21 21:14:58 +11:00
Alex Mayer
ee758c5a97 Theme Engine: Fix progress bar slider (FS#12823)
Fix the need to resize progress bar when using a slider.
Slider stays in bounds. Progress bar is not resized.
Works well with square sliders that should not overlap
edge of progress bar. also works with rounded sliders.

You can also make progress bar the full width of screen
while using a slider. Before if you would make the
progress bar the full width of the screen and add a slider
the progress bar would look like it was padded on both ends.

This fixes FS#12823

Change-Id: I60345efc5cd0f46286f2591ed032f0d9320d1c3e
Reviewed-on: http://gerrit.rockbox.org/402
Reviewed-by: Hayden Pearce <saint.lascivious@gmail.com>
Tested-by: Hayden Pearce <saint.lascivious@gmail.com>
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2013-02-19 07:27:54 +01:00
Jonathan Gordon
1cc0809ca2 list widget: undo part of aaf3065
It fixed a simulator warning in the skin debug screen but broke
the icons in the database folder chooser. Proper fix shortly.

Change-Id: If366daacc440f937c40960112477b8f6136b72b9
2013-02-13 09:22:24 +11:00
Jonathan Gordon
aaf30651df skin_engine: Add a debug screen to display skin ram usage
Change-Id: Ida9c33211d9360ac88e30a2cf8df9f191bee8b45
2013-02-12 21:01:13 +11:00
Jonathan Gordon
69228f92db simplelist: Make better use of the static buffer and simplify API
Change-Id: I1327fcd01d6f817be6c7018d30d33446c9b57287
2013-02-12 21:01:13 +11:00
Jonathan Gordon
e41aed633f Fix (c) notice which was apparently copy/pasted from a completly unrelated file
Change-Id: I465bd6a70e911c7a56213af82b4db64c25c294f7
2013-02-12 21:01:13 +11:00
Jonathan Gordon
948dbed0af remove unused members
Change-Id: Ic0a0d300c9b7701c9173121d9d36a4dd4a28d8bd
2013-02-11 00:11:25 +11:00
Jonathan Gordon
d06779d987 gui: Fix \t indenting for RTL langs in the lists (DB folder chooser)
Change-Id: If033547ad979a2ebdd463723a31eb15e718e6f8b
2013-02-06 19:57:21 +11:00
Thomas Martitz
48bc762db1 lists: Fix item indentation in RTL to match LTR behavior (which is no indentation when the scrollbar isn't shown, apparently).
Change-Id: I5c36d34638fa7a9cba9468b7ee07a07a836fadec
2013-01-18 18:02:47 +01:00
Thomas Martitz
2ffde90c69 touchscreen: Fix kinetic and swipe scrolling outside of the list viewport.
There were some bugs, especially when the user scrolled above the
list viewport. One bug made Rockbox completely unusable once triggered.

Change-Id: I9bb4722ff4381db189058e9a19ea30b2c69e87d9
2013-01-17 23:29:35 +01:00
Jonathan Gordon
d6c6c0767c album art display: Fix RTL handling for the album art skin tag
AA was broken when an RTL language is used, causing it to not
be displayed.

Also fix th out of bounds handling when width/height > viewport

Change-Id: I4899cd32ec58107c987e3cc0e8df582963bdcf62
2013-01-15 23:10:37 +11:00
Jonathan Gordon
c500f4efe5 radio screen: Disable displaying radio art, FS#12797
With radioart enabled there appears to be buffer corruption when
the image is loaded causing the player to data abort in skin_render_line()

So, disable the code untill someone can fix it.

Change-Id: I6acf3f76ce38aa2784b1b24ed6da29a9c5bee479
2013-01-03 23:09:01 +11:00
Jonathan Gordon
685cf59008 9 segment bitmap drawing:
Use %x9(id) to draw an image in the whole current viewport using the
9 segment drawer (which draws the corners as normal and *tiles*
the middle segments to the needed width/height).

Future work is to make it scale instead of tile

Change-Id: Ic3ed1cad93f96091694801eb442e0da5a2401203
2012-12-09 17:11:19 +11:00
Frank Gevaerts
e6fd7d2d1f Make the recorder build with HAVE_LCD_FLIP disabled.
Change-Id: I5875dc5c59606867299cc0e30d869b817e879ade
2012-08-28 21:36:23 +02:00
Thomas Martitz
85a6715afa yesno/touchscreen: Only accept on touch release.
Keeping the touchscreen pressed during a screen transition can lead
to accidental actions. action_wait_for_release() currently doesn't work
properly for touchscreen, so it's better to not transition before release.

Change-Id: I37bd67945b05fff1b4a5452313f6415a247e3af9
2012-08-15 23:10:28 +02:00
Thomas Martitz
5d9b26f6a2 folder_select: fix problem when selecting / as folder.
Change-Id: Id4880267e8478cebe073b958a58fef1ac22dd336
2012-08-15 23:10:28 +02:00
Thomas Martitz
54e6bafada Fix missed buttons in action.c if action_wait_for_release() was called
with no button pressed.

If e.g. two yesno screens directly follow each other the button release of the
first one was incorrectly accepted in the second one. The fix exposed another
problem in action.c if action_wait_for_release() is called when no button is
actually pressed. The next press was silently eaten.

This time re-introducing FS#12723 is avoided by leaving the offending hunk
out in yesno.c.

Change-Id: Icfe57375067f51f5c8177f3585cd47ceec9dcf0d
2012-08-15 23:08:26 +02:00
Fred W. Bauer
53c6bab75b We should reload the playlist control file when leaving
USB mode to make sure the filedescriptor is correct.

Change-Id: I2905eaf27533d935a0458b630372584e353c7160
Reviewed-on: http://gerrit.rockbox.org/294
Reviewed-by: Michael Giacomelli <mgiacomelli@gmail.com>
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2012-08-14 06:23:24 +02:00
Jonathan Gordon
70eb3e6a56 Revert "fix erroneous button read in yesno screen and missed buttons in action.c."
This reverts commit 15775c8bad.
2012-08-14 12:12:15 +10:00
Jonathan Gordon
bd6e6ed403 folder selector: handle long press to invert selection/select all.
Doing a LONG PRESS on a:
- unopened folder will select all its sub-folders
- opened folder will invert the selection of its sub-folders

Change-Id: Ia7fd8dc3b940f60adee3f0314bf6bba5eb2c7b3b
2012-08-13 15:03:12 +10:00
Jonathan Gordon
7c31ff2fb0 Fix skin engine error message
Change-Id: I2250be6d4e82cd5d91ed1a2c080e263dd7543129
2012-08-06 10:35:22 +10:00
Thomas Martitz
8c655cfdc0 New GUI browser to select one (or more) folders.
The browser lets the user pick one or more directories in a convinient
GUI browser. The initial directory list is read from a string
(separated by colons) and the resulting list is written back to the same
string (again separated by colons).

Note: The work was initially done by Jonathan Gordon, however I changed
it substantially so I claim autorship.

This selector is going to be used for autoresume and database scan folders.

Change-Id: Id1d3186dad783411eb5c6056ce93f5b6123c7aa0
2012-07-30 21:20:51 +02:00
Jonathan Gordon
9dd2eb49be skin_engine: Support percentages for viewport positioning
%V(0,50%,75%,50%,-) - make a viewport at x=0, y=half the lcd height,
75% lcd width and the remaining height (the other half) of the lcd.

Change-Id: If26ccb65e8dc52c9225f3fd6d7b222d770add0f0
Reviewed-on: http://gerrit.rockbox.org/184
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2012-07-29 04:24:38 +02:00
Jonathan Gordon
08238178d3 lists: Support '\t' in list item text to indent the line containing it.
Change-Id: I1583371228ed477b504c135f81cb59a0c3c931e6
Reviewed-on: http://gerrit.rockbox.org/296
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
Tested-by: Jonathan Gordon <rockbox@jdgordon.info>
2012-07-19 01:21:10 +02:00
Thomas Martitz
15775c8bad fix erroneous button read in yesno screen and missed buttons in action.c.
If two yesno screens directly follow each other the button release of the
first one was incorrectly accepted in the second one. The fix exposed another
problem in action.c if action_wait_for_release() is called when no button is
actually pressed. The next press was silently eaten.

Change-Id: Iaa5f246f7ea1fd775606620a989cdaec74a9305e
2012-07-18 10:28:08 +02:00
Jonathan Gordon
68ee7aac6e skin_engine: Make pressing the setting bar touch region work
might need some tweaking, but works.

Change-Id: I0784cd4fe9996531da6cc275491ff3b4e83cdbcf
2012-07-06 14:28:34 +10:00
Jonathan Gordon
65f9df3083 skin_engine: Allow the %St() (setting) skin tag be used as a bar
%St(<setting name>) or %St(<bar tags>, setting, <setting name>)

Change-Id: I71396d683634d4d1ad2357018c4029ecb4229677
2012-07-05 23:30:06 +10:00
Jonathan Gordon
c413591e7e fix build warnings
Change-Id: Id5f0e84834f1cb74a317bb5653fdb6f665233345
2012-07-05 11:24:08 +10:00
Jonathan Gordon
d336eb30f8 skin_engine: Automatically create touch regions for skin bars
skin bars now automatically create the touch region the same size
as the bar on touchscreen targets. This means touches will
magically "just work" for reveresed bars (rtl or otherwise).

~5% padding is added on all 4 sides of the region rectangle but
this may need to be tweaked.

Please consider the 'progressbar' and 'volume' touchregion actions
to be deprecated.

Kudos to my new wife for figuring out the bleedingly obvious way to
do this!

Change-Id: I997a7bcaa70fce9885808aae27953c7676e9c2ff
2012-07-05 11:15:16 +10:00
Frank Gevaerts
7151111228 Make touchscreen handling work with skinned lists.
Change-Id: I7df93319c8f16f05e840d74b022aab4803bb8f80
2012-06-19 22:02:59 +02:00
Frank Gevaerts
21ddcbec66 CHARCELL doesn't have sbs support, so disable it properly.
This actually fixes a nullpointer dereference.

Change-Id: Ie3e153d72bcacdce46bfe5a514ff77aebdfd7225
2012-06-19 21:53:29 +02:00
Thomas Martitz
2760d578ca touchscreen: Don't hide selection by default. Fixes FS#12675.
Change-Id: Ic7e22ce6280d4105c38f7588717f4cf34c1bb5a3
2012-06-15 13:00:20 +02:00
Bertrik Sikken
d023bf0f5d Fix checks on buflib allocated handles (0 is not a valid handle value)
Change-Id: I8fdc5a59a5062f40a431cd49971390e21631b8ec
2012-06-10 17:15:47 +02:00
Jonathan Gordon
7a009276bc Fix FS#12674 - %ax() doesnt mirror viewport correctly
Change-Id: I10c933542037eeedc9c4be74b3d43a1430ec05b2
2012-05-30 21:17:40 +10:00
Bertrik Sikken
f340768ad5 _lists_uiviewport_update_callback can be made static
Change-Id: I25dfaa1636811a0340d1730a5a8f44caa85b1771
2012-05-20 01:57:49 +02:00
Frank Gevaerts
053722a573 Don't trigger a skin refresh from skinlist_draw()
Thiskin refresh trigger apparently causes the skin and list to continuously
refresh, with the side effect that buttons no longer work.

Change-Id: I4439406176890ac46a3f217bfff43c6935a03a7c
Reviewed-on: http://gerrit.rockbox.org/240
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
2012-05-18 09:48:31 +02:00
Jonathan Gordon
7909bf039f (hopefully) Fix FS#12639 and other skin related buflib corruption issues.
Kudos to funman for figuring out the problem - skin_find_item() rather
stupidly uses the global skin_buffer variable in skin_parser.c which is
fine in the parser EXCEPT it gets changed in skin_render when the sbs
is being redrawn while another skin is loading, so fix this by makeing
skin_find_item() use a local data pointer so a skin_render() during
parsing won't break anything.

Change-Id: I80e1c0efe569c18225e5772159c18ebb21e07332
2012-05-16 22:33:40 +10:00
Thomas Martitz
8689bcc186 Touchscreen: Check if click is outside of list. Fixes FS#12669
Change-Id: Ic036f4c399b89c65bdc43bfdf7111bf4a13be484
2012-05-13 19:15:19 +02:00
Nils Wallménius
d29a11b7a8 Rename HAVE_PITCHSCREEN to HAVE_PITCHCONTROL
Also move the definition to config.h

Change-Id: I36bb5020c5e06b2344292bc05e8c13ccc7a6a1ff
Reviewed-on: http://gerrit.rockbox.org/234
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-09 14:32:38 +02:00
Rafaël Carré
65bb8e4452 Remove extraneous parens 2012-05-06 23:13:34 -04:00