Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2013-01-10

00:00:09lebelliumI try to find a solution with the %LT tag ('Get the current items text') but I don't get it so far
00:00:52[Saint]I haven't looked into skinned lists extensively, perhaps gevaerts knows.
00:01:20[Saint]He's probably the expert on how it actually works, and JdGordon the expert on how it's supposed to work.
00:01:58gevaertsWell, of course it's *possible*. Not necessarily in a nice way though
00:03:00gevaertsJust some conditionals based on the active screen (main menu in this case) and either the icon type or the text
00:07:38datpanderahoi. i had to format the drive with the rockbox installation. where can i find the jewels highscores in the backup i have? (clip +, if it matters)
00:07:51JdGordonlebellium: yeah, as gevaerts said, its easy enough iusing %?if(%Lt, =, "playlist catalogue")<Playlist|%Lt>
00:08:14[Saint]If you have a backup, just restore it overtop.
00:08:19[Saint]datpander: ^
00:08:47datpanderits an older version and it had problems with reading the 32gb memory card
00:09:07[Saint]Then update afterward.
00:09:10gevaertsdatpander: I think those are in .rockbox/games
00:09:24gevaertshm, no
00:09:57datpanderi think i found it in .rockbox/rocks/
00:10:03datpanderthen games
00:10:27 Quit bertrik (Remote host closed the connection)
00:10:52[Saint]If you find it, great. Copying the backup back to the disk and then updating will also "just work", too.
00:11:17[Saint]That's usually my default reaction if I end up nuking my disk.
00:11:27*[Saint] <- lazy
00:11:34datpanderthanks for pointing me in the right direction. saint: yeah, i suppose. but i think something went terribly wrong even before that backup and i would have had to resort to an even older one
00:12:07[Saint]No, no no...the update would restore anything meaningful, in theory.
00:12:08 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
00:12:20lebelliumJdGordon: I already wrote "%?if(%LT,=,resume playback)<resume>" but it doesn't work, I have to figure out what's wrong in my code
00:12:23 Quit mikroflops (Ping timeout: 246 seconds)
00:12:51 Quit wodz (Quit: Leaving)
00:12:55JdGordonthat should work...
00:14:08datpanderscores and even the savegame are back. thanks for your help, bb :)
00:14:13 Join mikroflops [0] (
00:14:17 Quit datpander (Quit: CGI:IRC (EOF))
00:20:05lebelliumJdGordon: Okay, that works now. But only in English of course. That's where the trick stops :D
00:20:34 Quit Robin0800 (Read error: Connection reset by peer)
00:20:57***Saving seen data "./dancer.seen"
00:21:05[Saint]All the internal strings are English.
00:21:12[Saint]So, that makes perfect sense.
00:22:04KatuWhy is it that the transparent corners of my progress bar block out the corners of the backdrop image that I am using as a border? On other themes, I don't observe the issue at all, even in the same context
00:23:00gevaerts[Saint]: this isn't an internal string. It's the actual shown text
00:23:33gevaertsKatu: are you using an alpha channel or the magic pink thing?
00:23:58[Saint]My mistake, I thought the comparison was made against the string used for the menu.
00:24:04gevaertsIf the pink thing, check if it's really *exactly* the right colour
00:24:23[Saint](255,0,255 true magenta)
00:24:47KatuMagic magenta. The magenta color doesn't display though. Instead, it displays a color match to the background image, and shows that over the image directly below it
00:25:05Katu(Which is how I have seen other themes do it as well, thus my confusion)
00:25:24[Saint]How are you doing the bar's backdrop?
00:25:35[Saint]Are you using the bartag's own backdrop param?
00:25:50[Saint](or trying to layer viewports, which will fail)
00:26:03KatuNo, I have a seperate image tag one line above it, in the same viewport
00:26:05lebelliumokay, does anyone want to see my ugly code and give a feedback and some suggestions? :D
00:26:21[Saint]Katu: yeah, you can't do that and expect it to work.
00:26:31[Saint] anything other than chance
00:26:48KatuAhh, gotcha. So what is the better way to do it?
00:26:55[Saint]One sec
00:27:27[Saint]When in doubt? Manual.
00:28:17*[Saint] will give a syntax example, one second
00:28:28KatuHaha, fair enough. Must have missed that entry
00:29:55JdGordonlebellium: replace the "playlist catalouge" with %Sx(playlist catalogue) and it will get the correct string for any language
00:30:02[Saint]Katu: ^
00:30:04JdGordonbut your text will be wrong
00:30:23JdGordongevaerts: [Saint] any comments on g347?
00:30:23[Saint]In that example "progressbar" and "progressbar-backdrop" are identifiers to images.
00:30:25KatuAhh, ok. I will give that a try, thanks
00:30:26fs-bluebotGerrit review #347 at : skin_engine: User selectable track data display by Jonathan Gordon (changes/47/347/6)
00:30:44KatuSo it says that the image must be the same size as the progress bar itself, so in that case should I use magic magenta to make the progress bar the same size as its backdrop, since I want to have a border around the bar?
00:31:16KatuPerfect, thanks. Gonna give that a shot now.
00:31:29[Saint]You can also stop using magenta, if you wish, and use an actual alpha layer.
00:31:53[Saint]32bit bitmap with alpha layer is supported
00:32:40KatuAhh, very cool. That would make looking at the images much nicer, without the magenta in there
00:34:15lebelliumJdGordon, [Saint], gevaerts, could you please have a look at my code . Do you think there is a less tricky way to do it or is it the best way given the skin engine limitations? :)
00:35:06[Saint]Assuming all the tiles are the same height, I'd use a bitmapstrip...but that's me.
00:35:18lebelliumyep true that
00:35:20*gevaerts nods
00:35:47[Saint]Other than that,
00:35:56gevaertsHow does wavy do it?
00:36:05 Quit ender1 (Quit: The secret of success is sincerity. Once you can fake that, you've got it made.)
00:36:21[Saint]gevaerts: I don't know, ask the nutcase that wrote it.
00:36:32JdGordoneww thats nasty :)
00:36:59gevaertsRight. Bitmap strip indexed on %LI
00:37:14JdGordonlebellium: you could use the backdrop viewport to draw the selected rectangle around the icon
00:37:16JdGordonthat will make it a little easier
00:38:45lebelliumwhen selected, the icon is a few pixels bigger, so I'm not sure I need a selected rectangle?
00:38:45*[Saint] would just have a single "is selected" image, and add transparency to the non-selected images.
00:39:02JdGordonlebellium: ah then that wont work
00:39:16[Saint]then you could draw the "is selected" part in the backdrop and let it show throgh.
00:39:36[Saint]As opposed to having a different selected/nn-selected item for each.
00:39:37lebelliumnormal icon is 16x16 and selected icon is 18x18, I find it pretty nice
00:39:48JdGordonhardly worth the effort
00:40:03gevaertsJdGordon: you're clearly not a themer :)
00:40:11JdGordonwhat was your first clue?
00:40:30[Saint]...certainly not writing the theme engine :)
00:40:33gevaerts*everything*'s worth the effort in a theme
00:40:41[Saint]It seems to put people under the wrong impression.
00:40:58*gevaerts still has some issues with wavy that might or might not be bugs in the theme engine :)
00:41:28lebellium[Saint] I try to understand your suggestion :D
00:41:32*[Saint] happens to think that this is, in fact, worth the effort, as the RAM savings would be quite vast.
00:42:17[Saint]IUC, you have some form of border that signals the currently selected item?
00:43:13lebelliumselected item = text in another color and bigger icon. No border
00:43:41[Saint]Ah, my mistake.
00:44:18 Quit bertrik (Ping timeout: 248 seconds)
00:45:09[Saint]Oh, it necessary to add all the blank tuples to %cs? Or, is simply %cs<> good enough for the main menu?
00:45:27[Saint]iiuc, the blank tuples needn't be given.
00:45:43lebelliumindeed, let's try without
00:46:23lebelliumnope, without the blank, it applies the main menu style everywhere
00:46:50[Saint]Hum, I would've expected that to work.
00:47:04[Saint]No matter.
00:47:15lebelliumI must admit after one year designing themes, I still don't know when the blanks are needed and when not lol
00:47:29[Saint]Apparently, nor do I :)
00:47:38gevaertsWithout any blanks, or without all the blanks?
00:48:13lebellium%?cs<%Lb(d,50,40,tile)> as suggested doesn't work, it applies this style everywhere
00:48:34lebelliumbut I missed a |
00:48:34[Saint]and "%?cs<%Lb(d,50,40,tile)|>"
00:49:07lebelliumyes! my mistake
00:49:10lebelliumthat works
00:49:43[Saint]that's, odd. And not quite in keeping to the way it works elsewhere.
00:50:02[Saint]but, yay for things working.
00:50:15*gevaerts doesn't see the oddness
00:51:16[Saint]the playback mode, for instance, you can leave out the ones you don't care about without needing to supply a false case or blank cases
00:52:39[Saint]maybe that works by accident.
00:53:07[Saint]Or, a simpler example, not needing to provide a blank false case for most (all?) tags that can have one.
00:53:28[Saint]%xx<foo> should be the same as %xx<foo|>
00:54:03lebellium%xx<foo> could be %xx<foo|foo>
00:54:19[Saint]But it isn't :)
00:56:21lebelliumJdGordon decided :D
00:57:20 Part eckoit
00:57:38[Saint]I understand that true/false is quite different to having multiple cases, but I really thought you could leave out cases past any that you care about without needing to supply blank fields.
00:58:12JdGordonpretty sure %xx<foo> doesnt work because that gets translated magically to %xx<|foo>
00:58:35[Saint]it works for purely true/false cases.
00:58:46[Saint]supplying empty false cases is a pet peeve of mine.
01:00:20[Saint]%?D(1)<first level directory> is just the same as %?D(1)<first level directory|>, ...anything purely true/false, afaik.
01:00:43[Saint]the playback tag also doesn't seem to care if you only supply cases for play/pause/stop/ffwd/rrwd
01:00:59[Saint]despite there being a few more cases for consideration after that.
01:02:18*pamaury managed to changes the ddr clock without crashing \\o/ \\o/ \\o/
01:03:18pamauryok, that was on the fuze+ which is the easiest one because it's already running at top speed at the beginning
01:05:45lebelliumI'm wondering why there are no -or so few- themes with a grid menu while many brand's original firmwares feature such a menu
01:06:35gevaertslebellium: easy. Most theme designers are conservative and lack imagination. Just look at the progress bars!
01:06:58 Quit jhMikeS (Read error: Connection reset by peer)
01:08:29*[Saint] hasn't yet seen another theme that respects locale specific UI guides
01:08:38[Saint]...other than his own, of course ;)
01:09:26[Saint](reversing arrows, question marks, and fill directions for RTL)
01:10:23 Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS)
01:11:22[Saint]I think RTL lang users just get used to being shafted into an LTR world by crappy UI
01:11:53*JdGordon really needs to fucking fix rtl to make it just work
01:12:02lebelliummaybe it's not documented enough in CustomWPS. I mean I never imagined a grid menu is possible with the skin engine until I read the IRC logs about that matter some days ago. "if the last param is 'tile' it will form a grid instead of a list" is the one and only clue
01:12:20JdGordonis that not in the wiki?
01:12:41[Saint]we really need to STOP caring about the wiki.
01:12:46[Saint]it's a big problem.
01:13:06[Saint]It's hard enough keeping one source up to date.
01:13:58JdGordonwell you know my argument... the manual is the wrong place to put theme howtos
01:14:09lebelliumfor me the manual is to know how to use the player, not how to make themes or plugins or whatever
01:14:42JdGordonreally skinning should be its own guide
01:14:43 Join pamaury_ [0] (
01:14:45[Saint]designing your own UI *is* a part of using the player.
01:14:45JdGordonoutside of the manual
01:14:49lebelliummy reference document for themes is the CustomWPS page in Wiki
01:15:15 Quit pamaury (Ping timeout: 252 seconds)
01:15:42 Quit bluebrother (Read error: Operation timed out)
01:15:52[Saint]And, the wiki can have all the howtos it wants, as far as I'm concerned. So long as the manual documents all the theme tags.
01:15:52 Quit fs-bluebot (Ping timeout: 256 seconds)
01:16:16[Saint]Documenting the function of a tag is different to a "howto" example of usage.
01:17:08[Saint]And if the patch you're working on now gets in, which I assume it will, the tags need to be documented in the manual.
01:17:09 Join fs-bluebot [0] (
01:18:21 Join bluebrother [0] (~dom@rockbox/developer/bluebrother)
01:19:06[Saint]with the possible exception of the creation of some plugin to manage the metadata.txt so the user doesn't need to care what the tags mean.
01:19:40lebelliumso the tags can be documented both in the manual and on wiki but "how to make a grid menu" should be rather present on the wiki but is currently nowhere I guess
01:21:12[Saint]Right, yeah, that's what I'm thinking. Documentation for all in the manual with a syntax example, in-depth examples of usage for the wiki.
01:21:14 Quit Poodlemastah (Ping timeout: 245 seconds)
01:21:27[Saint]Now...if only Mr. Someone was real.
01:21:31JdGordon[Saint]: a plugin to manage trackinfo.txt would be pretty simple to do :)
01:24:22lebelliumSo gaeverts, I'm not sure it's a lack of imagination. I just guess most theme designers don't have high enough skills to figure out themselves how to code some harder things and they would need better documentation, in-depth examples on the wiki. But Mr. Somone doesn't exist? :(
01:25:09[Saint]Another reason to not rely on the wiki for documentation is the transient nature of the thing.
01:25:24[Saint]We need to account for the fact that scorche` may blow up tomorrow and we lose it all.
01:26:56lebelliumthe wiki is transient?!
01:28:16gevaertsFor the record, the wiki is not on scorche's server :)
01:28:42[Saint]Ah, ok...I guess a Swede would need to blow up, then :)
01:34:58KatuPhew. Finally got the progress bar to work... I updated the tag, and that got them to overlap properly.
01:35:15KatuWhen I tried doing the alpha channel bmp files, they always ended up with white where it was supposed to be transparent. For whatever reason, photoshop wasn't saving them with the alpha channel when I told it to. So I used GIMP instead, and that took care of it!
01:36:54 Quit lebellium (Quit: ChatZilla 0.9.89 [Firefox 18.0/20121231071231])
01:37:14JdGordon[Saint]: well, if you feel strongly enough, verify the manual has everything and nuke the wiki page
01:39:10 Quit dfkt (Quit: -= SysReset 2.55=- Sic gorgiamus allos subjectatos nunc.)
01:44:33[Saint]Katu: it needs to be A8R8G8B8
01:44:46[Saint]Photoshop may have been doing A1R5G5B5
01:45:37[Saint](or, more commonly put, 32 vs 16 bit)
01:46:20*[Saint] made the same mistake a few days ago :)
01:51:04Katuahhh, perhaps that was my problem. Either way, I'm just gonna use GIMP for the rest of the images, and that will definitely save me the headache hahah
01:51:31KatuNow to tackle the Volume indicator :)
01:52:46pamaury_wodz (logs): I've committed emi frequency scaling, if you are curious about it :)
02:10:40scorche`[Saint]: yeah - multiple people control the main site - no issues there
02:11:57 Quit prof_wolfff (Ping timeout: 256 seconds)
02:11:58scorche`for my stuff, it gets more complicated, but theoretically, gevaerts, rasher, or a number of other people could utilise some privilege escalation exploit on my server and be able to have access to the forums and such ;)
02:11:58 Quit shamus (Read error: Connection reset by peer)
02:12:07 Join shamus [0] (
02:17:34 Join Scr0mple [0] (~Simon@
02:20:24 Quit Scromple_ (Ping timeout: 255 seconds)
02:20:59***Saving seen data "./dancer.seen"
02:24:19[Saint]scorche`: assuming your sever survived.
02:24:45[Saint]I don't want to go asking your widow or immediate family if they know where the snapshots are ;)
02:25:05 Quit pamaury_ (Ping timeout: 256 seconds)
02:25:41[Saint]It isn't so much the person controlling the site, as the data itself. If that exists in multiple places that more than one person can access if need be. Great.
02:26:13[Saint]Now, on an entirely different note...I spotted a "bug"(?) in the way playlists work.
02:26:28[Saint]If it isn't a bug, it is highly non-obvious behavior.
02:27:34[Saint]If you have a playlist loaded, and you're already in playback, if you search through the playlist and pick a track and do "Play Next" nukes the dynamic playlist and leaves only the currently playing track and the newly inserted one.
02:27:45[Saint]...surely that isn't intentional?
02:28:44[Saint]Or rather - What I expect to happen: Move the track from the current location in the playlist to the desired location without nuking the dynamic playlist
02:29:39JdGordonnope, that is how play next works
02:29:42JdGordonyou want insert next
02:30:08[Saint]I would think Insert Next was for tracks that weren't already in the list.
02:30:36[Saint]The way I _think_ it should work seems a lot more sane than the way it does.
02:30:40JdGordonyou're using play next a bit wierdly :)
02:31:14[Saint]Why the fuck does it nuke the playlist?
02:31:38JdGordon"play next" is for "play this playlist next"
02:31:38[Saint]Just because I want a specific track played next doesn't mean I want the dynamic playlist blown away...
02:31:46JdGordonhang on, getting th eipod out
02:31:47 Join eckoit [0] (
02:31:51[Saint]Then it shouldn't work for a track, and this is a bug.
02:32:44JdGordonyou;re talking about the "current playlist" in the playlist viewer context menu?
02:33:27JdGordonthat item really should exist i think
02:33:35[Saint]Playlist viewer, WPS context, whatever.
02:34:15JdGordoni wouldnt say a bug, more a misfeature that that menu item exists
02:34:22[Saint]It seems totally non-obvious to me that using Play Next should blow away the current playlist.
02:34:45[Saint]In my perfect world, it would just move the track to the desired (next) location.
02:35:04[Saint]s/track/track or playlist/
02:35:15JdGordonwhy move and not copy?
02:35:22[Saint]+leave the rest of the playlist alone.
02:35:51[Saint]well, I guess the move/copy thing could be debated.
02:37:38[Saint]There's at least one instance I can find in the wild that works how I'd want it to. So I don't think I'm /quite/ insane.
02:38:05[Saint]The way it worked just surprised me, a lot.
02:38:26JdGordonplay next has worked like that since it was added
02:38:30[Saint]Here's what the manual says about it:
02:38:33[Saint]"Insert Next.
02:38:33[Saint]Add track(s) immediately after current playing track, no matter what else has been inserted."
02:39:00[Saint], it being non-obvious to me also isn;t surprising. It makes no mention of this. It suggests it works how I think it should.
02:39:49KatuTo throw in my 2 cents, Saint's reasoning sounds logical to me. If I were to go through my current playlist, pick a track, and tell it to play next, I would expect that afterwards, play through the playlist would resume as before.
02:39:50[Saint]Oh, whoops.
02:40:12[Saint]I totally brainfarted there. The manual does describe the behavior.
02:40:38[Saint]So, as long as it does what the manual isn;t a bug, I guess. Just ...weird behavior.
02:41:36 Join Scromple_ [0] (~Simon@
02:41:38[Saint]In reading I confused myself between Insert/Play Next, so, I was wrong there. It is described the way it functions. The way it functions is just weird.
02:42:08[Saint]Katu: glad I'm not completely nuts, then :)
02:42:58KatuHaha, yeah, your description sounded legitimate to me
02:43:32KatuAs a side note, looking through the manual, Queue Next might also be a good option to do what you want, if you intend to preserve playlist order
02:44:24 Quit Scr0mple (Ping timeout: 260 seconds)
02:44:27[Saint]I can't think of a case that supports the usage of Play Next. You're quite right. I should be using Queue Next.
02:44:36[Saint]I'm not sure why that didn't occur to me.
02:45:00KatuHaha, if I hadn't seen it in the manual, I would've been going after Play Next as well
02:45:59KatuI suspect Play Next exists so that you can start up a whole new playlist, without interrupting music playback. i.e., use it for the first album you add, then use Insert/Insert Next from there
02:46:01JdGordonor use "move" for the previous menu
02:46:47[Saint]Katu: Wouldn't Queue do the same? Or, _shouldn't_ it, rather?
02:47:02[Saint]I don't know if it does, but it seems like it should.
02:47:32KatuNo, When I use teh Queue function, its because I have a specifically ordered playlist, but I really want to listen to that specific track next, without messing up the order
02:48:00[Saint]Right, that's exactly what I was wanting to do and thought Play Next should do.
02:48:36KatuThus, it adds the track next in the queue, then removes it once it is done playing, as if it was never put there in the first place, and remains in its location within the playlist (if it was there)
02:48:42[Saint]...this all seemed very wrong to me when I was walking home a few minutes ago ;)
02:48:54[Saint]Now it all makes sense. Dammit. :P
02:48:58KatuHahha, sometimes you just need a second opinion
02:49:50KatuSurprising that I could help. I just downloaded my first Rockbox simulator 5 days ago, and I'm still waiting on my iPod in the mail for an actual RockBox player :P
02:50:05[Saint]Hmmm...or not. So, if you use Queue Next, it adds it to the playlist and then removes it after it plays?
02:50:09*[Saint] tests this
02:51:01Katuat least, that's what it seems like from reading the manual
02:51:17[Saint]That works roughly as I expect, but I'm surprised it removes it from the playlist. And yes, you're right, it does.
02:51:42KatuI'm acutally glad to see that functionality too
02:51:53Katubah. keep hitting enter on accident
02:52:26KatuIt's great for when you need a quick fix for that one specific song, but don't want to destroy the order of your playlist in the process
02:52:47[Saint]Hum, so I really _don't_ want Queue Next, as I want the changes to the ordering to survive.
02:53:02[Saint]I understand it has its uses, but it's not the right one for my case.
02:53:14[Saint]"move" seems to be what I would want.
02:54:13 Quit eckoit (Ping timeout: 276 seconds)
02:54:38[Saint]For about 4 years I haven't done much else than: Files; navigate to toplevel music dir; Insert Shuffled
02:54:53Katubwahahaha, sounds about right
02:55:20KatuI always like to insert in order though, then play on shuffle mode. Makes it easier to find a song that way
02:58:06[Saint]"Insert Next" is what I want, it seems.
02:59:00[Saint]Immediately after I discovered Play Next didn't work like I thought it did, I thought I was a bit of an idiot for confusing these things.
02:59:16[Saint]...but now I see that it is more of a miracle I had never done so sooner.
02:59:53KatuGotcha. Out of curiosity, if you select a file that is currently in your dynamic playlist when you use Insert Next, does it move that file's location in the playlist, or created a duplicate?
03:00:25[Saint]A half dozen similarly named objects that do /slightly/ different variations of the same thing. plus/minus other things I wouldn't necessarily expect said function to perform.
03:00:25KatuGotcha. Good to know
03:00:40[Saint]JdGordon: It moves it.
03:01:09JdGordoninsert next should add it
03:01:10[Saint]Oh, no...I needed to leave the screen and come back to see the changes.
03:01:11JdGordonnot move it
03:01:13[Saint]Right you are.
03:01:54[Saint]Yes, if I leave the screen and come back to it I can see it duplicates it. Indeed.
03:02:13*[Saint] is having a really bad bay with expected vs. actual behavior
03:02:20KatuOk. Good to know for sure!
03:03:38*[Saint] thinks the naming and availability of the options is what makes their function non-obvious to him
03:04:10[Saint]For a reason I can't quite articulate, it seems odd to me that one can "Insert" a track into a playlist that is already in the current playlist.
03:04:29KatuYeah, that is a little strange
03:04:35[Saint]That wording seems to me to be for a case where the track you're wanting to insert isn't already in the current playlist.
03:04:58JdGordonthat menu shouldnt be there
03:05:22KatuOh! Figured out what I had done wrong with my volume bar on the theme that I'm working on −− I was using the old %xd tag syntax!
03:05:46[Saint]...we have new %xd syntax?
03:06:29KatuI don't think it's new for everyone... It was new to what I had been reading off of one of the many, many WPS manuals
03:06:30[Saint]I can think of the new-ish syntax for subimages, but the old syntax should still be valid to keep backward compatibility
03:06:42KatuI was reading the wrong manual, basically.
03:06:45[Saint]We /try/ not to do skin-breaking changes.
03:07:30[Saint]Do you mean the difference between %xd(Aa) and %xd(A, 1)?
03:07:40KatuMakes sense. For whatever reason, the old syntax for %xd wasn't working for me, and as soon as I switched to the new syntax, worked perfect
03:07:49Katuexactly so
03:07:56[Saint]Both should work.
03:07:57JdGordon%xd(Aa) is definitly deprecated and shouldnt be in the wiki/manual anymore
03:07:59JdGordon(though is)
03:08:20[Saint]JdGordon: I thought it was left for backward compatibility?
03:08:36KatuYeah, with the simulator for the latest build on ipod color/photo, it would crash the wps every time
03:08:37JdGordondeprecated doesnt mean it iwll be removed
03:08:51JdGordonKatu: loading the failsafe wps doesnt mean it crashed
03:08:58[Saint]Ah, right. My definition is slightly different, and likely wrong.
03:09:24Katuahh, ok. Either way, I got the failsafe wps :P
03:10:07[Saint]That would be the second instance I've seen in a week or so of syntactically valid code failing.
03:10:18[Saint]Does it give you any output in the console, Katu ?
03:10:33[Saint]Same as the other instance...weird.
03:10:34*JdGordon needs more time :/
03:10:56[Saint]JdGordon: A. Bloody. Men.
03:11:00[Saint]We all do :-S
03:11:10KatuEither way, I figured it out. Just one big learning period for me :D
03:11:14JdGordonand a wife which is a bit more accepting of my rockbox time :p
03:11:33scorche`well, that is your own fault ;)
03:11:53*[Saint] 's SO isn't really terribly happy with his projects either
03:12:39[Saint]Understanding? Yes, greatly. Happy about it? Not on your life. :)
03:14:18KatuUpdated my forum post on the matter with what I learned as well, so that in the future, people know what I did wrong and how I fixed it :)
03:15:35[Saint]What you were doing, while it isn't really recommended, woul've worked if it wasn't a 'dynamic' object.
03:15:55Katuwhat do you mean by dynamic?
03:15:56JdGordonKatu: I was going to suggest %xd(vol, %pv) but wasnt sure if that would work correctly
03:16:14KatuThat's exactly what I used, works perfect :)
03:16:26JdGordon[Saint] hates that syntax :)
03:16:29JdGordonI love it
03:16:43KatuSaves a helluva lot of typing
03:16:45[Saint]It has its uses.
03:17:11*[Saint] wouldn't use bitmapstrips for volume, though.
03:17:14JdGordonas for your original problem, you must have done something wrong, possibly in the snipped section
03:18:03KatuIt's possible, though the snipped section is really just the progress bar, album art, and track info
03:18:17[Saint]iff the bar is going to be *very* low resolution, bitmapstrips are ok. But I vastly prefer to use a bar tag.
03:19:15KatuWell, this pictures that I used do defy convention for a standard bar, so I don't think that a bar tag would do what I wanted it to.
03:19:46 Quit thegeek (Read error: Connection reset by peer)
03:19:48KatuThey go right to left, then back to the right from there. kinda wierd, but I like it
03:20:14KatuIs the bar tag better to use, for simplicity and size reasons?
03:20:45[Saint]right to left, then back to right?
03:20:58*[Saint] doesn't understand the way it should work
03:21:46KatuYeah, hard to describe. I think I posted the bitmapstrip on the forum post though, that should demostrate it better
03:22:13[Saint]Ooooohhhh...I see.
03:22:17JdGordonyou could actually do that with 2 strips i tihnk
03:22:40[Saint]Using a bar shouldn't mess that up, it would display it the same as a bitmapstrip would, only with finer resolution.
03:22:58Katuahhh, ok
03:23:02*Katu tries it out
03:23:28[Saint]Ohhh...actually, maybe you wouldn't be able to.
03:23:42[Saint]That is a weird way to do it. Not very well suited for a abr.
03:24:13KatuYeah, like I said. Kinda weird, but I like it
03:24:21[Saint]When I first saw the image in the forum, it was so small that I couldn't see that it doubled back on itself.
03:24:38[Saint]I was going to suggest using a bar at the time but I thought it best to taackle one thing at a time.
03:24:51Katuahhh, gotcha. I'm sure the Magic Magenta didn't help either
03:24:55[Saint]Now I've zoomed in and looked at it, it is rather non-standard.
03:25:09[Saint](not in a bad way)
03:25:13Katu(Which I also got rid of, thank god)
03:25:26KatuYeah, now that I see it in the player, I'm very pleased
03:25:39[Saint]If effectively halves the needed display area for the volume.
03:25:46[Saint]It's really quire smart actually.
03:25:54KatuThanks :)
03:26:05*Katu is stoked to finally be making progress for once
03:27:12*[Saint] keeps reading Klaatu for some reason - (from The Day The Earth Stood Still) </offtopic>
03:30:01[Saint]JdGordon: For the record, I don't *hate* the ability of %xd to parse a tag for the subimage parameter..I just don't use it myself because it isn't always possible to use it and from the point of view of documentation/emample code I don't think it is very wise to show multiple ways of doing the exact same thing.
03:31:17[Saint]I think it's nice. It simplifies things immensely. But I always thought that if someone was to be reading my code that they would get confused by me (seemingly) doing the same thing in two different ways.
03:31:59[Saint]If the subimage order and the display conditions matches the tag, then it's a very good thing.
03:33:12*Katu is uploading a visual demonstration of the volume bar now
03:34:38JdGordonis the red only when its >0 ?
03:35:01KatuThat's when it is maxed out. Not sure if that means >0 or not
03:35:09JdGordon> 0dB
03:35:52[Saint]wrt stacking objects, it is /partially/ supported. But not in a way that is really very predictable. The skin does have a sense of draw ordering, so that layering images can work. But you can't layer dynamic objects. Things like clocks, scrolling text, progress bars, peak meters, etc.
03:36:59[Saint]There is only background, and foreground, there doesn't exist any way to layer objects in a consistent and repeatable fashion other than that.
03:37:28KatuI haven't put any specific tags for making it go red when >0db. That last image is the volume at maximum setting though
03:38:54JdGordonyou could do %?pv<%xd(mute image)|%pv(as a bar)|%xd(3rd last image in your strip)|%xd(last image in your strip)>
03:39:14JdGordonthen the strip only has 4 subimages
03:39:34[Saint]That may or may not work.
03:39:48[Saint]Last time I tried to do that, it didn't work as I intended.
03:39:57KatuYeah, 13 is probably a bit excessive, but I like having the more gradual nature of the bar that way
03:41:02[Saint]Well, what JdGordon is saying there would provide a bar for all cases that aren't mute, 0dB, >0dB
03:41:36[Saint]which would be finer grained than bitmapstrips unless you had a strip for each pixel.
03:41:53Katuahhh, I see. I misread the post
03:42:26KatuBut then that would also change the fill behaviour for the bar, would it not?
03:42:48JdGordonyou'd set it to draw right to left
03:43:15[Saint]only for the non-mute, non-0db, non->0dB cases
03:43:21Katuah, I see
03:44:12KatuI'll have to look into that. I didn't even factor in a mute image when I made that
03:45:01[Saint]Hmmm...actually. I'm not sure it could be done the way JdGordon and I are thinking.
03:45:12[Saint]Again, because of the less-than-common format of the bar.
03:46:05JdGordonyou might have to account for the >0dB in the bar image
03:46:16JdGordonthe bar tag really needs to be redon
03:47:22Katuthe bar tag on Rockbox side?
03:47:31Katuor mine?
03:47:40Katuahh, ok
03:47:43JdGordonthe syntax for making a bar is just horrible
03:48:07*[Saint] likes it. It's clean, and obvious.
03:48:24JdGordonno it isnt!
03:48:37KatuI don't have an opinion one way or the other. I just learn as I go :P
03:49:28[Saint]simple to me.
03:49:34[Saint]What would you change, JdGordon ?
03:50:07JdGordonnot sure, but it is convoluted
03:50:22KatuAnyway, I gotta go guys.. Dinner time. Good chatting with you, and I am grateful for the help and the pointers
03:50:51[Saint]%xx(0,0,-,-,progressbar.bmp,backdrop,backdrop-identifier,other_options) <−−you can even mix/match with the old style of passing the bar image
03:51:02 Quit Katu ()
03:51:02[Saint]Katu: Have fun, don;t be a stranger :)
03:51:40*[Saint] prefers to pass the image param and use only identifiers, though.
03:52:14[Saint]The bar tags are actually one of the few options of a rather complicated feature having a fairly straightforward syntax
03:52:38[Saint]Compared with skinned lists, I find them a dream to work with.
03:54:42 Quit t3hsilentone (Quit: Leaving.)
03:56:23JdGordon[Saint]: did you ever get around to playing with the 9seg bmps?
03:57:03[Saint]Yes, my album art backdrop is using it.
03:57:26*JdGordon wanst to see a demo
03:58:32JdGordonalso, I *really* want to push g347 so any feedback would be welcome
03:58:35fs-bluebotGerrit review #347 at : skin_engine: User selectable track data display by Jonathan Gordon (changes/47/347/6)
03:58:39JdGordonespecially links to themes which obviously couldnt use it
03:58:59 Join t3hsilentone [0] (
03:59:12[Saint]Did you find out any more about sublines wrt %;?
03:59:35JdGordonyeah, I suspect a sed went wrong back 2 years ago :)
03:59:38JdGordonthose lines dont work
04:00:23[Saint]Untested, but, "%t(2)%;%;%;%;%;%;;%t(2)that was a bunch of semi-colons" _should_ work.
04:00:29JdGordonI found that sublines mostly work with ^ so i can do pretty much all text based themes with it now, which means cabbies can be switched
04:00:58JdGordonyes, that should show ;;;;;; then nothing
04:01:11*JdGordon needs to get back to implementing HDLC
04:01:40[Saint]So that would skip the "that was a bunch of semi-colns"?
04:01:52*[Saint] would file that in bug town.
04:05:40JdGordonno, it would display a bunch of ;'s as text
04:05:58JdGordon%t(2)%;%;%;%;%;%; <- one subline.... %t(2) <- the other
04:06:14JdGordon99% cabbie in mainline is broken where it is used
04:06:16 Join TheSphinX_ [0] (
04:06:48[Saint]Are you reading the line correctly? It should alternate between ";;;;;" and "that was a bunch of semi-colons"
04:07:38 Quit TheSphinX^ (Read error: Operation timed out)
04:07:44JdGordonyes, misreading
04:07:48JdGordonyou're correct
04:07:51[Saint]I can't see why using a semi-colon in the middle of a subline should break it. I mean, isn;t that the reason it is an escaped char to begin with? So it will "just work" and not get confused as other code?
04:08:07JdGordonyes, but caabies have %; instead of ;
04:08:41[Saint]Which one, can you suggest an example?
04:09:21JdGordongit blame on that line is disturbing :)
04:10:46[Saint]That's nothing to worry about, it's just someone screwing up displaying a semicolon vs escaping a subline section.
04:11:09[Saint]It shouldn't need any more than removing the superflous %
04:12:08[Saint]For some reason, when you mentioned it, I thought you were saying that escaping a semi-colon to display it instead of ending the subline section wasn't expected to work.
04:12:12[Saint]And that confused me.
04:21:03***Saving seen data "./dancer.seen"
04:21:07 Join eckoit [0] (~ryan@
04:24:21 Quit [Saint] (Remote host closed the connection)
04:25:25 Join [Saint] [0] (~saint@rockbox/user/saint)
04:41:12 Join amiconn_ [0] (amiconn@rockbox/developer/amiconn)
04:41:12 Quit amiconn (Disconnected by services)
04:41:14 Nick amiconn_ is now known as amiconn (amiconn@rockbox/developer/amiconn)
04:41:24 Join pixelma_ [0] (pixelma@rockbox/staff/pixelma)
04:41:24 Quit pixelma (Disconnected by services)
05:03:21 Join Rower85 [0] (
05:32:21 Join TheSphinX^ [0] (
05:34:17 Quit TheSphinX_ (Ping timeout: 245 seconds)
05:51:30 Quit [7] (Disconnected by services)
05:51:39 Join TheSeven [0] (~quassel@rockbox/developer/TheSeven)
06:09:44 Join scorche [0] (~scorche@rockbox/administrator/scorche)
06:12:06 Quit scorche` (Ping timeout: 264 seconds)
06:21:07***Saving seen data "./dancer.seen"
06:38:14 Quit SuperBrainAK (Quit: pbly going to sleep /_\)
07:13:39 Join eckoit_ [0] (~ryan@
07:14:03 Quit eckoit (Read error: Connection reset by peer)
07:14:03 Nick eckoit_ is now known as eckoit (~ryan@
07:22:34 Quit t3hsilentone (Quit: Leaving.)
07:35:23 Quit eckoit (Quit: eckoit)
07:41:38 Nick mechanobot is now known as amithkk (uid4289@2buntu/writers/amithkk)
07:48:03 Part DasBub ("Leaving")
08:00:28 Join akaWolf [0] (~akaWolf@unaffiliated/akawolf)
08:21:10***Saving seen data "./dancer.seen"
08:29:18 Join t3hsilentone [0] (
08:29:43 Join Zagor [242] (~bjst@rockbox/developer/Zagor)
08:34:13 Join wodz [0] (
08:35:22wodzpamaury: (log) IMO all this EMI stuff should be written in assembly. Thats the only sane way to know what will happen. I would never relay of compiler doing something in particular way.
08:36:26 Join kevku [0] (x@2001:470:dcc6:0:69:69:69:69)
08:52:20 Join ender` [0] (
08:58:17 Join einhirn [0] (~Miranda@2001:638:605:4:683f:30df:8b27:3040)
08:59:07 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
09:00:29 Quit zamboni ()
09:21:02 Join petur [0] (~petur@rockbox/developer/petur)
09:28:19 Quit bertrik (Ping timeout: 256 seconds)
09:32:00 Quit kevku (Ping timeout: 264 seconds)
09:34:18 Quit wodz (Quit: Leaving)
10:00:51 Join bebna [0] (~a.fasold@
10:07:58 Join wodz [0] (
10:21:11***Saving seen data "./dancer.seen"
10:23:02 Quit jhMikeS (Ping timeout: 276 seconds)
10:29:34 Join kevku [0] (x@2a01:d0:ffff:34a::2)
10:30:24 Quit mc2739 (Read error: Connection reset by peer)
10:30:58 Join mc2739 [0] (~mc2739@rockbox/developer/mc2739)
10:35:45 Nick pixelma_ is now known as pixelma (pixelma@rockbox/staff/pixelma)
11:14:20 Join lebellium [0] (
12:21:12***Saving seen data "./dancer.seen"
12:24:26 Join pamaury [0] (
12:24:26 Quit pamaury (Changing host)
12:24:26 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
12:33:21 Join traveler [0] (
12:34:22travelerhello. you could include tar src od mksmboot in guide, i was under impression that is sandisk closed source tool...
12:34:35travelernow seeing it's under git, will try to build it here /freebsd
12:34:48traveler*of mksmboot
12:35:07Tornewe don't release separate source tarballs of those tools because most of them don't build independantly of the rest of the tree (they share includes/makefiles/etc)
12:35:19Tornealso, the source is not so big that it's a problem to just check out the whole thing
12:42:21travelersure, but notice that source is available would be just enough
12:42:46traveleri was reading manual in pdf iirc
12:44:03Tornethe manual assumes you are installing with our binaries; the development info on the wiki tells you how to build.
12:44:08 Join LinusN [0] (
12:45:35travelerok, but you are misunderstanding my point possibly, all i think would be really beneficial, is to not give out impression i had- mainly that mksmboot is closed source sandisk tool
12:45:50traveleri don't have problem with manual talking about default binaries
12:46:00Tornei don't see where we give out that impression. everything we use is open source.
12:46:56kugelwhat's mksmboot anyway?
12:48:20the-kyleI believe it's mkamsboot, which patches Sansa OF.
12:49:06travelerand not mention of source
12:49:13travelerthat's all
12:49:24the-kyleIt's part of the Rockbox source tree.
12:49:40travelernow i know
12:49:56travelerlooks my previous reply went missing
12:50:42the-kyleSo it's actually part of the Rockbox Utility's source tree.
12:50:54traveleri probably got impression that is sandisk tool becouse didn't pay attention to where link in pdf pointed, and previous one was to sandisk forum
12:51:05travelerand there wasn't any mention of source
12:51:18the-kyleThe link to the Sandisk forum is for the OF that can be patched with mkamsboot.
12:51:27Torneright, but the manual is not written for people who are compiling things from source
12:51:40Tornethe manual is for users who are just following the instructions to install the binaries we provide
12:51:41travelermaybe i was skimming, but there was no mention of mksmboot being part of rockbox project in pdf iirc
12:51:46traveleri get your point
12:52:11Tornesend us a manual patch if you think you can make it clear
12:52:48the-kyleIf the manual was written for people who build from source, it would be confusing to end-users.
12:53:39travelerdoh next messages went missing i see... this web irc is not so good... after i successfully install rb, will think about patch
12:54:26travelerkyle: it wouldn't if it would be just notice and not exhaustive source compile guide
12:55:03travelerok, back under the rock i came from now...
12:55:26 Quit petur (Quit: *plop*)
12:55:26 Quit traveler (Quit: CGI:IRC (EOF))
12:57:31the-kyleDoesn't the manual already mention GPL licensing? That would imply that the source code is available. So maybe only a clarification would be needed that only the OF is proprietary, and that's why it is patched using open source tools, so that it loads the open source Rockbox firmware. That's a bit verbose, but something like that may be all that's needed.
13:01:20 Join tuma [0] (
13:03:24tumafreqmod, did you see my Opus bug report FS #12799
13:03:25fs-bluebot Resuming opus file from bookmark is not working correctly (bugs, unconfirmed)
13:03:48freqmodNo, i havent seen it
13:03:51freqmodbut i have experienced it
13:06:48*the-kyle needs to file a bug report. Seems that attempting to skip back to the beginning of an opus file skips to the next file. But I didn't file it, because I figured it was a known problem, possibly related to the seeking issues that were already documented.
13:07:08 Join traveler [0] (
13:07:45freqmodi did not do much testing/fixing on the opus seeking code. It is mostly just a copy of the speex code
13:08:40freqmod+ hacks to make it work for playback, and to seek back to roughly the same position as last time when playing an audiobook
13:10:02 Join GodEater [0] (
13:10:02 Quit GodEater (Changing host)
13:10:02 Join GodEater [0] (~bibble@rockbox/staff/GodEater)
13:17:12 Quit tuma (Quit: leaving)
13:18:58derffreqmod: There is now a very good seeking implementation in;a=blob;f=src/opusfile.c;hb=HEAD#l2137
13:19:49*freqmod notes it
13:33:53travelerjust fyi, i've downloaded entire rb tree /320+MB on disk?/ for one 48k util, clearly suboptimal... but mkamsboot compiled nicely.
13:34:45travelerapart from that that my rb is branded from git? all went smooth. /i just used mksamboot from git
13:38:00pamaurythe entire repo is much smaller if you don't download the history
13:38:05pamaury(I think)
13:50:03 Quit dongs (Ping timeout: 244 seconds)
13:51:04 Join dongs [0] (
13:54:28 Quit lebellium (Read error: Connection reset by peer)
13:54:57 Join lebellium [0] (
13:57:12 Quit dongs (Remote host closed the connection)
13:57:20 Join dongs [0] (
14:01:06 Quit traveler (Quit: CGI:IRC (EOF))
14:18:21Tornepamaury: actually downloading without the full history doesn't make much difference :)
14:18:33pamauryreally ?
14:18:36Tornepamaury: the repo is only 140MB packed (the rest of the space used on disk is for the actual uncompressed working files)
14:19:28Torneall of history is not much bigger than a tarball of hte latest version. git compression is really good.
14:21:15***Saving seen data "./dancer.seen"
14:21:58 Quit wodz (Quit: Leaving)
14:22:11Torneeh, actually not as much as i thought )
14:22:29Tornea bz2 of the latest version is 48MB
14:22:33Tornebut that's still not bad :)
14:22:45 Join amayer_ [0] (
14:39:25 Join traveler [0] (
14:41:28 Quit dongs (Ping timeout: 255 seconds)
14:42:04 Join dongs [0] (
15:01:05 Quit shamus (Read error: Connection reset by peer)
15:01:22 Join shamus [0] (
15:06:06travelerheh, i got -git version because i've followed not because of mkamsboot i've built from -git... oh well, it works fine i see, ty guys
15:11:45 Join dfkt [0] (dfkt@unaffiliated/dfkt)
15:12:30 Join eckoit [0] (~ryan@
15:12:40 Join pamaury_ [0] (
15:14:29 Quit pamaury (Ping timeout: 264 seconds)
15:16:00 Quit dongs (Ping timeout: 248 seconds)
15:16:39 Join dongs [0] (
15:17:45 Quit traveler (Quit: CGI:IRC (EOF))
15:22:54 Quit dongs (Ping timeout: 240 seconds)
15:23:49 Join dongs [0] (
15:30:19 Join Robin0800 [0] (
15:47:31 Nick pamaury_ is now known as pamaury (
15:47:42 Quit pamaury (Changing host)
15:47:43 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
15:49:07 Quit dongs (Ping timeout: 256 seconds)
15:49:33 Join dongs [0] (
16:02:59amayer_does USB suspend mode effect charging on the ipod classic?
16:02:59 Join megal0maniac [0] (
16:02:59 Quit megal0maniac (Changing host)
16:02:59 Join megal0maniac [0] (~quassel@unaffiliated/megal0maniac)
16:05:33 Quit megal0maniac (Client Quit)
16:05:50pamauryamayer_: afaik we don't support usb suspend
16:07:31amayer_pamaury: so then what does this accoplish?
16:11:07pamaurythis only implements usb charging current change so that the device doesn't draw more than what the spec allows. With this you could in theory support usb suspend but I don't think we do it properly
16:11:49amayer_so that wont change how fast my ipod charges while connected to a pc?
16:12:41[Saint]We already have a way of doing that.
16:13:14[Saint]We can force the device to always attempt to draw 500mA over USB, iirc.
16:13:33[Saint]Which is as fast as it's ever going to be, unless I'm mistaken.
16:14:29[Saint]With dumb/low-power hubs, I'm not sure how that works, though.
16:15:02pamauryusb_charging_maxcurrent_change is simply used to ensure the 100mA/500mA limits depending on the mode (you can't draw more than 100mA while you're not fully enumerated or something like this)
16:15:25Torneit could do suspend if the hardware supports it, but it's not hooked upt hat way in the usb stack
16:15:42Tornei was reluctant to implement a charging mode that doesn't actually charge because it may make it tricky to revive things with flat batteries
16:15:59[Saint]Doesn't USB Charging mode == Force always attempt to draw 500mA?
16:16:02Torneand on some devices it's possible to go higher than 500mA
16:16:07[Saint]Or, am I mistaken there?
16:16:15Tornebut we don't
16:16:21Tornebecause it may not be good for the host
16:16:31Torne[Saint]: it draws 500mA if nothing appears to be driving the bus
16:16:39Torneit waits for a short time after cable insert
16:16:42[Saint]right, thanks.
16:16:45Torneand sees if a host attempts to enumerate it
16:16:55Torneif not it enables 500mA mode
16:16:56 Quit Robin0800 (Remote host closed the connection)
16:17:02Torneif so it waits until it gets permission from the host
16:17:15Torneit's a workaround for the lack of positive charger detection, really
16:17:21Torneif we had that then most people wouldn't need to use it
16:17:31Torneas most usb chargers these days are detectable if the player has the hardware to do so
16:17:38Torne(since otherwise they don't charge modern apple devices/phones/etc)
16:17:48[Saint]What's the exact difference between force, and yes?
16:18:01Tornenormally it only ever draws what the spec allows it to
16:18:11Tornedrawing 500mA when you haven't been told you can is never permitted
16:18:19Torneso, it's not enabled by default
16:18:46*[Saint] has decided to re-do the iLike Classic theme port for modern syntax
16:19:44[Saint]I was always secretly very proud of that naming scheme, witty and piss-taking all in one.
16:19:57[Saint]Not sure why I adandoned the theme. It bored me, I think.
16:21:19***Saving seen data "./dancer.seen"
16:22:35[Saint]I'm not sure how to parse that commit for USB Suspend Mode.
16:22:54[Saint]"Support a mode that we currently don't use, and probably won't"?
16:23:18Torneit makes the driver support disabling charging
16:23:21Tornethat's fine
16:23:37Tornei implemented that in the PP ipod driver as well
16:23:57Torneit probably would be fine to implement usb suspend, i just wasn't sure at the time
16:24:16[Saint]Right, point is, it only enables support for it, though, no? It's not actually /using/ it, is it?
16:24:21pamauryit makes rockbox correctly handle the current limit as specific by the spec, without this you don't control the current draw so you potentially violate the spec, that's how I understand it
16:24:28Torneno, but why does that matter?
16:24:28[Saint]Or is it just poorly worded?
16:24:32Tornepamaury: no, that's not what it does
16:24:39Tornethe code there already switches between 100 and 500 correctly
16:24:44Tornethe commit adds support to also switch to 0
16:24:48pamauryah my mistake
16:24:52Tornewhich currently the usb core never asks the driver to do
16:25:03pamauryindeed, the core will never ask for 0
16:25:06Tornebut since the method to do so is known and it's, like, two lines, it doesn't hurt to have the support for it in the driver
16:25:14Tornein case someone does implement usb suspend in the core later
16:25:18[Saint]I guess I just don't see the pint in enabling it if it isn;t going to be used.
16:25:26Torneor if someone wants the possibly-ill-advised option to *really* completely disable charging
16:25:39Torne[Saint]: to save someone else who later improves teh usb core having to go work out how to do this on every target
16:25:52Tornei don't want to have to go and work out what GPIO to toggle on ipodclassic to make this work
16:26:02Tornei want to just be able to set the current to 0 and ahve the drivers figure it out ;)
16:26:11Torneso if the method is known, may as well implement it; it's trivial
16:26:37[Saint]iirc, USB Charging Mode == No actually still draws 100mA does it not? Rather confusingly worded.
16:26:49[Saint]I've never quite been ale to understand what it does.
16:27:06Torneyes, it still draws 100mA
16:27:13Tornebecause that's pretty much required to allow devices to not discharge
16:27:31[Saint]the Classic still discharges even drawing 100mA :)
16:27:38Torneonly when the disk is spinning
16:27:44Torneif you stop accessing it it charges just fine
16:27:45[Saint]well..if the LCD is on.
16:27:46gevaerts100mA should be guaranteed not to blow up the host
16:27:51gevaertsSo that's fine :)
16:28:03Torneyah. the point is, 100mA should not damage any hosts, even if theya re badly designed
16:28:40Torneit's what the amendment to the usb spec says you are allowed to do if you are a battery powered device that needs to draw some power before it can get to a point of being able to make sensible decisions
16:28:46Torne(i.e. to boot at all when your battery is depleted)
16:29:24Torne[Saint]: if you want to come up with a mechanism to allow charging to be disabled that is guaranteed not to leave a depleted device unbootable without some nontrivial intervention, that'd be great :)
16:29:56Tornebut having a user-visible setting that just sets the allowed current to 0 right now will cause devices that are flat to go into a boot/shutdown loop that youc an't get out of without clearing your settings, or booting the OF to charge :)
16:30:03[Saint]Not with the Classic, at least.
16:30:03Torneso, i opted not to do that
16:30:17[Saint]If we deep discharge there, and charging is disabled, we're fucked.
16:30:29Torneso, that's whyit doesn't do that.
16:30:35TorneIt would be okay to do it for USB suspend, though
16:30:38Tornebecause that wouldn't be persistent
16:30:43pamaurysupport for usb suspend is mostly soc specific since you might have to poke many registers. For the usb stack I think it's pretty transparent (ie no transfers) but I don't know that part of spec very well
16:30:45Tornerebooting the device would make it start charging again
16:31:01[Saint]iff it still has EDM, it'd be a consideration. But we wipe out the, yah. No. :)
16:31:24Torne[Saint]: i don't like the idea of forcing you to dualboot or go into recovery mode to charge either
16:31:36Tornewhich is why it also doesn't work that way on PP ipods :)
16:31:51Tornehaving those modes is nice but "recharging from a dead battery" is not a rare case we should force you to use recovery for
16:31:57Tornerockbox should be smart enough to deal with it :)
16:32:03[Saint]Well, no. But the OF seems to be a lot more tolerant of booting in a very low power state than Rockbox is.
16:32:16Tornethat's not really the same thing
16:32:21[Saint]I've often used that to charge a deep discharged iPod that won;t boot under Rb.
16:32:32Torneright, but that just means we have a different safety limit to the OF
16:32:41[Saint]With the Classic, if it got into that state. I'm not sure what you'd do.
16:32:46Torneor we measure the voltage differently or at a different point in boot when more/less hardare is turned on
16:32:53Torneit's nothing to do with how we manage charging
16:32:57TorneApple's firmware does charging correctly
16:33:02Tornei.e. the same way our code does
16:33:20Torneit's why if you are deep discharged it refuses to even try and spin up the disk and displays a graphic instructing you to plug it in
16:33:38Torneso that it can detect the charger, go to 500mA charging mode, and charge in the bootrom without attempting to boot OSOS
16:33:42Torne(on the pp ipods, i mean)
16:34:27[Saint]the classic purports to be able to charge while off in Rockbox, but I think that is a mistake in the defines.
16:34:34[Saint]As far as I've can't.
16:35:04[Saint]If it could, there wouldn;t be an issue.
16:35:19Torneit seems unlikely to me
16:35:32Tornewell, it's nto really about whether it can charge while off
16:35:33 Join pretty_function [0] (~sigBART@
16:35:41Tornethe ipods *can* charge while off
16:35:54Tornethe problem is that the power management unit boots the ipod automatically if there is power applied
16:36:01Torneso it's actually that you can't turn off while charging ;)
16:36:05[Saint]Not in the Classic.
16:36:14[Saint]It doesn;t boot on USb detection.
16:36:44Tornereally? not even with the OF?
16:36:58Torneit's *possible* on the PP ipods too, but we'd have to change the PMU poweron register for that
16:37:00[Saint]Never used the OF.
16:37:01Torneand we don't currently touch that
16:37:12Tornebecause if you mess that up you can get into a state where the device won't power on at all
16:37:18Torneunless you disconnect the battery internally :)
16:37:20 Join y4n [0] (~y4n@unaffiliated/y4ndexx)
16:37:32Torneand that's not very nice to users either.
16:38:22*[Saint] is doing a small test now to attempt to verify if the hardware is smart enough to charge itself while powered down, but isn't terribly confident.
16:38:28Torneit's not about being smart
16:38:35Tornethe LTC4066 is independant of the GPU
16:38:52Torneall that matters is whether the LTC4066 itself still gets vcc applied when the system is off
16:39:00Torneif so, then it will continue charging using the same register settings
16:39:05Torneit's just a matter of wiring :)
16:39:24[Saint]My test is pretty simple. Discharged to a known level, record voltage, power down and try charging for ~30 min, power on, record voltage.
16:39:27[Saint]We'll see.
16:39:32[Saint]But, I doubt it'll charge.
16:39:58Tornewell, it depends what state the ltc4066 is left in also
16:40:01[Saint]If it doesn't, I'll push a patch that removes the define saying it's possible.
16:42:11 Quit kevku (Ping timeout: 264 seconds)
16:42:13[Saint]amayer_: have you ever used the iPod Classic OF?
16:42:31amayer_Yes for about 3 years
16:42:36[Saint]Do you recall what it does when powered down and a charger is inserted?
16:42:47Torne[Saint]: remember that the OF doesn't power down ever
16:42:57Torneunder normal circumstances
16:42:59Torneit's only asleep
16:43:06Torneso, you need to actually know it's really off first :)
16:43:26amayer_[Saint]: it uses some kind of sleep.
16:43:29amayer_but when you connect to pc it depends on your settings and the computer you are connecting to
16:43:34*[Saint] is aware of this.
16:43:36Torneto actually turn it off is nontrivial
16:43:36amayer_if you have "open itunes" enabled it will start itunes
16:43:42[Saint]but it *will* power down eventually.
16:43:48Torne[Saint]: no, it goes into suspend-to-disk
16:43:57Tornewhich doesn't necessarily leave the same PMU triggers enabled
16:44:05[Saint]Ah, hum.
16:44:16amayer_ive never plugged it in on "real" power down
16:44:17Tornethe only way to actually know is to deep discharge the battery until you know that it must really be off :)
16:44:37Torneand if it doesn't power on on usb insert then, then you've bricked it
16:44:37amayer_i never truly ever turned it off
16:44:44Torneso, it's safe to assume that apple do wake on usb insert
16:44:49Torneotherwise deep discharges would be fatal ;)
16:44:55Tornethere's no need to test it
16:45:25[Saint]So I should just go ahead and remove that define?
16:45:52Torneyou already said that the behaviour on a rockboxed classic is that you can power off while usb is inserted
16:46:00Torneso, the thing to test is whether it continues to charge in that state
16:46:04Torneif so, then you should leave that define alone
16:46:10Tornethe define serves a dual purpose depending on target
16:46:32Torneit *either* indicates that powering off will stop charging, and therefore we shouldn't allow poweroff when power is connected because it will surprise the user who expects it to charge
16:46:41[Saint]Under Rockbox, it won;t let you power off with USb inserted. But it won;t power on if it is powered of when USB is inserted.
16:46:43Torne*OR* it indicates that powering off while power is connected will just immediately power back on again
16:46:46[Saint]...if that's different.
16:46:54Torneand therefore there is no point in trying
16:47:00Torne(which is the case on the PP ipods)
16:47:08amayer_[Saint]: do you have time to try some code?
16:47:25[Saint]amayer_: possibly, which?
16:47:25Tornethese two purposes are completely different cases but they have the same effect on rockbox, so we just have the one define :)
16:47:40Torne[Saint]: that sounds like a bug in rockbox, then
16:47:55Torne[Saint]: we almost certainly should change our behabiour to match the PP ipods
16:48:01 Quit einhirn (Quit: Miranda IM! Smaller, Faster, Easier.
16:48:06Torneit depends if it really does charge while off or not.
16:48:13Tornebut, even then we probably should power on
16:48:18[Saint]we'll know in ~20min :)
16:48:20Tornebecause while off we can't select a charging level intelligently
16:48:26Torneso we would ahve to leave it on 100mA mode
16:48:28Tornefor safety
16:48:33Torneand charging would be very slow
16:48:39amayer_its the slider staying in bouds you, JdGordon and I talked about a while ago
16:48:41amayer_(no the code isnt pretty, yes i plan on makeing the code look better) this is just a proof of concept to make sure this is what you and I were talking about
16:49:13[Saint]even if it's only drawing 100mA, after 30 mins charging I should be able to record a marked difference. So, yeah. I'll wait and see and go from there.
16:49:15Torne[Saint]: if it currently has the define that says it can charge while off, though, i don't see what stops itfrom shutting down while plugged in.
16:49:20Torne[Saint]: that's what that define *does*
16:49:22[Saint]Not exactly a very technical test, but meh.
16:49:46Torneeither the target can charge while off, in which case you can turn it off any time you like, or it can't, in which case we only allow you to turn it off when there's no power
16:50:52[Saint]I'll test it again when I'm finished here (can't find my other classic), but I'm fairly confident it doesn't let you power down on USB plug under Rockbox.
16:51:23amayer_[Saint]: are you trying to test OF or Rockbox?
16:51:41[Saint]what channel am I in? :)
16:52:06*[Saint] has never actually used the Classic OF
16:52:21[Saint]I looked at it, once.
16:52:31amayer_oh wow... do you want me to test if i can power down(rockbox) while connected to PC?
16:52:45[Saint]Yeah, sure.
16:53:06amayer_[Saint]: its pretty ironic that you made the iLike theme but never used the OF
16:53:20[Saint]That irony isn;t lost on me :)
16:53:46Torne[Saint]: the logic in the button code is #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) it tests for !charger_inserted() before allowing poweroff
16:53:58Torneand the ipod6g code has HAVE_POWEROFF_WHILE_CHARGING as you say
16:54:02Torneso, it should power off just fine
16:54:11Tornethe sleep timer behaves differently for some reason, thouh
16:54:18Tornethe sleep timer does not shut down on any target if usb is connected
16:54:31Torneeven if the device doesnt' charge over usb at all
16:54:40[Saint]Seems like an oversight.
16:54:42Tornethose are the only two things that check that define
16:54:55Torneit appears to be intentional
16:55:00amayer_[Saint]: I connected to Ubuntu machine. held play for 15sec. it did nothing. when i unplug it powers down imidiatly.
16:55:13[Saint]Aha, I wasn't insane.
16:55:22Tornewell, that's not what hte code says
16:55:24Torneat all :)
16:55:37[Saint]thanks, amayer_
16:55:56amayer_[Saint]: did you get my link ^
16:56:05Torneand my interpretation of it is consistent with the ten or so targets i fiddled with this on ;)
16:56:24Torneso it sounds like something buried somewhere in ipod6g is specialcasing this without reference to the define
16:56:45Tornei would guess the intended behaviour is to not allow poweroff while charging and the define still being set is a mistake
16:56:54[Saint]amayer_: yep, I did. I've patched a local branch and I'm building now. I can't promise I'll get to testing it tonight, but I should be able to later this morning/afternoon.
16:57:39amayer_[Saint]: i just tested it again and it shut off while charging
16:57:45Tornealso, the power_off function in the 6g port explicitly sets the PMU wake condition to "usb inserted or exton1"
16:57:55Tornei.e. the code is intending that USB insert while off causes it to boot again.
16:57:59[Saint]aha, interesting.
16:58:00amayer_(the first time i pressed eject on ubuntu)
16:58:06TorneSo, it sounds like the actual behaviour of the 6g port is different to the comments in the code
16:58:12[Saint]Maybe I've had bad luck, or it is bugged and/or inconsistent.
16:58:17Torneso, there's probably *several* buts
16:58:35Torneso, yeah, have fun with that. my guess would be it's intended to behave identically to the PP ipods
16:58:42Torneand thus the thingst hat don't are bugs
16:58:59Tornethe charge controller and PMU work basically the same as the ipodvideo (the charge controller is the exact same chip)
16:59:05Torneso, they probably should work the same
16:59:12[Saint]amayer_ apparently just managed to get it to shut down while charging. Which I haven't managed yet. Perhaps it is an Ubuntu is messed up thing.
16:59:23[Saint]Rockbox and unix don;t seem to gel very well sometimes.
16:59:36Torneoh, i don't htink it will let you power off *whiel in USB mode*
16:59:44Torneyou need to hold the button while you insert the cable
16:59:57Tornei.e. be charging in the background
17:01:09[Saint] actually does look like the Classic can charge when powered off.
17:01:32amayer_Torne: [Saint]: if i eject(right click icon on ubuntu launcher and click eject) it will not power off at all(while in usb mode) until i unplug the device.
17:01:34amayer_if i do not click eject first and just hold play for ~15 sec the play shuts off(while in usb mode)
17:01:58Torne[Saint]: the battery level went up noticably?
17:02:01amayer_[Saint]: the classic does charge while off(ive done this tons of time)
17:02:08[Saint]Torne: 15%
17:02:23Torneokay so there's a bunch of interesting issues here
17:02:32Torneshutting off behaviour appears inconsistent, which is odd
17:02:40Torneit doesn't power on when you plug usb the way the code suggests it should
17:02:58Torneand also: if it does charge while off, this means that the charge controller is probably just continuing to use the same settings
17:03:02[Saint]I just tested shutting down when not enumarated, this works.
17:03:08Tornei.e. it will stay on 100ma or 500ma, whatever it was using before
17:03:08amayer_Tonre: ive went from almost empty to fully charged overnight(plugged into usb slot, device powered down & plugged into wall, device powered down)
17:03:12Tornewhich is not spec-compliant :)
17:03:33Torneto be sensible we probably *should* power on when usb is inserted, the way PP ipods do
17:03:39Tornebecause then software can take control of charging
17:03:47Torneand it looks like the cvode is intended to do that already :)
17:03:50Tornebut, clearly it doesn't work ;)
17:03:56Tornemaybe we're setting the wrong bit int he PMU wake register?
17:04:10[Saint]So it seems like it is using the HAVE_POWEROFF_* define in a very inconsistent (to other targets) way...?
17:04:16Torneno, why?
17:04:23Torneyou just said it can power off while charging
17:04:28Torneso, that define can be defined :)
17:04:42amayer_Torne: i kinda like not powering on while charging(usb or wall)
17:04:48Torneamayer_: RIght, but it's not safe
17:04:52Torneit may be safe
17:04:57Tornebut it can't be both safe and fast
17:04:59amayer_oh... well thats not good
17:05:14Torneeither it charges very slowly while off, or it charges fast without caring whether the host allows it or not
17:05:23Tornethe charging chip doesn't know anything about USVB
17:05:30Torneit relies on the firmware to tell it what current is okay
17:05:36Torneso when the cpu is off those settings are fixed
17:05:41Tornei'm not sure what they end up set to :)
17:05:46Torneyou'd need, like, a multimeter to find out
17:05:47amayer_could you just set it to slow before power_down ?
17:05:59Torneyou could but then it would take 5x longer to charge
17:06:19Torneusers generally are not going to expect that charging suddenly takes five times longer for no visible reason
17:06:25[Saint]Better safe than sorry?
17:06:33amayer_thats what i was thinking
17:06:33Tornebut you can have both
17:06:40Torneif you jsut boot, then you can charge safely *and* fast
17:06:50Tornewhy not have both :)
17:07:24Torne;a=blob;f=firmware/target/arm/s5l8702/ipod6g/power-ipod6g.c;h=2e0fe878833a9e18778be8bbd7627f52e220b9c1;hb=HEAD#l34 <- here, btw
17:07:31Tornecomment says the wake condition includes USB inserted
17:07:37Tornebut i guess it doesn't ;)
17:07:45[Saint]Apparently not :)
17:09:21Torneso, yeah. the behaviour doens't match the comments
17:09:42Torneand the code is not really consistent with itself (it claims it's booting on usb insert, but it also claims it's okay to power off when charging)
17:10:33Tornebut, i don't know much about the classic, so not my problem ;)(
17:10:39amayer_just to make sure im not mistaken i just powered down my ipod classic and plugged it into my ubuntu box and it didnt turn on(waited 30 sec to confirm)
17:11:02amayer_so it doesnt match the comments
17:11:52 Join Katu [0] (
17:17:14amayer_[Saint]: i have no idea if the code i gave you has anything to do with touch screen. can you check it out when ever you get around to testing it? I dont have any touch screen players.
17:17:35[Saint]It was indended solely for touch, actually :)
17:17:54[Saint]There just wasn't any reason to disclude it for non-touch.
17:17:56amayer_Ive been using this code for 3 days now with 2 different personal themes and it looks/works great
17:18:44amayer_[Saint]: so i screwed up to touch feature?
17:19:03[Saint]No idea, I wouldn;t think so.
17:24:49[Saint]What was I thinking?!?
17:24:59[Saint]So. Much. Ugly...
17:27:04KatuDig up an old theme?
17:27:36KatuHaha, I had a similar reaction when I dug up an old website :-P
17:27:37[Saint]My "iLike" series of Apple OF clones.
17:29:16[Saint]spot the difference :)
17:29:53Katuhahaha, with my very limited iPod experince, it looks the same to me
17:29:58[Saint](the font is obviously hacked up, but this theme predates antialiased fonts by ~2 years or so)
17:30:09Katuahh, gotcha
17:30:33KatuI never did like the OF apple interface. One of the many reasons I never bought one hahaha
17:36:20KatuMade some more progress on my theme last night while I was chatting with my buddy
17:36:47*Katu is uploading a screen dump now
17:38:39KatuHaha, it helps to hit F5, not Print Screen :P
17:40:27amayer_Katu: do bitmaps support alpha layers?
17:40:42[Saint]amayer_: sure they do.
17:40:54KatuYes they do, you just have to make sure that you save them with Alpha enabled
17:41:02amayer_I didnt think they did... and here i am using magic magenta
17:41:09[Saint]But Rockbox only supports 32bit A8R8G8B8
17:41:19[Saint]Not 16bit A1R5G5B5
17:41:23KatuThat's what I was using yesterday :P
17:41:29*[Saint] found that out the hard way
17:41:38*Katu did as well
17:41:38amayer_so if i have alpha enabled i ahve to use 32 bit?
17:41:49[Saint]amayer_: yes.
17:42:02amayer_is this documented anywhere? the wiki maybe?
17:42:41*[Saint] somehow doubts this
17:42:50amayer_google suggests not
17:43:08KatuI will say that I never ran across that in any of the manuals when I was researching into it
17:43:14[Saint]Documentation isn;t really a strongpoint of the theme engine.
17:43:29[Saint]A sad but true fact is, many of us suck at writing documentation.
17:43:37amayer_isnt JdGordon rewriting the theme engine or something?
17:43:46[Saint]....~2 years ago
17:43:48 Quit Zagor (Quit: Clint excited)
17:43:54[Saint]Been there, done that.
17:43:58amayer_*jaw drops*
17:44:06KatuI saw mention of alpha transparency while searching forums, but until [Saint] pointed it out to me, I hadn't realized how to do it properly
17:44:07amayer_so the theme engine is 2 years old?
17:44:21Tornesomething like that, for this incarnation
17:44:33Torneit's had several :)
17:44:34[Saint]The *parser* was re-done, the engine itself is the same, or mostly the same.
17:44:48amayer_Katu: it is also in the tracker(when they used to submit patches there)
17:44:59Katuahh, good to know
17:45:46KatuHere's how my theme is coming along so far. I implement the volume bar suggestion that JdGordon had, works perfect!
17:46:01 Quit pretty_function (Remote host closed the connection)
17:46:04 Part eckoit
17:48:09amayer_so you can have semi-transparency in a theme?
17:48:22amayer_i always thought it was all or nothing
17:49:04KatuYeah, the mute graphic in that one has semi transparency in it
17:49:56KatuIt was a good test too, wasn't sure how well it would work. Just have to make sure the image saves with alpha. That's the problem I had yesterday; Photoshop wasn't saving with alpha because I had the settings wrong
17:50:28[Saint]That looks awesome.
17:50:34KatuNever did figure out how to get Photoshop to save it correctly. I gave up and used GIMP hahaha
17:50:56amayer_i dont do my own graphics... but they guy that does my graphics just made a theme that he faked transparency on... i feel kinda sorry for making him do that now
17:51:06KatuThe Technics thing is what is displayed when there is no album art :)
17:51:18*[Saint] is very passionate about the theme engine, and simply loves seeing people do "Cool Sh*t (TM)" with it
17:51:24[Saint]...well done chap, well done.
17:51:58KatuThanks :) I'm happy it is turning out as well as it is, being my first theme for anything, ever :P
17:52:14*gevaerts wants people to make themes that explore the theme engine boundaries in creative ways *and that are actually finished :)
17:52:21gevaertsi.e. not like me :)
17:55:12Katu^that's the code I used for the volume bar. Works flawlessy. As soon as it gets to >0db, it jumps to the final image, number 13, which is the one that has plenty of red in it
17:55:32[Saint]iirc, you need at least 4 cases. mute, >0dB, 0dB, <0dB
17:56:15Katutrue, but I do not have an image set aside for 0db, so i left that out, and it simply jumps to that last image for the 0db and greater
17:56:30[Saint]if you don't care to show an image specifically for 0db, duplicate the last case.
17:56:57 Quit shamus (Quit: Leaving)
17:56:58[Saint]%?pv<%xd(mute)|%xd(vol,%pv)|%xd(vol,13)%xd(vol,13)> should work
17:57:13KatuAlright, I will put that in there, to avoid potential problems then
17:57:50[Saint]Unless I'm mistaken you current code shouldn;t be displaying anything for <0dB
17:58:26KatuIt seems that it is simply displaying subimage 13 for everything 0db and greater
17:58:28amayer_[Saint]: you forgot a pipe in your code ^
17:58:35[Saint] looks like it *is*, from the screenshot...which doesn;t seem to make any sense.
17:58:46[Saint]amayer_: Ah, good catch.
17:59:27KatuEither way, just to be sure, the code is now %?pv<%xd(mute)|%xd(vol,%pv)|%xd(vol,13)|%xd(vol,13)>
17:59:41[Saint]Yeah...that is weird. The code for a %pv condition should have at least four segments.
17:59:59[Saint]mute, >0dB, 0dB, <0dB
18:00:08*[Saint] shrugs
18:00:11Katubehavior remains the same, with image 13 for 0db, as well as >0db, but this way it doesn't cause a problem hehehehe
18:00:46KatuNow, on to battery level display
18:01:02[Saint]The reason we have a case for 0dB is to know exactly where line level is.
18:01:08[Saint]Which some people find very important.
18:01:22 Join kevku [0] (x@2001:470:dcc6:0:69:69:69:69)
18:01:23Katuahh, gotcha.
18:01:44KatuWhy is line level important?
18:01:59[Saint]So you may use the 3.5 out as line out.
18:02:22Katuahh, I see. And that way, it's volume is completely neutral
18:02:31*[Saint] nods
18:02:39KatuI see, I see
18:03:04*[Saint] knows this phase of Rockbox well
18:03:15[Saint]"Well...shit, it just keeps getting better, doesn;t it?"
18:03:16KatuGlad I went ahead with a text-based volume indicator as well then :)
18:08:00KatuSo when I am doing the battery bar, it looks like I will have to use conditionals to make the battery image change based on charging, correct?
18:08:39KatuLooks like it would be one for %bp, one for %bc, and %bl for the bar?
18:08:59[Saint]Yeah, I'll show you how I did mine. One sec.
18:11:30[Saint]%?bp<%?bc<we are charging|charger is connected but we're not charging, so we must be charged>>
18:12:31KatuOk, that's about what I thought.
18:15:21KatuSo then, while charging, is it still possible to display current charge level?
18:15:36 Join bertrik [0] (~quassel@rockbox/developer/bertrik)
18:15:46[Saint]Yes, sure.
18:16:03[Saint]Just put the switch in the "we are charging" case.
18:16:28[Saint]alternatively, you could just display the battery level all the time.
18:16:34Katuahh, ok, cool.
18:17:05KatuYeah, I think I'm going to do it all in one viewport/image though. I'm gonna play around a bit and see what I come up with
18:18:04[Saint]If you do a check for hold, it also pays to check if there is a remote present locking the device as well: "%?mh<%?mr<using remote hold|on hold, but not using remote hold, so it must be the hold on the unit itself>>"
18:18:54[Saint]"%?mh<%?mr<using remote hold|on hold, but not using remote hold, so it must be the hold on the unit itself>|not locked at all>"
18:19:01 Join shamus [0] (
18:19:02KatuGood to know, I'll make sure and save that snippet for when I get to the hold indicator.
18:20:16[Saint]Sometimes, the amount of conditions can seem quite nightmarish and non-obvious, so I'm trying to recall the things that tripped me up in my themeing youth.
18:20:41KatuMakes sense, I definitely appreciate having it in plain english
18:21:21***Saving seen data "./dancer.seen"
18:25:57 Quit lebellium (Ping timeout: 265 seconds)
18:26:42 Join lebellium [0] (
18:28:45 Join Wardo [0] (
18:40:29 Quit bebna (Quit: Leaving.)
18:52:34KatuWhew. Ok, time to take a firewood-chopping break haha
18:52:38[Saint] do I get the sim to give debug output again?
18:53:23*[Saint] hasn't used this thing in years
18:54:09KatuI'm checking to see if I can dig it up
18:55:57[Saint]ah, found it.
18:56:10[Saint]./rockboxui −−debugwps
18:56:13gevaertsKatu: if you want to chop firewood, use the medieval theme
18:56:58KatuAhh, the fun of keeping the house warm with a wood stove :)
18:57:13Katuanyway, be back in a little while
19:01:58 Quit pamaury (*.net *.split)
19:01:58 Quit Cultist (*.net *.split)
19:01:59 Quit Guinness (*.net *.split)
19:01:59 Quit FOAD (*.net *.split)
19:01:59 Quit tchan (*.net *.split)
19:01:59 Quit froggyman (*.net *.split)
19:01:59 Quit Elfish (*.net *.split)
19:02:06 Join FOAD [0] (~foad@
19:02:06 Quit FOAD (Changing host)
19:02:06 Join FOAD [0] (~foad@unaffiliated/foad)
19:02:11 Join Elfish [0] (amba@2001:1608:12:1:13:3:3:7)
19:02:20 Join froggyman [0] (~froggyman@unaffiliated/froggyman)
19:02:23 Join Cultist [0] (~Cultist@
19:02:34 Join Guinness [0] (
19:02:35 Join zamboni [0] (~bottledwa@unaffiliated/zamboni)
19:02:47 Join tchan [0] (~tchan@lunar-linux/developer/tchan)
19:03:08 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
19:15:05 Join thomasjfox [0] (~thomasjfo@rockbox/developer/thomasjfox)
19:15:54copperDoes Rockbox have an option to invert channels?
19:16:04copper"This might be a dumb question but is there any adverse effect to the music or sound quality when wearing them in reverse, i.e. swapping the left right channel physically.
19:16:07copperReason i'm asking is that due to the angle of my sony xba's nozzle, wearing them with cable running over the ear causes discomfort but reversing the channels solves it completely."
19:16:34copperswap channels*
19:17:46KatuLooking through the manual, I don't see a setting for it, but I could be missing something
19:18:16[Saint]an oft requested feature.
19:18:26copperit's the kind of option that you wouldn't see any use for, until some random dude on the internets comes up with one
19:18:52bertrik[Saint]: yes, maybe we should implement it
19:18:57[Saint]Or until you figure out the Apple reversed the channels for *some_reason*
19:19:36[Saint]What do you mean where?
19:19:44bertrikIt can be done with the same kind of operations used to do karaoke, mono left, mono right, etc.
19:20:01copperIs there such a problem with some iPods?
19:20:05bertrikSound Settings / Channel Configuration I think
19:20:08bertrik*could be done
19:20:19[Saint]The main reason I've seen this requested is that some people have figured out that Apple reversed the channels for a seemingly unknown reason.
19:20:29copperagain, where
19:20:40copperon what products?
19:21:21[Saint]I have seen this reported with the Classics, iirc.
19:21:54*copper checks it out
19:22:17[Saint]Indeed, the internets pulls up many reports of this
19:23:03coppernope, it's fine on mine with the OF
19:23:05bertrikso, did they swap channels on both the connector AND the headphones?
19:24:01[Saint]I'm not sure, reading through the reports on the forums suggests it may have been a Rockbox bug.
19:24:23[Saint]Either way, it would be nice to be able to do reverse stereo.
19:25:01 Part amayer_
19:25:37*[Saint] wonders what copper is doing with a non-Rockbox'ed Classic
19:25:44[Saint]Bad copper, Bad!
19:25:47[Saint]Go to your room.
19:26:06copperI switch between firmwares and codecs according to my moods
19:26:25[Saint]What does the OF support that we don't?!?
19:26:47[Saint]Or, did I parse that incorrectly?
19:27:07coppernon fucked up USB transfers
19:27:14copperno daily crashes
19:27:17[Saint]Get a sane OS :)
19:27:25copperno u
19:27:39[Saint]Works fine on debian/ubuntu here, also, no crashes...ever.
19:27:53copper"works for me™"
19:27:56[Saint]I've actually tried to crash it, too, following other people recipes.
19:28:05[Saint]No luck yet.
19:28:10copperI don't know what to tell you, I have no idea what the problem is
19:28:11AlexPUSB is well known to be buggered, especially on the classic
19:28:18[Saint]If you have a recipe for a repeatable crash, do share.
19:28:22bertrikI vaguely remember stereo swap was discussed before and perhaps there was even a patch
19:28:24AlexPThis is why emcore comes with such an old version of Rockbox
19:28:31bertrikwonder how it works in combination with balance
19:29:15[Saint]That's why there's a fallback image, but the reason why it comes with such an old image is because that's the last thoroughly tested one.
19:29:24[Saint]The image it comes with has no effect on the fallback image.
19:29:36[Saint]Current images are fine.
19:29:43AlexP[Saint]: No, it is because USB is broken in current builds for many people
19:29:55AlexPAs TheSeven next time he is around
19:29:59[Saint]...which is why there is a fallback image.
19:30:02AlexPHe explained it all to me not long ago
19:30:15copperIIRC I had the fallback image crash as well once
19:30:26copperto be confirmed though
19:30:26 Join stoffel [0] (
19:30:31[Saint]No matter what, you can't replace the fallback image. So the image it comes with is largely irrlevant,.
19:30:33bertrikwould you more likely swap channels because the audio file has it swapped, or because you're wearing the left earphone in the right ear ?
19:31:01copperboth are unlikely situations
19:31:26[Saint]Nuhuhhh...there's quite a few IEMs that are designed to be worn in either ear.
19:31:35copperexcept with people who don't know how to wear headphones, but they're not going to remedy it with some option
19:31:50[Saint]Some have under/over-the-ear combinations that involve swapping the IEMs also
19:32:07 Join amayer_ [0] (
19:32:07[Saint]there isn;t always a clear left/right monitor.
19:32:10copperI cringe everytime I see a dude in the street wearing headphones the wrong way
19:32:22[Saint]again, for some, there isn;t a "wrong" way.
19:32:49[Saint]Some phones are designed to be swapped this way.
19:33:19[Saint]usually ones with under/over-the-ear combinations.
19:34:16bertrikIt looks like it's fairly easy to do left/right swapping, let's just ignore the people who complain about balance working the "wrong way" in combination with the swap
19:37:00*[Saint] doesn't really understand the need for a known good image to be installed with the classic instead of pointing to the current build.
19:37:19[Saint]You can *always* boot the flabblack image, and if the fallback image won;t mount you can't install anyway.
19:38:12[Saint]If the fallback image is toast, you'd need to reinstall with DFU which will always "just work", so...I don;t get it.
19:38:43[Saint]Users should be encouraged to install git HEAD
19:38:54copperI don't get you
19:39:10copperYou want people to install git, but you don't want to advertise the Classic port?
19:39:36[Saint]We don;t advertise any unusable port.
19:39:50coppersounds a bit contradictory to me
19:39:57[Saint]Do tell.
19:40:22[Saint]There is no official way to install Rockbox on the why should we advertise it?
19:40:24copper"Don't install the Classic port, it's unusable, but if you really really want to, install Git, it comes with shitty USB code"
19:40:59[Saint]unusable != cannot be used, it's simple a classification, you know this.
19:41:22[Saint]Also, USb is fine for more people than it isn't, and there is always a way to mount via the fallback image.
19:41:30AlexPYou have no way fo knowing that
19:41:36[Saint]If you can't mount the fallback, you couldn;t install.
19:41:40AlexPIt may be, it may not be
19:41:47AlexPBut there is no point saying that
19:42:04[Saint]Going by reports, it is fine for more people than not. I can only go by what is reported.
19:42:13AlexPThat means nothing
19:42:18AlexPAnd it also doesn't matter
19:42:19[Saint]And it is true, that if you couldn;t mount the fallback image, you couldn;t install.
19:42:24AlexPIt isn't a majority thing
19:42:34AlexPIf it doesn't work for enough people, that is enough
19:42:58[Saint]But it iosn;t like there is no way to access USB even in a current image.
19:43:28[Saint]Even if USB is failing in that build, you can still access USB via the I don;t see the problem in using an up-to-date image.
19:43:35AlexPWe know you don't
19:43:40AlexPYou've said many times
19:43:41*[Saint] stabs his ; key
19:44:13[Saint]And no one can say what the problem is. But they are saying it shouldn;t be done.
19:44:28AlexPI don't understand that sentence
19:44:59KatuI think the major difference here, is whether it is /recommended/ to install in the first place. By saying it is unusable, it is not recommended. However, if you choose to, it may or may not work
19:45:03[Saint]You're saying it shouldn;t use a current image, but I don;t get why. IIUC, it's because of USB, but there will always be a way to access USB.
19:45:17coppera cumbersome way
19:45:33AlexPI'm saying it shouldn't because TheSeven says it shouldn't; he listed the reasons for me a while ago
19:45:44AlexPAs he is the main dev for it, I take his views over yours
19:46:08AlexPUSB was a large part of that
19:46:09[Saint]Well, fwiw, even in freemyipod it is suggest to use the current image.
19:46:12[Saint]So, I don't get it.
19:46:16AlexPWe know
19:46:17copperit does?
19:46:52AlexP[Saint]: I've not been there or read that, this is a result of a conversation last time I suggested emcore ship with an up-to-date image
19:46:58copper"Download the "" file from the emCORE Releases page"
19:47:11AlexPWhich is dead old
19:47:28amayer_its acutally 1 year old today
19:47:31[Saint]Yes, and in many cases in IRC they will instruct to update directly to git head.
19:47:47AlexPwell, you persuade TheSeven then
19:47:49copperit links to this:
19:49:46 Join prof_wolfff [0] (
19:50:34[Saint]It's all irrelevant, really, as there's no way to actually install it officially. I just find it weird that using an ancient image is actively encouraged by the installation instructions.
19:50:36amayer_oh i was mistaken its 1 year and 10 days old
19:50:58amayer_i use the most current version
19:51:03amayer_(dev build)
19:51:09*[Saint] too
19:51:43copperAlexP: why is the USB part better in the old build, and worse in git?
19:51:53copperwork in progress?
19:52:20amayer_ive only ever crashed while using usb twice in the past 9 months
19:52:33copper<−−- crashes 3 times out of 4
19:52:49copperor maybe half the time if I'm not exagerating
19:52:49[Saint]I haven't managed it yet, on Windows or linux
19:52:58AlexPcopper: I don't know for the classic in particular, but there was a major refactoring done at some point which made USB buggy on a number of devices
19:53:04amayer_mine are all ubuntu boxes
19:53:09AlexPThe classic might be that, or something else
19:53:10copperArch Linux here
19:53:11amayer_and 1 debian box
19:53:14[Saint]amayer_: that definitely helps
19:53:37amayer_what using linux for all transfers/
19:53:40copperI haven't used Rockbox with my Win7 install
19:54:01[Saint]Windows seems to be a lot less forgiving.
19:54:16[Saint]At least, most reports of failed mounts I see are Windows boxes.
19:55:03amayer_[Saint]: did your build finish yet?
19:55:11KatuYeah, I have problems mounting every single one of my mp3 players on Windows, and none of them are rockboxed
19:55:36amayer_...very interesting
19:55:53copperoh, btw, I've had my rockboxed Clip+ freeze after USB transfers a few times
19:56:47[Saint]AMS players are *definitely* known to have flakey USb
19:57:03AlexPI've not had one of mine crash on USB
19:57:06AlexPergo, no problem
19:59:50amayer_how is the fuze+ usb?
20:01:25AlexPamayer_: Don't know
20:02:03amayer_oh. my friends mom gave me one for free and i was thinking about rockboxing it... havent gotten around to it yet
20:02:22AlexPAs [Saint] says, SansaAMS also suffers from USB issues (maybe some more than others?), I can't rememeber about other targets
20:02:45 Join wodz [0] (
20:03:13AlexPThe port page on the wiki doesn't mention any USB issues
20:06:01amayer_AlexP: found this
20:06:03amayer_says USB is 100%
20:06:16AlexPyes, that is what I was referring to by port page :)
20:07:01amayer_oh wow... the first thing i got on google was the regular page... i didnt even look at the titles. i thought i was on the port page and that was something else
20:07:21amayer_AlexP: thank you tho
20:07:29AlexPI didn't do anything :)
20:16:49prof_wolfffall my last development was done using r31594 and no issues when using USB on linux in many diferent computers, sometimes it failed but always when using a crappy cable or extension, i am switching to git version, will observe how it behaves
20:21:23***Saving seen data "./dancer.seen"
20:26:51[Saint]prof_wolfff: whoah...that was quite soem time ago.
20:27:11 Join SuperBrainAK [0] (
20:28:20 Quit ender` (Quit: Come to think of it, there are already a million monkeys on a million typewriters, and IRC is nothing like Shakespeare.)
20:30:44prof_wolfffreally old, was traveling and using diferent computers, doing lots of battery benchmarks, so decided to have a fixed release everywhere to get homogeneous results, actually i am going to use my main computer much more and release some patches, so it is time to upgrade :)
20:30:56 Join ender` [0] (
20:31:30*[Saint] now has iLike Video working with modern syntax
20:31:46[Saint]I cut the memory usage in half
20:32:33[Saint]It really is amazing how far the skin engine has come.
20:32:43bertrikchannel swap should be easy to do in channel_mode.c, makes me wonder why it hasn't been done before
20:32:48wodzgevaerts: Do you have a clue whats going on with our builds recently? Random errors pop up. Looks like some concurency problem or something
20:33:23[Saint]bertrik: iirc, someone put up a patch to do so a while ago but it wasn't done in a way that people approved of.
20:34:21wodzit was implemented once with memcpy instead of pointers swap and was rejected
20:35:02bertrikSome codecs can do it too, so that would probably work for non-PCM audio too (like analog input from radio)
20:36:12gevaertswodz: I saw that too. I don't know
20:37:18Katuwhen using the %if tag to test for multiple conditions, what is the correct syntax?
20:38:32[Saint]I _think_ you combine %and in that case
20:38:55*[Saint] hasn't played with %if extensively
20:39:02gevaertsOr %or, of course :)
20:40:50[Saint]Hum...why did I think there was a way to trigger charger plug and charging in the sim?
20:41:23[Saint]Unless I'm mistaken, the display just cycles between discharging, charger plugged, charging, charged, rinse and repeat.
20:41:44bertrikAlexP: have a link for that?
20:41:51[Saint]I know you can trigger USb insert. But I thought you could do so with the sim as well.
20:45:02AlexPbertrik: and the next two in the thread
20:49:25TheSevenAlexP: there's nothing wrong with using current builds if you know about the USB breakage, but I do link to a known-good build right now
20:49:42TheSevenwhat I originally meant was that I can't include a current build as the fallback image becuase that would completely lock down USB
20:51:06AlexPTheSeven: Oh, then we were talking at somewhat cross purposes the whole time :)
20:51:17 Quit shamus (Ping timeout: 276 seconds)
20:51:27*[Saint] is relieved to not be insane
20:51:32AlexPSo a semi-apology, to [Saint] (and you)
20:51:34[Saint](about this, at least)
20:51:58[Saint]AlexP: Not necessary, not at all. But, appreciated.
20:52:08[Saint]Apologies if I came on a bit strong.
20:52:12AlexPNo worries
20:52:22prof_wolfffi am very novice using git, made some local branches, one for each patch i want to send to gerrit, i use the master branch for the patches i want to commit directly, can i switch to one of my local branches and send to gerrit using "git push origin/master HEAD:refs/for/master"?, dont want to break anything
20:52:34AlexPSemi, as USB is still broken, but the situation with the build and emcore isn't as I thought :)
20:52:57 Join thegeek [0] (
20:53:01[Saint]prof_wolfff: yes, you can do that.
20:53:21prof_wolfffSaint: ok, thanks
20:53:38AlexPprof_wolfff: Also, don't worry too much about making a mistake with gerrit - worst case you can just abandon the changeset
20:53:51 Quit stoffel (Ping timeout: 265 seconds)
20:54:09[Saint]Then you just have to switch back to that branch and gerrit will remember it is from the same change set and allow you to push a new patch set or append the last
20:54:27prof_wolfffAlexP: my fear was to send the patch directly to head/master
20:55:38[Saint]prof_wolfff: to do that, it would be "git push origin HEAD:master"
20:55:53AlexPprof_wolfff: ah, indeed
20:56:06[Saint]So, there's no worries as long as you're pushing to refs/for/master
20:57:00[Saint]prof_wolfff: I assume you've looked at
20:57:16[Saint](that link describes branching and pushing directly)
20:58:02prof_wolfffyes, i pushed some patches yesterday but never worked with branches, when you know to use git it is very powerful, i am very impresed
20:58:37[Saint]It is, yes.
20:58:47[Saint]But it seems it is a "love it or hate it" thing.
20:59:03[Saint]Commits from several developers have ceased entirely since the switch
21:00:19prof_wolfffi love it!, unfortunatelly actually i have not much time to read info and experiment with it, but i will do it slowly
21:00:42[Saint]At first, I hated it. With a passion.
21:00:56[Saint]Then I found out how much more it enabled me to do, and I was sold.
21:01:32prof_wolfff:) the branches are very useful to do thinks like we are doing, gerrit is also wonderful
21:02:39pamaurywodz: I've tried clang on zen x-fi3 and it crashes at boot
21:04:47wodzpamaury: I didn't have time to look at disasm whats wrong with clang builds
21:05:22prof_wolfffi am going to send the cpu_freq (36MHz) patch to gerrit, will try to add my benchmarks results and other thoughts
21:05:23pamauryneither me, it could be anywhere, would probably need to first understand where the crash occurs
21:07:12wodzpamaury: there are a few obvious things to check like int vectors, crt0.S placement and irq handlers. If this are correct then we need dig deeper
21:09:34pamaurywell, clang only does the c -> assembly "transformation", so this limits the number of places that can be wrong since crt0.S is alreay in assembling and linking done by gcc
21:09:56pamaurywait, do use LD or CC to link ?
21:10:05pamauryno we use LD, so it's gcc
21:12:15prof_wolfffgot following error when i try to push from my branch -> fatal: 'origin/master' does not appear to be a git repository
21:14:10pamaurywodz: I'll try compiling a much smaller code, without interrupts, to see
21:15:02pamaurywodz: which version of clang did you use ?
21:15:22 Quit akaWolf (Ping timeout: 252 seconds)
21:17:46wodzsvn as of yesterday
21:18:06Katuis there a way to test, using the simulator, the plugged in condition on a WPS?
21:18:52 Quit y4n (Quit: Today is the perfect day for a perfect day.)
21:26:39[Saint]Katu: you can do one of two things. Hardcode the condition to a condition you know is true, or, wait for the sim to cycle.
21:26:47KatuNevermind, looked through the powermgmt-sim.c file and found that it is simulated automatically
21:27:10[Saint]It will automatically cycle between discharging, plugged, charging, and charged.
21:27:13KatuGuess that means it is time to make a sandwich hahaha
21:27:35[Saint]You can also just change the condition to a condition you know is true for the purpose of testing.
21:28:26KatuYou mean change the conditional tag to something that is known to be true?
21:28:26[Saint]instead of checking for charging, you could check playback, for example.
21:28:32Katuahh, I see
21:28:38KatuI'll do that hahaha
21:28:42[Saint]It's hacky, but I've been known to do this in the past.
21:29:09KatuYeah, makes sense
21:29:23[Saint]Alternatively, if you wait long enough ~30 seconds or so, it will become true of its own accord.
21:29:27Katudo you know offhand at what percentage the simulator kicks to charging again?
21:29:45Katuahh, gotcha
21:29:59[Saint]It will discharge from full to 0%, then simulate plugged, then start charging.
21:30:17KatuSounds logical
21:30:37prof_wolfffgot it! "git push origin testing/cpu_freq:refs/for/master"
21:33:39 Quit wodz (Quit: Leaving)
21:34:03 Quit [Saint] (Remote host closed the connection)
21:36:09 Join [Saint] [0] (~saint@rockbox/user/saint)
21:44:44 Join pamaury_ [0] (
21:45:01 Quit pamaury (Ping timeout: 255 seconds)
21:46:13 Join TheSphinX_ [0] (
21:46:40KatuHaha, YES! My iPod Photo just got here. Bought it on ebay for $19 shipped, with a sad face iPod on bootup. Just forced it into disk mode, time for a firmware restore!
21:49:23 Quit TheSphinX^ (Ping timeout: 248 seconds)
21:54:51 Join zaphee [0] (~user@2a01:e35:2e82:4050:8448:4373:e0cb:4377)
22:13:55 Quit thomasjfox (Ping timeout: 248 seconds)
22:14:05 Join jhMikeS [0] (~jethead71@
22:14:06 Quit jhMikeS (Changing host)
22:14:06 Join jhMikeS [0] (~jethead71@rockbox/developer/jhMikeS)
22:15:56 Nick pamaury_ is now known as pamaury (
22:16:06 Quit pamaury (Changing host)
22:16:06 Join pamaury [0] (~quassel@rockbox/developer/pamaury)
22:20:59 Quit Belzebub (Ping timeout: 276 seconds)
22:21:24***Saving seen data "./dancer.seen"
22:24:31 Join Belzebub [0] (~torrentow@
22:28:23 Quit Rower85 (Read error: Connection reset by peer)
22:39:18pamauryhum, this is embarassing: kernel 3.7 breaks recovery mode on imx233, the usbhid driver somehow confuses the device
22:40:25pamaurywodz (logs): If i'm not mistaken, my imxtools/hwemul tool runs on imx233 when compiled with clang !
22:45:50pamauryyeah indeed, so clang's bug might have to do with interrupts perhaps
22:46:22pamaurybut it's already a good news since hwemul includes many complicated things, like usb, that's quite a thing
22:49:40 Join shamus [0] (
22:58:14pamaurywodz (logs): indeed, clang ignores the interrupt attributes !!
22:59:01funmanpamaury: does linux kernel use these attributes? there are some patches floating to build the kernel with clang
22:59:14pamaurydon't know
23:00:40 Quit ender` (Read error: Operation timed out)
23:00:42 Quit ender| (Read error: Operation timed out)
23:03:22funmandoesn't seem so
23:03:52pamauryI don't know how hard it would be to implement in clang
23:04:46pamaury(or more likely llvm)
23:08:43 Part LinusN
23:15:28 Quit amayer_ (Ping timeout: 248 seconds)
23:16:48 Join Poodlemastah [0] (
23:16:50 Join ender| [0] (whatever@2a01:260:4094:1:42:42:42:42)
23:17:04 Quit Katu ()
23:26:27 Join Andrei [0] (
23:26:47 Quit Andrei (Client Quit)
23:35:03pamauryhum, implementing this in clang/llvm would quite some work, small patches everywhere, not trivial
23:46:40funmanof course you can also write your interrupt handles in asm!
23:49:53 Quit zaphee (Remote host closed the connection)
23:51:08pamaurysure, but I guess that's a wanted feature which would be useful to implement !

Previous day | Next day