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).

Notice: Only Gecko based browsers prior to FF4 support the multipart/mixed "server push" method used by this log reader to auto-update. Since you do not appear to use such a browser, this page will simply show the current log, and not automatically update.

#rockbox log for 2002-08-01

00:02:10 Join Bagder [0] (
00:54:13***Saving seen data "./dancer.seen"
01:18:47 Part Bagder
01:51:03 Join MeRWiN [0] (~merwin@
01:56:48 Quit MeRWiN ()
02:11:49 Join mistaRx [0] (
02:30:03 Quit datazone ("Client Exiting")
02:37:47 Quit mistaRx ()
02:45:56 Quit Tumm (Read error: 113 (No route to host))
02:54:17***Saving seen data "./dancer.seen"
03:32:24 Join MeRWiN [0] (~merwin@
03:48:51MeRWiNhow often is a tick?
04:00:42elinenbea tick or a tock?
04:04:59MeRWiNOK, any clue on how to sleep() a thread from within wps.c?
04:09:57elinenbegive it a bed. Some nice pillows will help too. Maybe some soft music and warm milk.
04:15:15 Join MrHad [0] (
04:24:53MeRWiNthat is true
04:24:56MeRWiNi should try that
04:25:05MeRWiNalthough i think the archos wouldn't like that too much
04:28:58 Join Bombelman [0] (george@
04:29:39Bombelmananyone here ?
04:30:13 Quit Bombelman (Client Quit)
04:54:19***Saving seen data "./dancer.seen"
05:03:26MrHadHi all great project.
05:03:27 Quit MeRWiN (Read error: 104 (Connection reset by peer))
05:09:45 Join datazone [0] ([d8A2tDIdR@
05:25:32 Quit elinenbe ("User pushed the X - because it's Xtra, baby")
05:28:13 Nick dwihno is now known as dwihno|gone (dwihno@
05:30:33 Quit MrHad (Remote closed the connection)
05:52:57 Join MeRWiN [0] (~merwin@
06:16:32 Join elinenbe [0] (
06:24:29 Join elinenbe_ [0] (
06:24:30 Quit elinenbe (Read error: 104 (Connection reset by peer))
06:54:24***Saving seen data "./dancer.seen"
06:56:53 Quit MeRWiN ()
07:27:09 Join Linus [0] (~linus@
07:32:56elinenbe_morning Linus.
07:33:00elinenbe_I must head to sleep soon
07:34:59elinenbe_well, I am going to sleep. Good luck on the project today. What do you think about dynamic watermarks?
07:35:11 Nick elinenbe_ is now known as elinenbe|snooze (
07:35:36Linusi don't think it is the solution to Alex's problem
07:35:52Linusmy unit doesn't skip
07:36:00Linuson 320kbit/s songs
07:36:42elinenbe|snoozebut, wouldn't that be a more elegant solution anyway?
07:37:17Linusyeah, probably
07:40:48Linusdoes anybody else experience skipping?
07:49:01 Join MeRWiN [0] (~merwin@
08:09:56MeRWiNhey linus
08:10:48MeRWiNI tried to get some sort of scroll_sleep function going, but couldn't quite get it
08:11:08MeRWiNwithout creating propriatery code inside of lcd.c
08:11:21MeRWiNie: linking it to wps.c
08:11:24MeRWiNand such
08:12:34MeRWiNwell, basically I didn't know how to sleep a particular thread from within wps.c
08:13:30 Join Bagder [0] (
08:14:27MeRWiNBagder: what time is it over there?
08:14:39Bagder08:12 am
08:14:49MeRWiNyou get up early :)
08:14:56Linusi was here at 7
08:15:05MeRWiNI'm going to have to get up at 8:30am east coast time this morning... it's already 2:15 am
08:15:18LinusBagder and I live in the same town
08:15:19MeRWiNstrange strange people :) are both of you at work?
08:15:25*Bagder nods
08:15:40*Bagder eats his breakfast sandwich right now
08:15:42MeRWiNahh... that explains it. I usually get to work around 9 or 9:30...
08:15:58MeRWiNunless i'm traveling (80% of the time) at which point i'm at work 24/7
08:17:14MeRWiNI've decided that i'm a much better UI person for now... until i learn the code more deeply
08:18:03BagderI fsck'ed my disk last night, and yes it had some bad clusters
08:19:12MeRWiNBagder: been shakin' and droppin' your rockbox?
08:19:31BagderI don't know why it happened
08:19:36MeRWiNoriginal hd?
08:19:44MeRWiNbah, return it to archos
08:23:03LinusMeRWiN: use a boolean in scroll_thread called, for example, scroll_allowed
08:23:51MeRWiNexcuse me? i didn't quite get that
08:25:18Linuseven easier, set scroll_count to 0 to stop scrolling, and set it to 1 to continue
08:26:10MeRWiNbut how does scroll_thread know to set the scroll_count to 0? you need to perform the sleep inside of scroll_thread
08:27:18Linusadd a function, pause_scroll() that sets the count to 0
08:27:32Linusand another function, resume_scroll() that sets it to 1
08:27:42Linusand call those from wps.c
08:27:54MeRWiNLinus: how do i tell how much time has passed then?
08:28:06Linuswps has to know that
08:28:32Linusthat is the easy solution
08:29:26MeRWiNthe only way i see of doing that is using the remaining time in the song, but what if there is only like 1 second left in the song and you want to sleep for 5 seconds
08:30:53Linuswhy does the song time has anything to do with the scroll pause?
08:30:57Bagderwe should offer some kind of timeout-functionality
08:31:08LinusBagder: i have been thinking of that
08:31:14MeRWiNhow do i tell elapsed time i mean
08:31:26Linusa soft timer that posts events, and a button_get(timeout)
08:31:38LinusMeRWiN: current_tick
08:31:46MeRWiNhow long is a tick
08:32:06Linusa tick is 1/HZ seconds long
08:32:15MeRWiNso 3 seconds is HZ*3
08:32:19Linustoday HZ = 100
08:32:25MeRWiNthat's what i thought HZ meant
08:32:34Linusthus, a tick is 10ms
08:33:39MeRWiNok, so then would I create a thread and have it terminate when it hits the appropriate amount of ticks?
08:34:02Bagderno dynamic threads please ;-)
08:34:10Linuswe can't kill threads
08:36:10Linusmaybe it is time for an timeout_event function?
08:36:19MeRWiNwhat is that?
08:36:43Bagderyes, I think it would be a useful addition
08:38:34LinusMeRWiN: it would send an event to a queue after an amount of time
08:38:48MeRWiNahhh... yes, we need that :)
08:40:16MeRWiNwoo! that simple addition worked... just use lcd_pause_scroll() before calling display_keylock_text() and lcd_resume_scroll() after it
08:40:19MeRWiNworks like a charm :)\
08:41:06MeRWiNor rather, i should do it inside of display_keylock_text()
08:44:17Linusin today's solution, yes
08:44:35Linustomorrow, we should use timeout_event
08:45:09Linushehe, i have doubled the bitswap speed by putting the code in internal RAM
08:46:05MeRWiNeither way, for the display_keylock_text you need to do it this way i think.... it needs to keep the screen clear and not let anything else on the screen update while it's being displayed. that's why the sleep function is inside of the display_keylock_text() function
08:47:14Linusi think draw_screen should do the screen updates, and output the "keylock ON" message while the timeout hasn't occurred yet
08:47:33MeRWiNwould it even know that the timeout is there?
08:48:01Linusyes, because you would use a state variable that it can read
08:48:32Linuslike enum display_state(NORMAL, KEYLOCK, ...)
08:48:47Linusand draw_screen whould check that
08:49:00MeRWiNand muted?
08:49:07Linusand whatever
08:49:41MeRWiNthat seems like it would just over-complicate things
08:50:17Linusthe sleep() effectively slows down the responsiveness
08:50:24Linusit is bad, bad, bad
08:50:50*Bagder agrees with Linus on this
08:50:55MeRWiNthat is true... it would get rid of the problem with pressing the keylock key 5 times in a row taking 5 seconds to get through
08:51:24MeRWiNdoes current_tick ever reset itself?
08:51:32MeRWiNseems as if that number would grow big very quickly
08:51:38Linusyes it wraps
08:51:53Linusthere are macros in kernel.h that takes that into account
08:52:04LinusTIME_BEFORE() and TIME_AFTER()
08:52:19Linuslook in kernel.c and watch how sleep() is implemented
08:53:23MeRWiNwhat does continue() do?
08:53:45Linusthe continue keyword starts the loop over again
08:54:26***Saving seen data "./dancer.seen"
08:54:44Linusthat is, it goes to the top of the loop without executing the rest of the loop body
08:55:00Linuslike "next" in Perl
08:58:09MeRWiNI don't quite understand how you could implement a timeout function that wouldn't interrupt other code
08:58:22MeRWiNwithout creating a different thread for it
08:59:43Linusyou mean how to implement timeout_event()?
09:00:32Linusi would implement timeout_event by adding a list of timers that are decremented by the tick interrupt
09:00:56Linusand the tick interrupt code would send an event to the queue that "owns" the timer that has reached 0
09:01:06Linusa kernel functionality
09:01:40MeRWiNahhh... something just a bit above my head right now.
09:01:56Linusi can implement that later if you wish
09:02:09MeRWiNif you can implement it, i can fix code to use it :P\
09:02:32Linusgood, but it'll have to wait a little. many things to do right now...
09:02:42MeRWiNconceptually, i've got threading down... actually in practice i'm not so good at it
09:03:05Linusgood, learning by doing is the best practice
09:04:09MeRWiNI wish I had a laptop that worked right. heh. I'd do it on the plane ride home if I did.
09:07:28MeRWiNtime for sleep
09:07:39 Nick MeRWiN is now known as MeRWiN|Sleep (~merwin@
09:10:24Bagdernight MeRWiN
09:18:21Bagderthis image is broken, isn't it?
09:18:27Bagdermozilla shows it very oddly
09:18:32PsycoXulhey can the firmware be able to read from the HD while in usb mode?
09:19:21LinusPsycoXul: no
09:19:36PsycoXuloh :/
09:19:39LinusBagder: it is a large "Box"
09:19:44PsycoXulBagder: all i can see is a really big "box" in the middle
09:20:01Bagderyeah :-/
09:21:15Bagderconvert doesn't manage to create a good png from the tif
09:22:10Bagderanything preventing me from announcing this asap?
09:24:08LinusBagder: maybe we should discuss it you and me first
09:24:29LinusBagder: switch to the secure frequency
09:24:38Bagderroger that ;-)
09:30:35*adi|home wants in on it too
09:47:11MeRWiN|SleepBagder: why can't i access any of those webpages? :p
09:47:18 Nick MeRWiN|Sleep is now known as MeRWiN|SleepWalk (~merwin@
09:47:21BagderI moved it
09:47:35Linusthey are not official yet
09:47:39BagderLinus and I are discussing it just now
09:47:50MeRWiN|SleepWalkI don't even know what they are. heh
09:48:11MeRWiN|SleepWalkI've officially given up on sleep
09:50:29*PsycoXul starts designing :p
09:56:54 Quit MeRWiN|SleepWalk ()
10:20:15 Join MeRWiN|SleepWalk [0] (~merwin@
10:20:19 Nick MeRWiN|SleepWalk is now known as MeRWiN (~merwin@
10:20:29adi|homeanyone around willing to take a look at my resume and offer suggestions?
10:20:48MeRWiNwhere can i find it
10:20:50adi|homek.. what format you want it in?
10:20:57adi|homei can dcc it to you in a min if you want
10:21:02MeRWiNin doc format if you please
10:21:06MeRWiNi think dcc will work.
10:21:17HesHmm, are these internal RAM changes speedups? faster than the flash rom?
10:21:33Linusfaster than Dynamic RAM
10:21:45Hesinternal RAM is on the cpu?
10:21:54MeRWiNLinus: what will this speed up?
10:22:07Linusdouble speed disk read and bitswap
10:22:09Hesway cool.
10:22:20MeRWiNwe need faster disk reading, so this is great
10:22:21Hesi'm stunned.
10:22:28Linusi havent benchmarked the thread swutch though
10:22:45Linusbut it should be way faster now
10:22:58Linusplease try it out
10:23:11MeRWiNwhen is it going to be in cvs?
10:23:31Linusit is now
10:23:43Linusthat's how the others found out
10:23:52MeRWiNhow often are things updated on the webpage then?
10:24:04Linusevery X minutes
10:24:44Linusbut some of us have joined the CVS update mailing list
10:24:54MeRWiNi try clicking on anything in the "batch" column on the daily build page and it shows only a blank page
10:24:59Linusso we get instant CVS activity reports
10:25:20HesMust upgrade by recorder right away. 8-)
10:25:37Bagderthe "batch" column?
10:25:55MeRWiNCVS compile status on the daily build page...
10:25:57LinusMeRWiN: blank? no. i get a CVS history report
10:26:03Linuswhat browser?
10:26:12Bagderthey should cvs logs to me
10:26:12MeRWiNLinus: IE... it was just working 10 minutes ago
10:26:46Linusit is still working for me
10:27:39MeRWiNI'm going to reboot... i think my stupid compaq is freakin'
10:27:42 Quit MeRWiN ()
10:35:33 Join MeRWiN [0] (~merwin@
10:36:27MeRWiNheh, that looks much better
10:39:19HesThe new build does not seem to boot for me.
10:39:30HesThe thing boots to the archos firmware.
10:39:58MeRWiNhes: try again
10:40:02MeRWiNcopy it over again
10:40:21HesI'm already doing my 3rd try 8-) now building again too.
10:40:51Heshessu@funk:/opt/src/archos/src/build$> mount /archos/
10:40:51Heshessu@funk:/opt/src/archos/src/build$> md5sum ajbrec.ajz /archos/ajbrec.ajz
10:40:51Hes15e91badcd26c3e281f1236347f23f26 ajbrec.ajz
10:40:51DBUGEnqueued KICK Hes
10:40:51Hes15e91badcd26c3e281f1236347f23f26 /archos/ajbrec.ajz
10:40:51Heshessu@funk:/opt/src/archos/src/build$> umount /archos/
10:41:18HesSeems to be ok (i invalidated the cache after the copy by disconnecting and unmounting)
10:41:46MeRWiNmine booted to archos too
10:41:49HesWon't bood.
10:41:51HesWon't boot.
10:42:20BagderI didn't even know it could boot into archos firmware if the file is there
10:42:27MeRWiNapparently it can :)
10:42:38HesIt can, i've seen it with a broken firmware before
10:42:54MeRWiNi'm doing a make clean and remake it
10:43:03Bagderso how does it know when to run the internal?
10:43:10PsycoXulBagder: yeah of course it can.. if it fails to boot the file
10:43:25Bagderyes, but the scramble and things should be fine here
10:43:41MeRWiNhehe.. the archos.mod file is 318k :)
10:43:46PsycoXulBagder: when the file is no good, or over ~200K according to my tests on my player, it boots the internal rom
10:43:52 Part Bagder
10:44:03 Join Bagder [0] (
10:44:10MeRWiNBagder: my archos.mod is 318k
10:44:34Hes-rw-rw-r−− 1 hessu hessu 364470 Aug 1 11:38 ajbrec.ajz
10:44:41Bagderyeah, too big that's why
10:44:44Bagderit isn't loaded
10:44:53BagderLinus changed the link control file
10:45:02MeRWiNI think it needs to be re-looked at :)
10:45:05Linusmaybe i broke something really bad
10:45:16HesLinus: yours booted?
10:48:01MeRWiNwell this is problematic with such a nice feature added
10:48:27adi|homewhich feature was added?
10:48:28MeRWiNThis is as bad as microsoft... add one optimization and the code size multiplies by 10 :)
10:49:10MeRWiNadi|work: go to the home rockbox page
10:49:28MeRWiNadi|home: check out the cvs updates
10:49:48CtcpIgnored 1 channel CTCP requests in 0 seconds at the last flood
10:49:48*adi|home is lazy :)
10:50:00MeRWiNadi|home: things were moved into internal RAM
10:50:07MeRWiNspeeds up stuff about 100%
10:50:11MeRWiNsome stuff
10:52:13adi|homegot ya
10:52:39adi|homewhat exactly is that doing?
10:52:46*adi|home isnt a hard wear guy too much
10:52:50MeRWiNgot me :)
10:53:00MeRWiNi just know that it's faster
10:53:01Bagderexecutes code in a different ram location
10:53:05Bagderfaster ram
10:53:30adi|homeBagder: could you give a "laymens, adi is a dumb post" kinda explaination of how we got there?
10:53:57Bagderwe have "internal" and "external" ram on the CPU
10:54:11Bagderwe can have code in both
10:54:20Bagderexecuting code in the internal ram is faster
10:54:27***Saving seen data "./dancer.seen"
10:54:34Bagderup until now, we only used the external one
10:54:39adi|homeis there any similarity for this to a desktop pc?
10:54:46Bagdernot really
10:54:48*adi|home tries to draw a mental map
10:55:09adi|homeokay, so internal and external ram
10:55:16Bagderit's like if you insert two different SIMMs in a PC, one is fast and one is slow
10:55:23*adi|home nods
10:55:27adi|homethat makes sense..
10:55:39Bagderthe external one is of course much bigger than the internal
10:55:57adi|homesince its bigger, bigger address space, slower look ups?
10:56:04adi|homeor is there another reason its slower?
10:56:32Linusdynamic ram is slow
10:57:41*adi|home avoids driving you nuts like he did to his science teachers, always asking 'why?;
10:57:55adi|homeokay.. so when we boot, we load from ext ram to int ram
10:58:01adi|homehow exactly is that done?
10:58:10adi|homedo we write to a specifc location in the int ram?
10:58:22adi|homeand the processor just knows to pull from there if there is data?
10:58:36Bagderthe different rams are on different addresses
10:59:15adi|homeso you just reference the correct address when you go to write.. got ya..
10:59:30MeRWiNso do we know what is wrong with the current code?
10:59:48 Join yro [0] (
10:59:53yroHi there
10:59:56Bagderhey yro
11:00:06adi|homeokay.. one last question on this...
11:00:19Linusi just committed a correction to the linker scripts
11:00:23adi|homehow are we deciding what does and does not go into the ram?
11:00:45Bagderadi|home: the internal ram is *very* small, we can only have a few selected and important functions there
11:00:50Linusadi|home: you set an attribute to the function, telling which section it should go to
11:01:10Linuslook at thread.c for example
11:01:32MeRWiNLinus: so a CVS update should fix it?
11:01:41Bagderit does, I just tried
11:01:59*adi|home hasn't updated his cvs version in like 2 months
11:02:00*adi|home smirks
11:02:11MeRWiNmine is still 318686
11:02:38BagderLinus: did you fix the player version too?
11:07:52 Join notch [0] (hidden-use@
11:09:30MeRWiNthanks :) worked
11:09:35MeRWiNor at least it's the correct size now
11:10:39LinusThe internal RAM is 4Kbytes
11:11:02Linusand i have second thoughts about putting the LCD frame buffer in iram
11:11:26Linusputting data in iram does not give that much impact
11:11:41Linuscode is better
11:11:47MeRWiNit seems as if the disk spins down very quickly
11:12:15BagderLinus: so maybe lcd_update() should go there instead
11:12:53MeRWiNLinus: is there any way to keep the disk spinning for say like... 3 seconds? (or at least when you're switching tracks)
11:12:59MeRWiNjust curious
11:13:32LinusMeRWiN: the disk spin down timeout is 5 secs
11:13:39Linusor at least, should be
11:14:14Linusbut not when playing music
11:14:33MeRWiNis there a way to set it to 5 second spindown when switching tracks?
11:14:35Linusthe mpeg loader spins down the disk as soon as the track has loaded
11:15:00LinusMeRWiN: of course there is a way
11:15:07MeRWiNI think that may be part of the problem with not being able to change tracks correctly immediately after loading a track
11:15:07Linusthis is software
11:15:59Linusthe disk spindown is not the track switch problem
11:16:23Linusit is the MPEG_NEED_DATA and MPEG_SWAP_DATA event queue
11:16:27MeRWiNwould leaving the disk spinned up for a couple seconds speed up immediate track changes though?
11:16:53Hesthe speed increase is really noticeable, I didn't expect it to matter _this_ much
11:17:12Hesvery much faster while browsing directories & starting playback
11:17:25LinusMeRWiN: all disk accesses would of course be faster if the disk didn't spin down
11:17:27Bagderwill we see a noticable increased battery life time?
11:17:35Linusi think so
11:17:57MeRWiNLinus: where would I go to change the spindown time on track changes?
11:18:22Linusthere is no such thing in the code that takes care of track chenges
11:18:37MeRWiNor rather, spindown time when playing
11:18:44Linusyou can remove the ata_spindown call in mpeg.c
11:19:16Linusthen it will always wait 5 secs before it spins down
11:19:28Bagderisn't that spindown causing problems if another thread is using the disk while it is called?
11:19:55MeRWiNthere is no ata_spindown in mpeg.c
11:20:04MeRWiNthere's an ata_sleep though
11:20:10Linussame thing
11:20:27LinusBagder: no, the mutex takes care of thet
11:21:00BagderLinus: yes, but it will make the other thread perform worse, right?
11:21:24Bagderand require an extra spinup
11:21:41LinusBagder: of course
11:22:02Linusdo you have a better idea?
11:22:26MeRWiNLinus: removing the ata_sleep speeds up an immediate track change about 200%... probably uses a bit more battery though
11:22:54BagderLinus: well, it would be if it would somehow be able to detect that the other thread uses the disk
11:22:57MeRWiNLinus: and also fixes the playlist immediate trackchange problem!!!
11:24:31MeRWiNit could be compensated for somewhat by changing the spindown time to 3 seconds from 5... seems as if that may be sufficient
11:25:25BagderLinus: wouldn't it be possible to instead of doing ata_sleep(), just set a timeout on like 0.5 seconds, so that if another thread is using the disk within that time, it won't spindown?
11:26:19Linusyou mean that mpeg.c only would alter the timeout instead of calling ata_sleep()
11:26:36MeRWiNthe timeout would have to be set back though...
11:26:53Bagderyes, but I guess that anything that uses the disk will do that
11:27:34MeRWiNthe ata_sleep() seems to be a problem in any case
11:28:14Linusi just did the coolest thing
11:28:31MeRWiNwhat would that be
11:28:31Bagderyou streaked across your work office? :-P
11:28:58Linusinstead of telling the disk to go to sleep, i just shut off the power to it
11:29:15Linusand it works
11:29:25Linuswhat a battery saver!
11:29:34MeRWiNhmm... would that hurt it at all?
11:29:39Linusi guess not
11:30:06Linusexcept that it works only on the recorder
11:30:50notchI think it's safter to shut of the power only when you know you are not reading writing to the disk...
11:32:20notchbut I'm guessing that's the case?
11:32:20Linusnotch: of course
11:32:41Linusthe sleep is done only when nobody is accessing the disk
11:32:57Linuseven before my power down change
11:33:05Linusit is essential
11:33:27MeRWiNhow much battery drain would increase by getting rid of the ata_sleep in mpeg.c?
11:33:41Linusbut i don't think the power down will increase the battery life that much
11:34:07MeRWiNLinus: it's nice to be able to change the song within 5 seconds of starting it and not have to spin up the drive
11:35:10Linushow about this:
11:35:37Linusdirectory reads sets the timeout to 5 secs, and file reads set it to 0.5 sec
11:35:49MeRWiNLinus: make it 2 and you've got a deal :)
11:36:16Linusi smell config options...
11:36:24adi|homethats just me
11:36:26MeRWiNAHH!! I'll write that one :)
11:36:28adi|homei haven't showered yet
11:36:38*Bagder chuckles
11:36:42 Join ripnetuk [0] (
11:36:54MeRWiNLinus: config options i can do. heh. create a new global variable?
11:36:57Hes ... asm '02 is opening
11:37:04BagderLinus: 5 / 0.5 is fine to run as a test to start with
11:37:07Linusthat would make two hard disk sleep timers
11:37:26MeRWiNoh my god... a stadium full of geeks
11:37:30Linuswe need to think about this
11:37:37notchHes: What was the link?
11:37:46BagderLinus: it could be one timer still, only raised to 5 or 0.5 by different functions
11:37:51Hesnotch: ?
11:37:58Linusmaybe we don't want playlist file reads to timeout that quickly?
11:38:12LinusBagder: i was talking about the config options
11:38:12BagderLinus: why not?
11:38:25BagderI don't think we need them as config options yet
11:38:40Linusstarting to play a playlist would require two spindowns
11:38:57MeRWiNBagder: config would be good... you either get longer battery life, or quicker track changes
11:39:23Linusread playlist (0.5s timeout)...parse it...scramble it...start playing first somg
11:39:43Linusthe disk will spin down before the first song starts playing
11:39:45BagderLinus: hm, yes I guess you're right, for big playlists it'll take longer than 0.5
11:39:54MeRWiNwill it be less than 1 second still?
11:40:02Bagderbut then, the playlist code could deliberately prolong the time-out
11:40:07Linusabout 1 sec per 1000 tracks
11:40:16MeRWiNBagder: that's true
11:40:20BagderLinus: the load time, yes
11:40:21notchHes: Guess I'm not a geek! :-)
11:40:28MeRWiNBagder: delay it to a few seconds
11:40:57BagderLinus: the post-load code will not take 1 sec per 1000 tracks
11:41:10Bagderit is only a fraction of a second on my 3200 song playlist
11:41:12Hesnotch: You should be seeing over 3000 nerds in that webcam in a single shot tomorrow evening 8-)
11:41:12Linusmeybe not
11:41:26Hesand over the weekend... slightly less today.
11:42:19Linusaccording to Fujitsu, the power requirements say 2.3W for an active drive and 0.1W for a sleeping drive
11:42:41Linusso shutting it off completely would probably not make that much of a difference
11:43:02MeRWiNso leaving the drive active for a couple seconds won't make too much of a power drain?
11:43:33LinusMeRWiN: leaving it active makes a difference
11:43:36notchThat's 25mA !
11:43:58notch0.1W that is
11:44:01MeRWiNLinus: would the config option be a global var?
11:44:20Linusi will let my recorder play until it drops and see how much longer the battery life is
11:44:32LinusMeRWiN: a global_option
11:44:48 Nick notch is now known as notch|learningto (hidden-use@
11:45:02Linusor something
11:45:25Linusbut we need to work out the technical details first
11:46:46MeRWiNdoesn't hurt to create the menu though :)
11:48:13Linusno, i guess not
11:50:40Linusthe CPU takes about 60-90 mA when running
11:52:11MeRWiNThere, there's a menu for it now...
11:52:58MeRWiNLinus: where is the 5 second spindown actually set?
11:57:40MeRWiNwhat would be the "legal" way to set sleep_timeout to global_settings.spindown
11:58:16Linusit should be done in the same way as the scroll_timer
11:58:22Linusand the backlight timer
11:59:33Linusi thought you would look at the code when i wrote that
12:00:03Linusi mean that the load_settings() calls the set_xxx_timer() functions when it loads the settings
12:14:00 Quit notch|learningto (Read error: 104 (Connection reset by peer))
12:14:23MeRWiNgot the config item working... it sets the default GLOBAL spindown time :) setting it to 1 second actually seems to function properly
12:14:34MeRWiNunless you hit something like a playlist and try to change immediately
12:14:52MeRWiNI personally like 3 seconds
12:21:21Bagdertime to get food
12:28:38LinusI made some measurements regarding the power usage
12:29:04Linuswith ATA_SLEEP: 200mA
12:29:14Linuswith ATA poweroff: 75mA
12:29:43MeRWiNnice power change
12:29:58Linusand it's about 500mA when reading from disk
12:30:10Linusand about 7-800 when spinning up
12:30:50MeRWiNin some cases, leaving it spinned up is better than spinning it up every 3 seconds?
12:31:17Linusand 250 when the disk is spinning and idle
12:32:28Linusfrom this, i can see that our SLEEP doesn't work as expected
12:32:49Linusit draws too much current when sleeping
12:33:07Linusthe sleep should take about 50mA
12:33:33Linusand the CPU about 70
12:34:52MeRWiNany clue why?
12:35:08MeRWiNhow can sleep take less than poweroff?
12:35:20Linusit doesn't
12:35:32MeRWiNyou said that sleep is supposed to be 50mA and poweroff is 75mA
12:35:47Linusi was talking about the HD itsels, sorry
12:35:52MeRWiNah all adds up
12:36:24LinusUwe measured the Archos firmware power consumtion
12:36:45Linusthey use 95mA when idle
12:37:09MeRWiNyeah, definately too much for ours
12:38:11Linusthat must mean that they use the SLEEP function for the HD
12:38:28Linusand that they put the CPU to sleep
12:39:03MeRWiNhmm... why would you put the cpu to sleep
12:39:12Linusto save power of course
12:39:25Linusyou save 20mA
12:39:44Linusnot really.
12:39:49Linusthose numbers are for 5V
12:40:04MeRWiNaren't we 5v?
12:41:09MeRWiNso it would be more like saving 12mA?
12:41:21Linusi guess
12:41:54Linusi wonder why our ata sleep takes so much power...
12:42:18MeRWiNdunno, but it's a great power drain though. Probably reduces overall life by about an hour
12:43:34Linusbut maybe the drive wears out faster because of all the power cycling?
12:45:27MeRWiNi'm working on a quick track skipping method right now (holding down the next track button to cycle through tracks)
12:45:47Linusdon't do that
12:46:13Linuswe want to use those keys for fast wind/rewind
12:46:17HesIt's needed for seeking inside a file
12:46:42MeRWiNwell, i'll trash that code then :)
12:50:26MeRWiNin any case, I've got that HD spindown code done....
12:51:26Linusi tried using ATA_STANDBY instead, and i got less power consumption than ATA_SLEEP...
12:51:41Linusweird indeed!
12:51:53MeRWiNhow much less?
12:53:57Linus200mA with sleep
12:54:02Linus125 with standby
12:54:30***Saving seen data "./dancer.seen"
12:54:31Linuswe must do something wrong when using SLEEP
12:56:10Linuslunch time
12:56:25 Nick Linus is now known as Linus|lunch (~linus@
13:01:11 Nick yro is now known as yro|lunch (
13:04:08MeRWiNhow do i use patch?
13:04:17MeRWiNto redo a diff that I made
13:04:28MeRWiNerr.. implement a diff that i made
13:04:35Bagderpatch < file
13:23:50 Quit MeRWiN (Read error: 110 (Connection timed out))
13:25:06 Nick Linus|lunch is now known as Linus (~linus@
13:36:59 Part Bagder
13:37:09 Join Bagder [0] (
13:37:29Mode"#rockbox +o Bagder " by ChanServ (ChanServ@services.)
13:44:26 Nick yro|lunch is now known as yro (
13:57:43 Join Mighty [0] (
14:05:05HesThe deep discharge mode of the charger seems to work too.
14:05:15Linusdeep discharge?
14:05:49Hesthe charger patch has a toggle to change the max charge level to start charging
14:05:54Hesbetween 10% and 90%
14:06:09Hesin 'deep discharge' mode it only starts charging when the charge has gone down to 10%.
14:07:29Linusis the battery charging code cleanly separated from the graph code?
14:10:49HesYes, quite well
14:11:18Hescan easily remove/disable the graph/debug stuff
14:11:32Hesthere are some global variables used instead of functions to set them
14:11:45Heswhich could be cleaned up if that's the preferred way
14:12:06 Quit fragglet (
14:12:42Linusi have no problems with global variables, quite the opposite
14:14:47 Quit Mighty ("BitchX: its wax ecstatic")
14:16:24NJoinfragglet [0] (
14:17:41Bagderso linus, any thoughts on 1.2?
14:18:30HesI've seen the approach of set_foo_bar() being exported from the firmware side, and the function actually just sets a local variable in the firmware
14:18:40Hessounds like a waste of time for most cases
14:19:15Bagderyes, but sometimes it is handy to begin with if we haven't quite thought out all details
14:20:02Bagderbut for a single global, I agree that it makes little sense
14:26:12 Quit fragglet (
14:26:29NJoinfragglet [0] (
14:26:44LinusBagder: i still haven't worked out the distortion issue
14:31:47Bagdera "Hold function" is the key lock we already have, isn't it?
14:31:57*Bagder reads feature-requests
14:34:04 Join jedix [0] (
14:36:35LinusBagder: i have already browsed all the feature requests
14:36:53Linusbut i decided not to close them until they are implemented in an official release
14:38:18BagderI don't think that very good, as people will use the feature-request list as items to implement as long as they're open and uncommented
14:38:41Linusmaybe you are right...
14:39:09BagderI also find it very odd that only 3 people can get a feature request assigned to them
14:39:25Bagderand the categories and groups stink
14:39:42BagderI know, that's Björn's area
14:40:04Linusit also stinks that we can't remove groups and categories
14:41:11 Quit fragglet (
14:41:24NJoinfragglet [0] (
14:42:12BagderI could add people ;-)
14:45:09 Quit fragglet (
14:45:38NJoinfragglet [0] (
14:54:31***Saving seen data "./dancer.seen"
14:57:53HesBtw... the idle poweroff timer would be nice to have
14:58:10HesI've accidentally powered it on a few times and then it has discharged in the bag.... um... pouch.
14:58:28LinusHes: care to implement it?
14:58:32HesIt'd be good for charging too (can the device be powered off while connected to a supply?)
14:58:51Linusyou can shut off the hard drive
14:59:15Hesif the device is not being used, it should be turned as off as possible when the battery is fully charged
14:59:22Linusand yes, you can shut off the unit, but it will restart again, to the archos charger
14:59:42HesSo we just sleep as well as we can, right?
15:00:01Linuslcd_update in DRAM: 36ms
15:00:12Linuslcd_update in IRAM: 20ms
15:00:35Linusi was thinking about memset()
15:00:39Linusamd memcpy()
15:00:44Bagderah, good idea
15:00:48Linusmore candidates?
15:00:53HesVery neat. It feels and looks much faster now.
15:01:19HesScreen drawing routines?
15:01:51Bagderyeay, lcd_bitmap() is a candidate
15:02:49HesArgh, i'm going to the machine room to fix a switch.
15:03:02HesThe bandwidth limiter for asm02 just melt down.
15:13:29Bagderso maybe we can get the charger code comitted too before 1.2 is released
15:13:58LinusI'd like to test it though
15:14:09Bagderyeah, me too
15:14:10Linusbut i want his lates patch
15:14:38Linusthe rockbox really flies with the IRAM patch
15:14:41elinenbe|snoozehoe large is the internal ram?
15:14:45Bagderbut it feels so unproductive having to mail around patches instead of simply comitting and sit on the bleeding edge instead
15:14:53 Nick elinenbe|snooze is now known as elinenbe|wake (
15:15:14*Bagder wants to fly too
15:15:22LinusBagder: you are right, but killing batteries is nothing to be taken lightly
15:15:33BagderI guess not
15:15:52elinenbe|wakeBadger: agreed. too many patches on the email list −− they should be in the CVS
15:15:56Linusi would like to enable the disk saving of settings too
15:16:27LinusZagor is away, let's dance on the table and merge those suckers
15:17:07LinusWe should merge the charger patch first, because the disk save depends on the battery status filter
15:17:33elinenbe|wakehas anyone tried the "ipod UI" patch that was posted to the list?
15:18:01Bagder"[PATCH] progressbar and slidebar" ?
15:18:24elinenbe|wakeyeah, that is the one.
15:18:31BagderI'm about to apply
15:18:34elinenbe|wakeI am checking that out right now.
15:18:35mbr_This is a patch from me. Hope the code is not too bad :)
15:18:50Bagderlooks fine
15:19:16mbr_BTW. Is someone working on the remote?
15:19:31Bagderyou go ahead ;-)
15:19:34LinusYes, i can't remember who it is, though
15:19:49Linuscheck the irc logs
15:19:57mbr_OK ....
15:20:21elinenbe|wakeanyone, how do you apply a diff?
15:20:30 Nick elinenbe|wake is now known as elinenbe (
15:20:40Bagderpatch < file
15:20:48Bagderor sometimes patch -p0 < file
15:20:59Bagderlike in mbr's patch
15:23:54Bagdermbr_: you happen to have a screen dump of your progress bar running?
15:24:14mbr_No, sadly not.
15:26:00mbr_I make on in simulator. One moment please ...
15:29:08mbr_Badger: and
15:29:17mbr_This is my test screen
15:29:19HesI'm pretty sure the charger can't kill batteries. It might not charge them to the absolute max, which could reduce their capacity, but just a little.
15:29:56Bagderthey look great!
15:29:56Linusmbr_: looks cool!
15:30:17BagderI'll commit
15:30:40mbr_cool, my first code in rockbox :)
15:32:03Bagderand thanks
15:32:33mbr_np, thats what oen source is for
15:32:39mbr_open source
15:32:45elinenbeI think it looks great too.
15:33:00elinenbenow we just need a slider like that for the volume,bass,etc...
15:33:02Bagderits now in CVS
15:34:00LinusBagder: don't forget credits.c
15:34:17Bagderwe should automate
15:34:22Linusmaybe a script?
15:35:54Bagderyes, "one day" ;-)
15:36:00elinenbeI think that widgets like mbr_'s are wonderful. Our entire UI should be full of widgets. Sliders, tabs, etc...
15:36:56Bagderyes, it makes it more good-looking
15:37:07Bagderand look *is* important
15:38:15elinenbeI couldn't agree more.
15:38:19 Join mistaRx [0] (
15:39:52Bagderhey ho
15:40:37mistaRxit was u who gave me a "#define Save_To_disk" mo, right?!
15:40:44Linusi did
15:40:50Linusi think
15:41:10Bagderdoes it matter who?
15:41:31mistaRxok, it doesn't work, can't u do a new one with the newest build, pleez..?!
15:41:37Linushang on...
15:41:57Linusold LCD, right?
15:42:54 Quit yro ("ircII EPIC4-1.1.5 -- Are we there yet?")
15:43:53Bagderwoo,! ;-)
15:44:15Bagder"Hejsan alla barn"
15:44:20*Bagder laughs
15:49:55mistaRxWEHEEJ!! it's working
15:51:35mistaRxdo u know if it afects the battery life?!
15:52:26Linusonly very, very slightly
15:52:49Linussince it only writes to disk when you change anything via the settings menu
15:53:01elinenbepictures of latest firmware in action (with slider) elinenbe/archos/temp/2.jpg">
15:53:05mistaRxok, was just going to ask that..
15:53:44elinenbethe pictures were taken with a $5 digital camera so beware!
15:55:20Bagderhehe, yeah the quality of the pics ain't top notch but I get the point ;-)
15:55:54mistaRxwell gotta go, bye bye
15:56:05 Quit mistaRx ()
15:56:59Linusi'm running the slider patch now. looks great!
15:59:12elinenbewhat used to be on that line?
15:59:26Linusnothing, i think
15:59:30Bagderjust the battery line below it
15:59:36mbr_There was nothing before
16:00:13Linusmbr_: since you are at it, would you like to do a status bar?
16:00:26mbr_Status bar?
16:00:29Linuscontaining battery status, play status, volume and so on
16:00:36mbr_with battery and so on?
16:00:49Linusthat one would be dislayed in almost every screen
16:01:00Linusjust do the status_draw() function
16:01:08Bagdersee upcoming mail from me
16:01:22mbr_Can do it, but i am not a gui design guru
16:01:32Bagdernow you are ;-)
16:01:55mbr_I'll look into it this evening
16:02:13Linusno pressure
16:03:13Linusgotta go. cu guys!
16:03:24 Part Linus
16:03:41mbr_I have to go too, bye!
16:03:46Bagdersee ya
16:06:56 Join sam___ [0] (nio@
16:11:46sam___Got a question , read yahoo groups mailing archive but only find few answer, i'm going to by a pda and want to know if there is a way to use my archos jukebox as mass storage ?
16:12:55sam___I prefer palmos but i was thinking that if somebody port an usb driver will be more easy on windows ce
16:13:09Bagderif the PDA can act as a USB master, then yes
16:14:30sam___hum , ok found this on msdn so seems to be possible
16:15:36Bagderyes, it indicates that windows CE can run as a USB master
16:15:45Bagderit doesn't necessarily mean that all PDAs running it can
16:16:17 Nick dwihno|gone is now known as dwihn0r (dwihno@
16:16:22dwihn0rHas anyone seen edx lately?
16:16:36Bagderhe popped in quickly the other day and vanished again
16:16:54dwihn0rhas he gone for a trip or something?
16:17:24BagderI don't know
16:18:50 Quit sam___ ()
16:23:39*dwihn0r hands Bagder some coffee
16:23:57dwihn0rI need to get the win32.mak files so I can compile rockbox on my new development (kickass) box :)
16:24:16dwihn0rI see you merged the patch with the progress bar. Is it neato?
16:24:33Bagderit is n-e-a-t-o ;-)
16:24:55*dwihn0r went to Ö.B and bought cheap noodles
16:25:01dwihn0rand cheap godis
16:27:47HesExcellent, now we have a GUi design guru 8-)
16:28:04Bagderheheh, exactly
16:32:23dwihn0ranyone with a build I can test? I'd love to see :)
16:32:56Bagderhang on
16:33:30dwihn0ryay :)
16:34:13Bagderit is also much faster now
16:34:49dwihn0rit is?
16:34:58dwihn0rmany tweaks?
16:35:16Bagderlots of important functions now run in the faster internal ram
16:37:06dwihn0rI read something in the CVS logs
16:37:14dwihn0rThe sound settings has gone through a major improvement as well
16:38:19Bagdergotta run, see ya
16:38:20 Part Bagder
16:54:35***Saving seen data "./dancer.seen"
17:00:22 Join elinenbe- [0] (
17:00:53elinenbe-i am on my palmphone
17:01:09 Quit elinenbe- (Client Quit)
17:03:39 Join notch|learningto [0] (
17:04:11notch|learningtojust built a serial remote for the player...
17:04:39notch|learningtoworks fine on a recoreder, but does not work at all on the player...
17:04:42notch|learningtoany ideas?
17:13:15 Join elinenbe_ [0] (
17:13:15 Quit ripnetuk (Read error: 104 (Connection reset by peer))
17:13:31elinenbe_Hello there again.
17:17:32 Quit elinenbe_ (Client Quit)
17:17:47 Quit ironi_ (Read error: 110 (Connection timed out))
17:18:01 Quit notch|learningto ()
17:40:12 Join ironi__ [0] (~ironi@
17:43:41 Join Tumm [0] (
18:40:29dwihn0rironi: I got my new box now ;D Yay!
18:54:39***Saving seen data "./dancer.seen"
19:04:45 Join ripnetuk [0] (~george@
19:24:02 Quit ripnetuk ()
19:24:05 Join ripnetuk [0] (
19:24:08 Quit ripnetuk (Client Quit)
19:33:51 Join ripnetuk [0] (
19:58:06 Join champi [0] (
20:01:13 Quit champi (Client Quit)
20:05:18 Join mistaRx [0] (mistaX@
20:14:39 Quit mistaRx ()
20:54:41***Saving seen data "./dancer.seen"
21:23:47 Join WetFlax [0] (
21:46:46 Join mistaRx [0] (
21:56:30 Part mbr_
21:58:21 Join mbr [0] (
22:19:34 Quit datazone (Read error: 110 (Connection timed out))
22:31:00 Quit mistaRx ()
22:42:34 Quit adi|home (Read error: 110 (Connection timed out))
22:54:42***Saving seen data "./dancer.seen"
23:09:25 Join adiamas [0] (
23:11:36 Nick adiamas is now known as adi|home (
23:11:36 Quit adi|home (Remote closed the connection)
23:11:44 Join adiamas [0] (
23:12:21 Nick adiamas is now known as adi|home (
23:13:28 Nick adi|home is now known as adi (
23:13:28adihmmm oddd
23:13:28adican't seem to change my nick
23:13:28 Nick adi is now known as adi|home (
23:58:43 Quit jedix (Remote closed the connection)

Previous day | Next day