diff options
author | Daniel Stenberg <daniel@haxx.se> | 2002-04-23 17:53:22 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2002-04-23 17:53:22 +0000 |
commit | ade48b800f7e487d1ba87bba27b70ef18770d190 (patch) | |
tree | 884452e8c14ea655f53669109cb544fac30937bc | |
parent | 350629929d8045e9a703f0acba0d4acd0a018236 (diff) |
April 23, 2002 saved for the future to see... :-)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@200 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | www/irc/index.t | 1 | ||||
-rw-r--r-- | www/irc/rockbox-20020423.log | 1012 |
2 files changed, 1013 insertions, 0 deletions
diff --git a/www/irc/index.t b/www/irc/index.t index 0de43cd2be..76814ace6b 100644 --- a/www/irc/index.t +++ b/www/irc/index.t @@ -20,6 +20,7 @@ for later reference. <li><a href="rockbox-20020417.log">April 17, 2002</a> <li><a href="rockbox-20020418.log">April 18, 2002</a> <li><a href="rockbox-20020419.log">April 19, 2002</a> +<li><a href="rockbox-20020423.log">April 23, 2002</a> </ul> #include "foot.t" diff --git a/www/irc/rockbox-20020423.log b/www/irc/rockbox-20020423.log new file mode 100644 index 0000000000..153c700e06 --- /dev/null +++ b/www/irc/rockbox-20020423.log @@ -0,0 +1,1012 @@ +**** BEGIN LOGGING AT Tue Apr 23 07:54:50 2002 + +--> Bagder (~daniel@as3-3-2.ras.s.bonet.se) has joined #rockbox +--- Topic for #rockbox is Open Source Jukebox Firmware - http://bjorn.haxx.se/rockbox/ +--- Topic for #rockbox set by Zagor at Fri Apr 12 15:45:52 +>nickserv< identify nintendo +-NickServ- Password accepted - you are now recognized +--- services. sets mode +e Bagder +-MemoServ- You have no new memos +>chanserv< op #rockbox +--- ChanServ gives channel operator status to Bagder +<adiamas> man o man.. am i behind..... +<adiamas> heheh +<Bagder> hey +<adiamas> hows it going? +<Bagder> just fine +<Bagder> I finally got my usb2 working, then everything must be fine doesn't it? ;-) +--> Linus (~linus@labb.contactor.se) has joined #rockbox +<Bagder> morning +<Linus> Morning! +<Linus> Man, I just went to bed... :-) +<Bagder> ugh +<Bagder> :-) +<Linus> Fells like it anyway +<Linus> feels +<Linus> Sleep is overrated +<Bagder> indeed, you do too little good work then ;-) +<Linus> But I do no harm either. :-) +<Linus> The threading kernel rocks! +<Bagder> you've ran it on target now? +<Linus> Yup. Yesterday evening. +<Bagder> *neat* +<Linus> It wasn't *that* hard. Half of the SH registers are scratch registers. +<Linus> The PR was the tricky part. +<Linus> I hate that gcc doesnt inline functions unless you optimize with -O. +<Bagder> right, there should be some way to force that +<Linus> I tried a few preprocessor tricks but it messed up my stack frame. +<Linus> The next thing is a timer tick to sleep() on. +<Bagder> yeps +* Linus goes to fetch a cup of coffee +* Linus says "aaaaaah" +<Linus> I modded Zagors serial port yesterday. No contact. :-( +<Bagder> oh pain +<Linus> I wonder how many Player users have tried the remote control. +* adiamas quotes "rest is for the weary and sleep is for the dead" +<Linus> Good morning! +<adiamas> i ment to ask.. was there a decision reached about what type of filesystem we will be using? +<adiamas> bah.. gettin ready for bed +<Linus> FAT32. +<Linus> Or have I missed something? +<adiamas> have we implimented open() and stuff? +<adiamas> for file opens and closes.. etc +<Bagder> no +<Bagder> but we intend to +<Bagder> I mean, follow the standard file paradigms +<Linus> That doesn't really depend on what filesystem we use. +<Bagder> Linus: do you know how to see what device the Archos appears as under Linux? I mean for /dev/sdaX... +<Bagder> is that just the scsi devices enumerated? +<Linus> Not a good way. The storage driver outputs the string "sda1" (or whatever) in the kernel log. +<Bagder> right +* Bagder documents some of the USB madness +<Linus> Yes they are enumerated. So the first storage device you plug in gets sda1, the next gets sdb1 and so on. +<adiamas> right, but ive never written anything that low level.. i mean for file IO... +<Linus> Björn may have som info about that... +<Linus> I mean the USB madness. +<Bagder> yes +<Linus> The file I/O API will most likely look like POSIX +* Bagder found some rather good (small and clean) id3-tag code he'll dissect today +<Linus> You mean version 2? +<Bagder> both v1 and v2 +<Linus> Nice. It's a pity that ID3 V2 tags arent small and clean... +<Bagder> hehe +<Linus> Some people should reaaly be shot +<Linus> Why do I always type double "a" when I want double "l"??? +<Linus> I guess it's a matter of brains size. +<Bagder> :-) +<Linus> (and there was an extra "s" after "brain" ...) +<Bagder> we'll need a seek for the id3 tag stuff to work +<Linus> Of course +--> Zagor2 (~bjst@labb.contactor.se) has joined #rockbox +--- Zagor2 is now known as Zagor +<Bagder> morning +<Zagor> morn +<Zagor> of course you're supposed to start the archos before you load the modules. ;-) +<Bagder> you know why? +<Zagor> yeah, that's the timing issue they mentioned. the recorder takes too long to initialize +<Bagder> that's probably also why you can't have it in the kernel, you're forced to use modules +<Zagor> yes +<Bagder> Zagor: I have a first id3 code approach +<Zagor> ah, nice! +<Linus> Zagor: why does it work for you? +<Linus> (the recorder) +<Zagor> because I've always done what you just discovered +<Zagor> I just never thought it was special +<Linus> So you had it working out of sheer luck! +<Zagor> well, sort of yes. it's a habit I established since writing the isd200 driver, to always load usb-storage last +<Linus> Grrr +<Bagder> Zagor: I've tried to summarize the Linux/USB/Archos stuff in a little HOWTO +<Bagder> I'd be glad to get some Player info added too +<Zagor> ok, good. +<Bagder> should I add it to the www module somewhere? +<Zagor> sure, call it usb.t +<Zagor> or usb-howto +<Bagder> in docs/ ? +<Zagor> no, in the www root +<Bagder> ok +<Zagor> docs is for data sheets +<Bagder> added, it is plain ascii for now +<Zagor> ok +--> wavey (~wavey@dlan1431.dircon.co.uk) has joined #rockbox +<wavey> good goddamn morning to y'all +* Bagder waves +<Zagor> hi there +* wavey badgers +<Bagder> reading v1 and v2 tags mostly working now +<Bagder> even estimates song length in seconds +<Linus> Rock'n'roll! +<adiamas> wavey.. any particular reason you have a dir named after yourself in the CVS? +<wavey> Bagder: excellent! +<wavey> ad: it's where I'll be developing stuff +<adiamas> hehe k :) +<adiamas> hehe tetris.. i love it. +<wavey> do we have any generic data structure code yet? +<wavey> i wanna toy with playlist impl ideas +<adiamas> no.. what do you need? +<wavey> lists, stacks +<adiamas> hmmm and it's not c++ so stl is outta the question... +<wavey> yus +<adiamas> i could hack you out a quick list class if you want... +<Zagor> we have a list class +<wavey> heh +<wavey> so could I +<Zagor> just not in the cvs +<wavey> :) +<wavey> it's about reuse :) +<Linus> a "class"? +<adiamas> hehehe i know :) +<Zagor> not class, file :-) +<adiamas> nods +* adiamas has c++ terms on the brain. +* Zagor is polluted too +<wavey> apparently glib has all that inside it +* wavey investigates +* Bagder all of a sudden realizes that now he can check the total playtime of his entire mp3 collectin using his new tool ;-) +<Zagor> hehe +<Bagder> Title: Forever Young +<Bagder> Artist: Alphaville +<Bagder> Album: Forever Young +<Bagder> Length: 225 seconds +<Bagder> Bitrate: 128 +<Bagder> Frequency: 44100 +<adiamas> Bagder: you have source up yet? +<wavey> bad: you decoded the file according to the spec, or you stole the source from elsewhere? +<Bagder> I stole it +<Bagder> from Ample +<Bagder> GPLed +<wavey> stole in the best possible way, of coiurse :) +<adiamas> nods +<wavey> heh yeah +<adiamas> what about id3? +<adiamas> you said you ahve id2 and 1 down yes? +<Bagder> yes +<Bagder> id3v1 and id3v2 +<adiamas> nice little command line util i pulled off of sf the other day... +<adiamas> got ya.. +<adiamas> been hacking on that... +<Bagder> now, I'll make the estimated time to not use floats... +<adiamas> so before i continue playing.. is there any use to the little battery display i tosed up? +<Linus> Daniel: how to remove all TABs in a file in emacs? +<Bagder> untabify +<Zagor> adiamas: i think it's useful, as soon as we get a UI going +adiamas adi|atWork <Bagder> adiamas: you should port it to use the proper lcd API though +<adiamas> nods +<Linus> Bagder: Yeah right. Any better idea? +<adiamas> thats what i was talkin about... +<adiamas> in emacs? no idea.. vi its easy. +<Bagder> Linus: "Convert all tabs in region to multiple spaces, preserving columns." +<Linus> "in region" Ah. +<Zagor> vi is never easy :) +* Zagor ducks +<adiamas> hehehe +<adiamas> bah.. +<adiamas> :%s/<your tab char>/ /g +<Zagor> that just replaces it, then you have to reindent your whole source +<Zagor> untabify does it right +<wavey> glib looks reasonably complete. +<Zagor> reasonably slimmed, too? +<wavey> need to check the way it allocates memory +<wavey> we using malloc? +<Bagder> if I wanna add test code for the id3 stuff, should I create a new dir in test/? +<Zagor> not if we can avoid it +<Zagor> Bagder: yes. test/bagder or test/id3 +<wavey> what i figure +<wavey> d +<Bagder> ok, will use test/id3 +<adiamas> did we ever straighten logging out? +<adiamas> like what funcst were using? +<Zagor> logging? +<Bagder> for simulators etc +<adiamas> nod +<Linus> debugf()? +<Linus> I think you could use the same API as debug.h +<Zagor> glib is a MONSTER +<Linus> The glib lists require malloc() +<Linus> Well, most lists do... :-) +<Linus> I suggest that we use my list functions for lists. Daniel and Björn know what I'm talking about. +<Linus> I can commit them in a minute. +<Bagder> sure +<Zagor> ok, I admit: +<Zagor> we need a subdir :-) +* Bagder chuckles +<Zagor> for all standard code such as lists etc +<Zagor> those will quickly grow to many files +<Linus> OK here we go. Here comes the "common" directory! :-) +<Linus> Aaaaaah! +<Zagor> no! not "common" aaaaaaaaaaagh! +* Linus fears the "common" directory +<Zagor> i still (stubbornly) think it's a good idea to have the current code in a single dir, though +<Bagder> I hope it is fine to commit the id3.c source even though it still contains a few malloc? +* Linus wants to brain wash Zagor +<Zagor> sure +<Linus> So what shall it be? A "common"? +<adiamas> would you rather call the lower level funcs that malloc references? +* adiamas doesn't understand the problem about malloc +<Zagor> i would rather avoid dynamic allocation alltogether, as far as possible +<Linus> No. it's just allergy to dynamic memory. +<Linus> adiamas: Say after me "memory leak" :-) +<adiamas> say after me: code properly +* Bagder committed his id3 code +<Bagder> a single c file +<Zagor> it's not just memory leak problems. it's memory use predictability +<Zagor> we have *VERY* tight memory requirements, so control is of the essence +<adiamas> memory use predictability? +* adiamas figured it was that.. +<Linus> How much memory is used when +* Zagor is not always too fluent in english ;) +* Linus is waiting for a response about the "common" +<Zagor> do we have a bid for a better name? +<adiamas> nah.. i think that works... +<adiamas> cause im against "stuff_that_everyone_is_probably_going_to_use_kept_in_one_spot" +<Zagor> so am I. but I don't like the name "common" :-) +<PsycoXul> 'shared'? +<adiamas> we can always rename later +<adiamas> id rather common over shared +* Zagor grudgingly accepts 'common' +<Zagor> mumble mumble +<Linus> ALOOS (A Load Of Old Shit)? +<Zagor> ALOUS (A Load Of Useful Shit) ? +<adiamas> okay.. battery.c in +<adiamas> use it whenever you want, or ignore it.. whatever +<Bagder> we have a few other widgets in Gary's code too +<Linus> apos (A Pile Of Stuff) +<adiamas> poe +<adiamas> (pieces of excriment) +<Zagor> poetic :) +* adiamas winks +<adiamas> oh.. oh.. how about... +<adiamas> "stuff" +<adiamas> hehehe +<Zagor> haha +<Linus> A winner +* adiamas bows deeply +<adiamas> and my mothe said i would never amount to anything... +<adiamas> s/mothe/mother +<adiamas> what other widgets are in garys code? +<Bagder> "Draw battery level indicator" ;-) +<adiamas> lol figures :) +<Bagder> progress bar +<Bagder> horizontal slider +<Bagder> vertical slider +<adiamas> perhaps a "widgets" file would make more sense... +<Bagder> "Draw function key labels at bottom of screen" +<adiamas> is gary's code in the cvs yet? +<Bagder> no +* Zagor has a revelation +<Zagor> "drivers" +<Zagor> :) +<Zagor> for all the current stuff +<adiamas> hmmm that don't seem right... +<Zagor> heck, I'm man enough to admit I'm wrong +<Zagor> sometimes I am, anyway ;) +<adiamas> Bagder if you want to either a: mail me or b: submit to the cvs, ill try and update to current lcd code +<Zagor> adiamas: you can find it on the web page +<Bagder> Zagor: I think it might be a hit +<adiamas> where? +<Zagor> http://bjorn.haxx.se/rockbox/gary/ +<wavey> found a nice non-float random number generator +<wavey> tiny too +<adiamas> that works. +<wavey> with references to knuth throughout the code :) +<adiamas> would it make more sense to have a 'widgets' file that has this sorta stuff in it? +<Zagor> adiamas: don't put everything in the lcd.c, though +<adiamas> right +<Zagor> yes +<adiamas> k +<Zagor> maybe we should even have a 'ui' directory +<Bagder> wow +<adiamas> hmmm don't think we need that yet... +<Bagder> Zagor's in the mood today ;-) +<Zagor> hehe. it's either 0 or 1, you know ;) +<adiamas> we cold always create it later when the need suits.. +<Zagor> yes +<Linus> I have sinned +<adiamas> ? +<Linus> I added a "common" directory +<Zagor> you mean apart from toasing my jukebox? ;) +<Zagor> toasting +<Linus> Prove it. :-) +* adiamas runs around screaming that the sky is falling +<Zagor> hehe +<Zagor> we'll have a mailreader.c before you know it... +<wavey> :) +<wavey> netscape syndrome +<adiamas> lol +<Zagor> "Every software evolves until it can read mail" +<wavey> and it won't be mailreader.c, it'll be mail/Imap.c mail/pop.c mail/smtp.c +<wavey> because i'm committing them now ;) +<Zagor> hehe, right +<PsycoXul> heh +<adiamas> well the hell with you guys... im commiting common/Solitare.[ch] outta spite. +<wavey> :) +<Zagor> ...i already committed tetris.c. neener neener ;) +<adiamas> i know.. i played withit.. +<Linus> Sorry. I'll have to move them to common/mail/pop.c etc. +* wavey chuckles +<Bagder> I'm off for a few hours, back later... +<Linus> CU! +<adiamas> now a really cool tetris would be able to increase and decrease in size ;) +* wavey Bagders +<adiamas> later +<Zagor> adiamas: yeah, mine is a bit small :) +<wavey> coolness is related to the ability to pulsate? +<wavey> that's a new one +<adiamas> whats was the final word on src format? +<adiamas> 4 spaces on indent yes? +<Zagor> yes +<adiamas> and i_am_a_function, not IAmAFunction +<adiamas> right? +<Zagor> yes +<Zagor> and IAMAMACRO +<adiamas> right +<Zagor> or I_AM_A_MACRO is acceptable too +<adiamas> any word on comments? +<wavey> glad to hear it :) +<Zagor> C style +<adiamas> namely, multiline? +<wavey> there's // comments already in there +<Zagor> wavey: yeah, but their about to go extinct +<Zagor> they're +* adiamas will fix those as much as he can as he goes +<wavey> ok cool +* adiamas wonders if the src formats should be added to the FAQ +<wavey> yes +<Zagor> we have a CONTRIBUTING file describing it. that should be mentioned in the faq +<wavey> and CONTRIB +* adiamas nods +<Zagor> ok guys, commit what you have. I'm about to move all drivers +<Linus> OK Zagor. Define driver. +<Zagor> good point +<Zagor> here's my thought about which files go into "drivers": +<adiamas> pile.c +<adiamas> hammer.c +<adiamas> andretti.c +<Zagor> ata, button, fat, i2c, lcd, led, mas, serial +* adiamas cackles happily +* Linus falls asleep +* adiamas nods +<adiamas> seems sensible +<Linus> Kick it! +<Zagor> CLEAR +* Linus ducks +<wavey> heh +<adiamas> with cvs, as long as i do an update -dP, do i still ahve to do a checkout before i work on and submit code? +<Zagor> you should +<Zagor> to avoid complex conflicts +<adiamas> k. +<adiamas> how should i reference the CONTRIB in the FAQ? +<adiamas> just tell them to check out CONTRIB in the source? +<Zagor> yes, or bjorn.haxx.se/firmware/CONTRIBUTING +<Zagor> ok i'm done +<adiamas> that url doen'st work +<Zagor> ah, forgot "rockbox" +<Zagor> http://bjorn.haxx.se/rockbox/firmware/CONTRIBUTING +<adiamas> node +<adiamas> nod +<adiamas> okay.. all fixed +<Zagor> web page updated +<wavey> my cvs update didn't create the drivers subdirectory within firmware. isn't it recursive? +<Zagor> you should use "update -dP" +<wavey> ok, cheers +<Zagor> as it says on the web page :) +--- Linus is now known as Linus|lunch +<wavey> doh +<adiamas> whats the address to send _to_ the mailing list?> +<Zagor> rockbox@cool.haxx.se +--- Zagor is now known as Zagor|lunch +<adiamas> okay.. last addition to FAQ for the night.. bed time now... +<adiamas> night +<wavey> night +--- adiamas is now known as adi|sleep +<adi|sleep> oh... btw.. if my humor gets a bit much.. tell me... +<adi|sleep> i tend to wander a bit on the 'acceptable' scale +<wavey> weird behaviour on my recorder - all sound ceased +<wavey> a shutdown and restart with dc power didn't change that +<wavey> a battery pull with no dc woke it up +<wavey> piece of shit +--> alkorr (jbcoax@srs03v-6-237.n.club-internet.fr) has joined #rockbox +<wavey> hiya alan +<alkorr> hi everybody +<wavey> 'hi doctor nick!' +* wavey chuckles +<wavey> simpson's reference +<wavey> s/'// +<alkorr> :) +<-- alkorr has quit (Client Quit) +<wavey> does id3 have upper size limits for strings? +<wavey> for memory saving, it seems sensible to me to extract the values from a track we want to display at runtime using the id3 code, (with a fallback to the filename if id3 is empty ) rather than having the track entry in the playlist duplicate those values. +<wavey> i know that makes almost no sense +<wavey> so ignore it +<wavey> until i can express myself clearly :) +<adi|sleep> i keep having a file that lists as 'read only' but the permissions are set otherwise... +<adi|sleep> ive had this before.. +<adi|sleep> how do i change it. +<wavey> on unix? +<adi|sleep> yup +<wavey> i've never had that +<wavey> chmod 777 fails? +<wavey> are you accessing the file from the cmdline or some tool? +<wavey> and aren't you asleep? :) +<adi|sleep> cmdline +<adi|sleep> i kno i know... +<adi|sleep> and i have had it before.. +<wavey> linux? +<wavey> ext2? +<adi|sleep> learned it when a box i was working on was cracked... +<adi|sleep> yeah.. its not related to the chmod perms +<wavey> and you are su? +<adi|sleep> yup... tried it that way to.. i know its not tht.. +<wavey> you're saying that root is being told a file is read only? +<wavey> that only happens when the fs is read only +<adi|sleep> yes... dude.. ive had this before... trust me.. +<adi|sleep> no.. its not.. +<adi|sleep> i know what im talking about here ;) +<wavey> sounds fucked to me :( +--- Zagor|lunch is now known as Zagor +--- Linus|lunch is now known as Linus +<wavey> by the way, i've started coding playlist.c to provide a simple list of tracks +<wavey> it'll use linus' lists.c +<wavey> and some randomising code i found +<wavey> add, remove, get next, get previous, etc +<Zagor> sounds good +<Zagor> wavey: we're using newlib, which includes rand() +<Linus> wavey: rand() is part of stdlib. +<wavey> how large is newlib +<wavey> i didn't expect to be using any libs +<Zagor> a lot smaller than glib :) +<wavey> ok cool +<Linus> Pretty large if you link it all. Stdio and stdlib takes about 30k. +<wavey> (i was going to extract stuff from glib, not use it ;) +<wavey> and you intend to use it all? +<Linus> Yes. In the beginning. After a while we will find out what we need and what we don't, and replace newlibs functions with our own. +<wavey> ok +<wavey> sounds reasonable :) +--- wavey is now known as wav_lunch +<wav_lunch> latersss +<Linus> Yeah, we want to develop the archos specific stuff first. +* Bagder returns +<Linus> Welcome Bagder +* Bagder bows +<Bagder> lots of commits +<Zagor> yup +<Zagor> I'm writing a progress mail for the list. any specific points I should include? +<Linus> The thread API +<Bagder> yes, run on target +<Zagor> that's included +<Bagder> ran even +<Bagder> the need for documentation of APIs :-) +<Bagder> id3 code +* Bagder is gonna cut off the malloc()s now +<Linus> Bagder: It's actually double work to try to simulate the threading code. :-) +<Bagder> indeed +<Linus> So obviously it is only run on target. +<Bagder> yes, but the point would be to tell that it has run +<Linus> Of course. +<Bagder> as we already have mentioned the thread api before +<Linus> I think the threading code it quite neat and even cool. +<Bagder> I like it. Very little extra, only the very stuff that needs to be there +<Zagor> yes, it's beautiful +* Bagder committs +<Zagor> hmm, how do we glue together newlib and our fat code? +<Zagor> anyone done it before? +* Bagder shakes his head +* Linus hides +<Bagder> if you build the id3 test program now, it is easily tested on large amounts of files +<Zagor> have you tried writing tags, or only reading them? +<Bagder> only reading +<Bagder> writing isn't that important, is it? +<Zagor> ok. good enough for now +<Zagor> no, not until much later +--- wav_lunch is now known as wavey +<Zagor> wavey: how are you designing the playlist code? +<wavey> simple abstract list at the moment +<wavey> i see a track_t struct +<wavey> and the playlist is a list of these +<wavey> or a list of meta info about each track perhaps +<Zagor> sounds like a lot of ram for 999 songs? +<wavey> i only wanna hold the filename in the struct at the moment +<wavey> ideally +<wavey> i don't think we can hold any less than that in mem +<wavey> alternative is the inode for each title +<Zagor> you can have a byte index for the start of the line in the playlist file +<Zagor> (there are no inodes) +<wavey> ah :) +<wavey> ok +<wavey> so playlist is always a file based entity? +<wavey> ack phone +<Zagor> yes, i think we will always use files for playlists +<Zagor> if we make one on-the-fly I would say we still want to save it before using it +<wavey> ok no problem +<wavey> the more ram we keep free the better +<Zagor> exactly +<wavey> so we need to store the filename in question and the line number +<wavey> makes the playlist code rather simple :) +<Zagor> we don't really need to store the filename either +<wavey> course we do +<Bagder> in the file we do +<Bagder> playlist file +<wavey> oh, of course +<Zagor> index the list file, looking for newlines. keep a list of the index of each new line. that is the play list in ram +<wavey> we gonna persist all other normally memory resident information too? +<Zagor> such as? +<wavey> user settings +<wavey> vol +<wavey> balance +<wavey> etc +<Zagor> I want them persistent, yes +<wavey> all in one file? +<Zagor> or using the pre-fat sector that the player uses +<wavey> how much space is in there? +<wavey> are we supporting ext2? :) +<Bagder> *g* +<PsycoXul> how about ext3? +<PsycoXul> :p +<wavey> heh +<PsycoXul> journalling baby, do these devices good :p +<Zagor> each sector is 512 bytes, and i think there are 63 unused sectors +<PsycoXul> course with other filesystem support we still need to have a fat root +<wavey> 32k +<Zagor> 512 bytes is plenty for these settings +<wavey> be nice to have a good API abstracting that space for our storage +<Zagor> yes +<wavey> this is getting quite sexy +<wavey> ok +<wavey> playlist is in-memory indexes into our playlist file. +<wavey> if user abandons that playlist +<wavey> by selecting a new playlist from disk +<wavey> we copy the contents to our special playlist file? +<wavey> and recalc the indexes +<Zagor> no +<Zagor> or +<PsycoXul> you know another thing that'd be kinda nice is to be able to make a playlist of playlists sorta deal +<Zagor> what do you mean "special playlist file"? +<wavey> um +<wavey> i understood that +<Zagor> PsycoXul: metalist. yeah, good idea. next version :) +<wavey> we would be storing filenames for our playlist in a special file +<wavey> to save ram +<Zagor> but we already have the filenames, in the playlist...? +<Bagder> the playlist on disk *is* the file names +<wavey> and if the playlist is constructed on the fly? +<wavey> interactively +<Bagder> then it must be stored +<Zagor> they must be saved on disk too +<Zagor> shouldn't be a problem +<wavey> yes - but the user shouldn't have to name the file +<wavey> so we have a special one +<Zagor> yes +<Bagder> ah +<PsycoXul> just like a tmp file +<wavey> i guess +<wavey> ok, so with pre-existing playlists, we store the filename and indexes in memory +<wavey> for an on-the-fly list, we create a special file and do the same as befor +<wavey> e +<Bagder> sounds fine +<wavey> cool +<wavey> ok, makes for trivial code. which is good :) +<Zagor> trivial is good +<Bagder> simplicity is golden +<wavey> indeed :) +<PsycoXul> also makes the on-the-fly lists easy to persist +<Zagor> yup +<Zagor> we could have an option to "save" (rename) an on-the-fly list +<wavey> zag: sure +<PsycoXul> yeah +<Zagor> later :) +<wavey> and randomise simply changes the order of the indexes +<Zagor> yup +<wavey> to do disk-wide random play, our playlist file idea gets a little more complex +<wavey> or a little larger, at least :) +<Zagor> do you have a good randomize algorithm? +<Bagder> I want randomize-among-all +<Zagor> to randomise a bit array +<Bagder> but it takes some thinking +<Zagor> big array +<wavey> my exp isn't that good with randomising, but we'll get something working +* Bagder nods +<wavey> perhaps knuth has an archos and will be willing to help out :) +<Zagor> yeppers +<Bagder> hehe +<Zagor> anyone feel like writing lcd-charcell emulation for the simulator? +<wavey> you said there are no inodes +<Zagor> :) +<wavey> do we have aything similar that we can access files by? +<Zagor> wavey: we have clusters, almost the same thing +<Linus> Yup. FAT entries +<wavey> so we could do disk-wide random by examining these clusters by index? +<Bagder> Zagor: charcell LCD simulated could just use the recorder's lcd string output function, two lines 11 chars +<Zagor> the problem with those is that you have to look them up for each file, which is what takes so long in the current firmware +<wavey> hang on +<Zagor> Bagder: of course. good idea +<Bagder> it would probably need a more complete charset simulation though +<Zagor> and some icons +<wavey> will the fat32 code give us these clusters by index? +<wavey> oh +<wavey> you mean it's file->cluster relationship? +<wavey> nor cluster->file? +<Zagor> yes +<wavey> bugger +<Zagor> so it's not really useful for indexing +<wavey> it might still be an option.. pre calc all file->cluster entries ready for later use +<wavey> i.e. a user option +<wavey> (go make a large cup of coffee option) +<Zagor> yeah, but what for? there's no gain +<wavey> because later use of these indexes means instant random file access +<wavey> for disk-wide random play +<wavey> perhaps my ignorance of the fat layer is confusing me :/ +<Zagor> instant, as opposed to 200ms delay for looking up the file? +<Bagder> disk-wide +<Bagder> you can't have the file names then +<Zagor> yeah, but disk-wide we still need an index file +<Zagor> so why save clusters rather than filenames? +<Bagder> it would make a smaller file +<Bagder> but I agree +<wavey> hmm, given a cluster id, can't we get the filename easily? +<Linus> No +<wavey> ok, scratch that idea then +<wavey> worth a try +<wavey> the alternative is to create the special playlist file with every filename on disk in it before we can do random play +<Linus> The directories point out the start cluster of each file, but reverse lookup is not possible +<Zagor> wavey: we need the playlist file in any case. i vote for filenames +<wavey> which again is a big hit, but only once, compared to the archo's firmware solution +<wavey> zag: we don't seem to have a choice anyway :) +<Zagor> nope :) +<wavey> ok cool +<wavey> and it's consistent too +<wavey> which simplifies things +<Zagor> precisely. an on-the-fly list is handle by the same code as manually created lists +<Bagder> so with something like 12-16 bytes in ram per mp3, we make can have a 4000 song playlist on 64K +<wavey> start of new song in playlist pushes that song index to prefat storage? +<wavey> mid song end pushes the time to prefat storage? +<wavey> mid song end = user decision +<wavey> are those sentences are mystifying as they read to me? :) +<wavey> s/are/as ! +<Bagder> I understand your point +<wavey> goddamnit I can't talk today +<Zagor> about pre-fat storage: +<Zagor> we should have a "queue" of such things that "wants" to be stored +<wavey> both points to enable resume +<wavey> zag: nice +<Zagor> then store it when/if the disk spins up for some other reason +<wavey> hmm - that sounds like it might need a priority system +<Zagor> why? +<wavey> stop button on a song +<wavey> to allow resume +<wavey> would need to persist immediately in case user powers off too +<Zagor> that could be a user option +<wavey> yup +<wavey> not so much a priority, but a wait or no wait option +<Zagor> yes +<wavey> shall I write up some of this for the list? +<wavey> be good to capture it while it's fresh +<Zagor> sure +<Bagder> please do +<wavey> i'll advertise irc again too +<wavey> so damn useful +<Zagor> i just did in my last mail :) +<Bagder> over and over again +<Bagder> ;-) +<Zagor> :) +<wavey> how long until you envisage fat32 in place? +<wavey> few weeks? +<Zagor> it depends +<Zagor> could happen next week, could take a couple +<wavey> cool +<Zagor> my plan is to start with fat32 and no long-filename support +<Zagor> when that works we can test the MAS interface +<Zagor> then we add long filenames +<Bagder> sounds like a plan +--- ChanServ gives channel operator status to Zagor +--> edx (edx@pD950D24B.dip.t-dialin.net) has joined #rockbox +<edx> hi :) +<Bagder> hey +<Linus> Welcome edx! +<Zagor> ah, edx! +<edx> the simulator is working for lcd.c +<Linus> Cool! +<Bagder> neat +<edx> scanned my JBR and took it as the interface :) +<Zagor> hehe +<edx> hm i am not sure whether code for the JB (not recorder) will work - ill have to try that +<Zagor> http://bjorn.haxx.se/rockbox/devcon/show.cgi?img4083.jpg +<Bagder> good comparison pic +<edx> what is the resolution of teh JBS displays? +<Zagor> jbs? +<edx> jukebox studio +<edx> (normal jukebox) +<Zagor> ah, 11x2 +<Zagor> characters +<Zagor> we call it "player" +<Bagder> edx: if you just get the kets too, you could play tetris soon! ;-) +<Bagder> keys +<wavey> can we agree to refer to individual mp3s as 'tracks' rather than 'songs' +<Bagder> sure +<wavey> the current firmware refers to songs when loading spoken word tracks and it annoys me :) +<edx> hm how is the lcd controller accessed - completely different way i guess.. ? +<edx> (i mean from a higher level view...) +<Bagder> yes +<Bagder> they are two different APIs, at least now +<Zagor> http://bjorn.haxx.se/rockbox/devcon/ +<Bagder> btw +<Bagder> the id3 code uses ftell +<Bagder> just for getting the size of the file +<Zagor> ok +<Zagor> shouldn't be a problem +<Bagder> we didn't define any function to get the size, nor ftell ;-) +<Bagder> (reading the devcon notes) +<Zagor> our api definition is a little outdated, since we'll be using newlib anyway +<Bagder> ya +<Zagor> it contains all those functions +<Bagder> but we don't yet know how to map them to the fat code, do we? +<wavey> can i send to your list from an account it doesn't recognise? +<Zagor> yes +<wavey> cool +<Zagor> we love spam :) +<wavey> heheh +<Linus> Implementing those functions in newlib isn't that hard. +<Bagder> lots of fine closeups on Archoses! +<Bagder> ok +<Zagor> ah, forgot one picture: The Virgins! :-) +<Linus> :-) +<Linus> Pile'em'up! +<Zagor> an almost offensive number of archoses... +<edx> the devcon page is cool (jsut had a look at it :D) +<Linus> It was cool! +<Bagder> we should have more devcons! +<Linus> The event of the year! ;-) +<edx> i would have liked to join you :) - too far +<edx> hey... could you give all cvs-registered ppl ops for this channel :D +--- Bagder gives channel operator status to edx +<Bagder> :-) +<edx> thx +<Zagor> hmm, i think we're all cvs registered actually :) +<edx> LOL +<edx> op everybody *lol* +--> ironi (xircon@m213-101-132-20.swipnet.se) has joined #rockbox +<ironi> ello +<ironi> i read the progress report, fascinating =) +<ironi> wavey, Linus +<Zagor> alooh! +<Bagder> getting crowded! +<ironi> Zagor, hi +<ironi> Zagor i am curious where oyu got the nick +<Linus> Yoooo! +<ironi> i know about a italian comic strip called zagor +<Zagor> oh, it's an old one +<wavey> ironi hi +<Zagor> I made it up for a D&D character some time around ~83 +<ironi> ok so you just made it up? cool. +<Zagor> he was a herb collecting monk, if i recall correctly :) +<ironi> heh +<ironi> i am really looking forward to the win32 simulator +<Zagor> yeah, I made it up. didn't know about the comic strip until mid-90s +<ironi> oh, so you do know about it. +<ironi> =) +<Zagor> yes, I do now :) +<ironi> i dont think it really exists in sweden, does it? +<Bagder> ironi: say boo to edx, he has made it work ;-) +<Zagor> never seen it at least +<ironi> edx, good job +<edx> ironi: want an alpha version? (im coding it) +<ironi> Bagder, i wanna try it , i wnna try i +<ironi> want +<ironi> edx, how big is it? +<ironi> edx, cause im on gprs right now +<edx> hmmm lets see... i can send you a release compile of the simulator (you cant test your own code then) - it is 44 kb +<ironi> oh ok i tohught we were talking > 1 mb +<ironi> send it +<Zagor> good mail, wavey +<ironi> not graphic, then? +<Linus> Indeed. Well done! +<wavey> cool ta +* wavey goes for coffee +<edx> it is graphic - it only supports graphics right now actually (nothing else [like keystrokes +<ironi> ok well hand it over +<ironi> what do you code it in? +<edx> MSVC++ (7) +<edx> but it is straight c code +--> elinenbe (~chatzilla@bgp01080511bgs.wanarb01.mi.comcast.net) has joined #rockbox +<edx> so you can compile it on any windows compiler +<Zagor> hi elinenbe +<edx> do you get the dcc request? +<elinenbe> Hey there. I have some great ideas for browsing/playlist implementation... +<ironi> edx, i see. i do know some c++ +<elinenbe> DOes anyone here have a riocar/empeg player? +<ironi> edx, not working? +<Zagor> elinenbe: nope :) +* Bagder has none +<edx> give me your email adress.. ill mail it then +<ironi> edx, cvitan@zworg.com +<ironi> ehm, what wa si going to say... +<elinenbe> well, the way it works is based on ID3 tags, but that is not the way this player is designed, so we will just use the folders instead. +<elinenbe> what you do is start a playlist or just play songs. +<ironi> yeah; well my linux-on-jukebox is not working well +<ironi> i guess someone else could make it owrk in 5 minutes, but.. +<edx> if you want i can attatch source as well (only a few kb too) +<elinenbe> and then if you browse to a new sond and you hold down play for 2 seconds, it comes up with an option. +<ironi> edx, do that +<Zagor> elinenbe: option for what? +<ironi> edx, i am getting interested in installing my vc++ +<elinenbe> 1)insert after current song (does what is says) 2)append (this will cue the song to be played after whatever else is queued) +<ironi> got that somewhere +<elinenbe> and if you just want to play the sond you just hit play (no hold down necessary) +<edx> hehe +<elinenbe> this works VERY well.... +<Zagor> elinenbe: sounds like a good interface +<Bagder> elinenbe: sounds clever and convinient, yes +<edx> ok.. sent it +<elinenbe> they have a really sweet interface for only a few buttons... +<edx> ah.. Zagor: what dir (cvs) should i put the simulator (w32) in? +<Zagor> edx: uisimulator/win32 +<Bagder> we could possibly move the x11 stuff into a separate dir too +<edx> right now (on my computer) i have it in uisimulator/uisw32 but doesnt matter anyways (just for the relative paths... they all go to ../../firmware) +<Zagor> Bagder: at your convenience +<Bagder> ok, I'll save that work for later ;-) +<Zagor> edx: win32 is a better name imho +<edx> it is. +<edx> i chose the other name because i had to create msvc project file (and win32 is a stupid project name IMO) +<ironi> what headphones do you guys use with your player/recorder? +<ironi> I have found the koss portapro to work really nice with my player +<edx> ironi: (standard headphones) +<Linus> some Sony plugs +<elinenbe> I use the ones that come with it... I have no problem, and they are nice because I can put them into my bag without worries (fold up) +<ironi> edx, shouldn't it be IMHO +<ironi> =) +<Zagor> ironi: I use the Sony EX70 earplugs. best I've ever heard. +<ironi> heh +<ironi> portapro are also fold +<ironi> Zagor, ex70...don't know about them... +<edx> irony: why? +<Zagor> you guys should try the EX70s. you haven't heard what the Archos can to until you've tried them +<ironi> i don't like plugs very much myself +<ironi> edx, just joking +<edx> ok +<edx> LOL +<ironi> Zagor, how much are they +<edx> yea how much +<edx> (and where do i get 'em) +<Zagor> ironi: don't remember really. $70 or some such. +<elinenbe> http://www.etronics.com/product.asp?stk_code=sonymdrex70lp +<elinenbe> $35 USD +<ironi> Zagor, aeh? oh +<ironi> alot for plugs +<Zagor> I have a pair of Sony VDR-700 for $250 and the EX70 compares very favorably... +<edx> LOOOOL @ $250 +<Zagor> what can I say, I like good stuff... +<ironi> i wonder how they compare to portapro, which are considered to be the best portable headphones in the >$70 class (>$100 in europe) +<ironi> for like 10 years now +<edx> another thing: how long (in msecs) does a lcd_update take an a JB? +<Zagor> ironi: In my opinion the Portapros are overrated. Narrow range not much oomph. +<edx> because i have to simulate slowness as well :) +<Zagor> but that's just my opinion :) +<edx> Germany: (Sony headphones): 38,95 Euros +<edx> LOOOL "avaibility: 2 to 6 weeks" argh! +<Bagder> edx: I think Gary spoke about 20 frames per sec or somehing like that +<Zagor> ok, so I remembered wrong :) +<Bagder> lcd_update() I mean +<edx> ah ok.. that makes... hmm 50msecs +<ironi> Zagor, well I mean for a device like archos they deliver the base and solid clarity +<ironi> oh this s a recorder simulator +<elinenbe> I was just wondering -- how much is Archos going to pay you guys once the popularity of the jukebox explodes... every open source / Linux nut will go nutty ofr an open source mp3 player (just wait until the slashdot crowd finds out about this...) +<edx> hm it has the design of a recorder - but it will work for a JBP as well +<Zagor> elinenbe: I wouldn't bet them even acknowledging our existence +<ironi> hehe +* Zagor has written a "slashdot protection" script for the website :) +<ironi> Zagor? +<edx> what is slashdot protection lol +<Zagor> index.cgi counts hits. >10 hits in 10 seconds triggers a redirect to a mirror at sourceforge.net +<edx> ahhh +<edx> ok.. +<edx> what does the word slashdot mean than - like spamming? +<elinenbe> are you serious about that? +<Zagor> I have no idea if it's enough, but it's an attempt... +<Zagor> elinenbe: yup +<Zagor> slashdot is a website: slashdot.org +<elinenbe> slashdot is a site all about geek news... +<edx> aha +<elinenbe> when a story is posted there nearly everyone reads up on it... +<edx> ahhhhhh +<edx> ok now i got it all :) +<edx> sorry for being that slow ;) +<elinenbe> therefore if your site is where the story came from, then you have 1000)+ hits very fast... +<elinenbe> boom! crash! lock! <-- there goes your server +<edx> yea.. hehe +<Zagor> your site gets "slashdotted" +<ironi> /. +<edx> are they gonna post about rockbox there? lol +<ironi> well, gotta go, have a meeting with the student television +<edx> cu +<ironi> later, you guys. +<Zagor> bye +<ironi> maybe i should do my masters thesis with the rockbox as an example +<ironi> and interview you ppl +<Zagor> ironi: sure, i'm game +<ironi> do a thesis with something about open source +<ironi> it's a n interesting subject +<ironi> =) +<ironi> well worth to think aobut +<ironi> i will talk to a ph.d. that does research on oss organisation forms, etc. +<-- ironi has quit ("later <k!15b8>") +<Zagor> edx: i expect we will be on slashdot some day. I just hope it will be after we have something to "show" rather than in the current state +<Zagor> first impression, and all that +<Zagor> so don't tell anyone :) +<Bagder> ... 91 subscribers today +<Linus> Gotta go! l8r! +<Bagder> bye Linus +<-- Linus (~linus@labb.contactor.se) has left #rockbox +<wavey> zag: ex70 are the plug type yeah? +<wavey> i have them +<wavey> they're great +<Zagor> wavey: they are then new type that you literally insert into the ear canal +<wavey> if bass-heavy +<wavey> yes +<wavey> i have to turn the bass down on the archos +<wavey> too boomy otherwise +<Zagor> pull down the bass on the recorder, and they give you exceptional range +<edx> LOL +<Zagor> yes, me too +<wavey> yus - they're great +<wavey> and close out the rest of the world very nicely :) +<Zagor> yep +<Zagor> I bought the Etymotic ER-4P +<Zagor> $350 plugin headphones +<wavey> yow +<Zagor> they sucked, big time! +<wavey> i saw refs to them when researching plugs +<Zagor> yeah, they are considered the top of the top of the top +<wavey> ppl loved 'em or hated 'em +<wavey> said you need to learn to 'relisten' to your music +<wavey> to compensate for no bass, or something? +<edx> LOOOOL I cant get you are spending 350 bucks on headphones +<Zagor> yeah, that's just an euphemism for "I can't admit I spent my money on crap" +<Zagor> I sent them back and got a refund +<wavey> edx: the argument is why spend big bux on a decent sound system, then peanuts on the delivery mechanism +<Zagor> they really have *NO* bass. it's pathetic +<edx> How do you lcd_init for char displays with currend lcd.c? +<edx> i get the feeling we cant get around writing two seperate OSs... I mean I want real fancy graphics on my recorder (not the f*** char display graphics) :P +<Bagder> we will probably write more or less two separate UI threads, yes +<Bagder> +write +<Bagder> one for each LCD +<Zagor> the user interfaces will be different code, yes +<edx> so how do i init char displays? +<edx> lcd_init (); +<edx> wont work +<edx> (LCD_BITMAP_blah not defined) +<Bagder> hey! +<Bagder> load-file alert +<Bagder> bad paths +<Zagor> looks like lcd_init is missing +<Zagor> for charcells +<Zagor> Bagder: ? +<edx> lol the lcd.h does not define lcd_init for char cell lcds (yet?) +<Bagder> Zagor: the emacs magic in the bottom of the files... +<edx> ah ok +<Bagder> Zagor: uses wrong file name +<Zagor> ah, yes +<edx> ill wait until it is released then - if i have enoguh time ill wirte a JBP GUI for the player then :) +<Zagor> i'll take a look at it +<wavey> do our fat32 fs entries have the archive flag? +<Zagor> I wouldn't count on it +<Zagor> i'm responding too :) +<wavey> heh cool +<Zagor> besides, scanning for archive bits isn't any faster than scanning for files +<Bagder> *and* you can build the huge play list with an external tool while USB connected +<wavey> well, the scanning is unavoidable, the comparison of a bit flag is certainly easier than a filename comparison +<Zagor> but more uncertain +<Zagor> i've sent my mail, read it :) +<wavey> will do +<edx> be back later... cu +<Zagor> bye +--- edx is now known as edx|bbl +<wavey> i was also wondering if we should pre-fetch the previous and next playlist entry details to ensure smoother operation +<Bagder> probably +<Zagor> wavey: yes. maybe even several entries. sometimes you want to skip a few tracks +<Zagor> a compile-time option, ideally +<wavey> yus +<wavey> open source. the only way forward :) +<Zagor> yus ;) +<Zagor> i'm going home. see you soon, guys :) +<wavey> byee +<-- Zagor (~bjst@labb.contactor.se) has left #rockbox +<Bagder> I'll need to dash too, I might pop by a little later or tomorrow. See ya +**** ENDING LOGGING AT Tue Apr 23 17:30:11 2002 |