···11+$Id$
22+ __________ __ ___.
33+ Open \______ \ ____ ____ | | _\_ |__ _______ ___
44+ Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
55+ Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
66+ Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
77+ \/ \/ \/ \/ \/
88+99+ API summmary
1010+1111+[ This is still pretty rough and basic. Extend! ]
1212+1313+LCD
1414+1515+ #include <lcd.h>
1616+1717+ Generic
1818+1919+ Most LCD functions are specific for which output we work with, due to the
2020+ huge differences.
2121+2222+ lcd_init() - init the LCD stuff
2323+ lcd_clear_display() - clear the whole display
2424+ lcd_backlight(on) - set backlight on/off
2525+ lcd_puts(x,y,string) write a string at given character position
2626+2727+ Recorder
2828+2929+ All the functions operate on a display buffer. You make the buffer get
3030+ shown on screen by calling lcd_update().
3131+3232+ lcd_update() update the LCD according to the internal buffer.
3333+3434+3535+ lcd_update_rect(int x, int y, int height, int width)
3636+3737+ Update the given rectangle to the LCD. Give arguments measured in
3838+ pixels. Notice that the smallest vertical resolution in updates that the
3939+ hardware supports is even 8 pixels. This function will adjust to those.
4040+4141+ lcd_setfont(int font) set default font
4242+ lcd_setmargins(int x, int y) set top/left margins
4343+ lcd_putsxy(x,y,string,font) put a string at given position, using a
4444+ specific font
4545+ lcd_bitmap(src,x,y,width,height,clear) put a bitmap at given position
4646+ lcd_clearrect(x,y,width,height) clear a rectangle area
4747+ lcd_fillrect(x,y,width,height) fill a rectangle area
4848+ lcd_drawrect(x,y,width,height) draw a rectangle
4949+ lcd_invertrect(x,y,width,height) revert the graphics of the given area
5050+ lcd_drawline(x1,y1,x2,y2) draw a line between the coordinates
5151+ lcd_drawpixel(x,y) put a pixel on the given coordinate
5252+ lcd_clearpixel(x,y) clear the pixel at the given coordinate
5353+ lcd_fontsize(font,width,height) return the width and height of the font
5454+5555+ Player
5656+5757+ lcd_define_pattern(which,pattern,lenth) define a custom pattern
5858+5959+Buttons
6060+6161+ #include <button.h>
6262+6363+ These functions work the same regardless of which keypad you have, but they
6464+ return a different set of values. Note that the Recorder keypad has 10
6565+ keys, while the Player keypad only features 6.
6666+6767+ int button_get(bool block)
6868+6969+ Returns a bitmask for which keys were pressed. If 'block' is set TRUE it
7070+ won't return until a key is pressed.
7171+7272+Files
7373+7474+ (These functions are POSIX look-alikes)
7575+7676+ #include <file.h>
7777+7878+ int open(const char *path, int oflag);
7979+8080+ The open() function establishes the connection between a file and a file
8181+ descriptor. It creates an open file descrip- tion that refers to a file
8282+ and a file descriptor that refers to that open file description. The file
8383+ descriptor is used by other I/O functions to refer to that file.
8484+8585+ int read(int fildes, void *buf, size_t nbyte);
8686+8787+ The read() function attempts to read nbyte bytes from the file associated
8888+ with the open file descriptor, fildes, into the buffer pointed to by buf.
8989+9090+ int lseek(int fildes, off_t offset, int whence);
9191+9292+ The lseek() function sets the file pointer associated with the open file
9393+ descriptor specified by fildes as follows:
9494+9595+ o If whence is SEEK_SET, the pointer is set to offset
9696+ bytes.
9797+9898+ o If whence is SEEK_CUR, the pointer is set to its
9999+ current location plus offset.
100100+101101+ o If whence is SEEK_END, the pointer is set to the size
102102+ of the file plus offset.
103103+104104+ int write(int fildes, const void *buf, size_t nbyte);
105105+106106+ NOT CURRENTLY SUPPORTED.
107107+108108+ write writes up to count bytes to the file referenced by the file
109109+ descriptor fd from the buffer starting at buf.
110110+111111+ int close(int fildes);
112112+113113+ The close() function will deallocate the file descriptor indicated by
114114+ fildes. To deallocate means to make the file descriptor available for
115115+ return by subsequent calls to open(2) or other functions that allocate
116116+ file descriptors.
117117+118118+ int rename(const char *old, const char *new);
119119+120120+ NOT CURRENTLY SUPPORTED.
121121+122122+ The rename() function changes the name of a file. The old argument points
123123+ to the pathname of the file to be renamed. The new argument points to the
124124+ new pathname of the file.
125125+126126+ int remove(const char *pathname);
127127+128128+ NOT CURRENTLY SUPPORTED.
129129+130130+ remove deletes a name from the filesystem. It calls unlink for files,
131131+ and rmdir for directories.
132132+133133+134134+Directories
135135+136136+ #include <dir.h>
137137+138138+ DIR *opendir(const char *name);
139139+140140+ The opendir() function opens a directory stream corresponding to the
141141+ directory name, and returns a pointer to the directory stream. The
142142+ stream is positioned at the first entry in the directory.
143143+144144+ struct dirent *readdir(DIR *dir);
145145+146146+ The readdir() function returns a pointer to a dirent structure
147147+ representing the next directory entry in the directory stream pointed to
148148+ by dir. It returns NULL on reaching the end-of-file or if an error
149149+ occurred.
150150+151151+ Add a description of the struct here.
152152+153153+ int closedir(DIR *dir);
154154+155155+ The closedir() function closes the directory stream associated with dir.
156156+ The directory stream descriptor dir is not available after this call.
157157+158158+159159+String/Memory
160160+161161+ #include <string.h>
162162+163163+ strcmp()
164164+ strcpy()
165165+ memcpy()
166166+ memset()
167167+ ...
168168+169169+Memory allocation
170170+171171+ #include <dmalloc.h>
172172+173173+ void *malloc(size_t size);
174174+175175+ malloc() allocates size bytes and returns a pointer to the allocated
176176+ memory. The memory is not cleared.
177177+178178+ void free(void *ptr);
179179+180180+ free() frees the memory space pointed to by ptr, which must have been
181181+ returned by a previous call to malloc(), calloc() or realloc().
182182+ Otherwise, or if free(ptr) has already been called before, undefined
183183+ behaviour occurs.
184184+185185+ void *realloc(void *ptr, size_t size);
186186+187187+ realloc() changes the size of the memory block pointed to by ptr to size
188188+ bytes. The contents will be unchanged to the minimum of the old and new
189189+ sizes; newly allocated memory will be uninitialized. If ptr is NULL, the
190190+ call is equivalent to malloc(size); if size is equal to zero, the call is
191191+ equivalent to free(ptr). Unless ptr is NULL, it must have been returned
192192+ by an earlier call to malloc(), calloc() or realloc().
193193+194194+ void *calloc(size_t nmemb, size_t size);
195195+196196+ calloc() allocates memory for an array of nmemb elements of size bytes
197197+ each and returns a pointer to the allocated memory. The memory is set to
198198+ zero.
199199+200200+ID3
201201+202202+ #include <id3.h>
203203+ bool mp3info(mp3entry *entry, char *filename);
204204+205205+ Return FALSE if successful. The given mp3entry is then filled in with
206206+ whatever id3 info it could find about the given file.
207207+208208+Various
209209+210210+ #include <kernel.h>
211211+212212+ void kernel_init(void)
213213+214214+ Inits the kernel and starts the tick interrupt
215215+216216+ void sleep(ticks)
217217+218218+ Sleep a specified number of ticks, we have HZ ticks per second.
219219+220220+ void yield(void)
221221+222222+ Let another thread run. This should be used as soon as you have to "wait"
223223+ for something or similar, and also if you do anything that takes "a long
224224+ time". This function is the entire foundation that our "cooperative
225225+ multitasking" is based on. Use it.
226226+227227+ int set_irq_level(int level)
228228+229229+ Sets the interrupt level (0 = lowest, 15 = highest) and returns the
230230+ previous level.
231231+232232+ void queue_init(struct event_queue *q)
233233+234234+ Initialize an event queue. The maximum number of events in a queue is
235235+ QUEUE_LENGTH-1.
236236+237237+ void queue_wait(struct event_queue *q, struct event *ev)
238238+239239+ Receive an event in a queue, blocking the thread if the queue is empty.
240240+241241+ void queue_post(struct event_queue *q, int id, void *data)
242242+243243+ Post an event to a queue.
244244+ NOTE: Negative event ID's are for system use only!!!
245245+246246+ bool queue_empty(struct event_queue* q)
247247+248248+ Returns true if the queue is empty.
249249+250250+ int queue_broadcast(int id, void *data)
251251+252252+ Posts an event in all queues that has been initiated with queue_init().
253253+ Returns the number of queues that were posted to.
254254+255255+ int tick_add_task(void (*f)(void))
256256+257257+ Add a task to the tick task queue. The argument is a pointer to a
258258+ function that will be called every tick interrupt.
259259+ At most MAX_NUM_TICK_TASKS can be active at the same time.
260260+261261+ int tick_remove_task(void (*f)(void))
262262+263263+ Remove a task from the task queue.
264264+265265+ void mutex_init(struct mutex *m)
266266+267267+ Initialize a mutex.
268268+269269+ void mutex_lock(struct mutex *m)
270270+271271+ Lock a mutex. This will block the thread if the mutex is already locked.
272272+ Note that you will geta deadlock if you lock the mutex twice!
273273+274274+void mutex_unlock(struct mutex *m)
275275+276276+ Unlock a mutex.
+52
docs/CONTRIBUTING
···11+$Id$
22+33+In order for the project to run as smoothly as possible, it's best if all
44+contributors adhere to a few simple conventions:
55+66+Language
77+--------
88+Write all code in C. Sometimes assembly is faster, but C is always more
99+readable and maintainable.
1010+1111+Language features
1212+-----------------
1313+Write normal C code. Don't redefine the language. No new types (structs are
1414+structs, not typedefs), no C++isms or Javaisms. Also, avoid using "const".
1515+1616+Names
1717+-----
1818+Variables and function names should be all lower case.
1919+Preprocessor symbols should be all uppercase.
2020+2121+Style
2222+-----
2323+When changing code, follow the code style of the file you are editing.
2424+2525+When writing new files, you may use the brace placement style of your choice.
2626+2727+Always indent your code with four spaces. Don't use TAB characters, as that
2828+will mess up code display in CVS, printing, and a zillion other places.
2929+3030+Keep lines below 80 columns length. Use whitespace and newlines to make the
3131+code easy to browse/read.
3232+3333+Text format
3434+-----------
3535+Use "unix style" line feeds: "LF" only. Do not use "CR+LF".
3636+3737+Patches
3838+-------
3939+Create a patch using 'cvs diff -ub'.
4040+Trim your patches so they only contain relevant changes.
4141+Submit all patches to the mailing list.
4242+Put [PATCH] first on the subject line of your mail.
4343+If the patch is very large (>50k), gzip it before you send it.
4444+4545+4646+4747+4848+4949+5050+5151+5252+
+340
docs/COPYING
···11+ GNU GENERAL PUBLIC LICENSE
22+ Version 2, June 1991
33+44+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
55+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
66+ Everyone is permitted to copy and distribute verbatim copies
77+ of this license document, but changing it is not allowed.
88+99+ Preamble
1010+1111+ The licenses for most software are designed to take away your
1212+freedom to share and change it. By contrast, the GNU General Public
1313+License is intended to guarantee your freedom to share and change free
1414+software--to make sure the software is free for all its users. This
1515+General Public License applies to most of the Free Software
1616+Foundation's software and to any other program whose authors commit to
1717+using it. (Some other Free Software Foundation software is covered by
1818+the GNU Library General Public License instead.) You can apply it to
1919+your programs, too.
2020+2121+ When we speak of free software, we are referring to freedom, not
2222+price. Our General Public Licenses are designed to make sure that you
2323+have the freedom to distribute copies of free software (and charge for
2424+this service if you wish), that you receive source code or can get it
2525+if you want it, that you can change the software or use pieces of it
2626+in new free programs; and that you know you can do these things.
2727+2828+ To protect your rights, we need to make restrictions that forbid
2929+anyone to deny you these rights or to ask you to surrender the rights.
3030+These restrictions translate to certain responsibilities for you if you
3131+distribute copies of the software, or if you modify it.
3232+3333+ For example, if you distribute copies of such a program, whether
3434+gratis or for a fee, you must give the recipients all the rights that
3535+you have. You must make sure that they, too, receive or can get the
3636+source code. And you must show them these terms so they know their
3737+rights.
3838+3939+ We protect your rights with two steps: (1) copyright the software, and
4040+(2) offer you this license which gives you legal permission to copy,
4141+distribute and/or modify the software.
4242+4343+ Also, for each author's protection and ours, we want to make certain
4444+that everyone understands that there is no warranty for this free
4545+software. If the software is modified by someone else and passed on, we
4646+want its recipients to know that what they have is not the original, so
4747+that any problems introduced by others will not reflect on the original
4848+authors' reputations.
4949+5050+ Finally, any free program is threatened constantly by software
5151+patents. We wish to avoid the danger that redistributors of a free
5252+program will individually obtain patent licenses, in effect making the
5353+program proprietary. To prevent this, we have made it clear that any
5454+patent must be licensed for everyone's free use or not licensed at all.
5555+5656+ The precise terms and conditions for copying, distribution and
5757+modification follow.
5858+5959+ GNU GENERAL PUBLIC LICENSE
6060+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
6161+6262+ 0. This License applies to any program or other work which contains
6363+a notice placed by the copyright holder saying it may be distributed
6464+under the terms of this General Public License. The "Program", below,
6565+refers to any such program or work, and a "work based on the Program"
6666+means either the Program or any derivative work under copyright law:
6767+that is to say, a work containing the Program or a portion of it,
6868+either verbatim or with modifications and/or translated into another
6969+language. (Hereinafter, translation is included without limitation in
7070+the term "modification".) Each licensee is addressed as "you".
7171+7272+Activities other than copying, distribution and modification are not
7373+covered by this License; they are outside its scope. The act of
7474+running the Program is not restricted, and the output from the Program
7575+is covered only if its contents constitute a work based on the
7676+Program (independent of having been made by running the Program).
7777+Whether that is true depends on what the Program does.
7878+7979+ 1. You may copy and distribute verbatim copies of the Program's
8080+source code as you receive it, in any medium, provided that you
8181+conspicuously and appropriately publish on each copy an appropriate
8282+copyright notice and disclaimer of warranty; keep intact all the
8383+notices that refer to this License and to the absence of any warranty;
8484+and give any other recipients of the Program a copy of this License
8585+along with the Program.
8686+8787+You may charge a fee for the physical act of transferring a copy, and
8888+you may at your option offer warranty protection in exchange for a fee.
8989+9090+ 2. You may modify your copy or copies of the Program or any portion
9191+of it, thus forming a work based on the Program, and copy and
9292+distribute such modifications or work under the terms of Section 1
9393+above, provided that you also meet all of these conditions:
9494+9595+ a) You must cause the modified files to carry prominent notices
9696+ stating that you changed the files and the date of any change.
9797+9898+ b) You must cause any work that you distribute or publish, that in
9999+ whole or in part contains or is derived from the Program or any
100100+ part thereof, to be licensed as a whole at no charge to all third
101101+ parties under the terms of this License.
102102+103103+ c) If the modified program normally reads commands interactively
104104+ when run, you must cause it, when started running for such
105105+ interactive use in the most ordinary way, to print or display an
106106+ announcement including an appropriate copyright notice and a
107107+ notice that there is no warranty (or else, saying that you provide
108108+ a warranty) and that users may redistribute the program under
109109+ these conditions, and telling the user how to view a copy of this
110110+ License. (Exception: if the Program itself is interactive but
111111+ does not normally print such an announcement, your work based on
112112+ the Program is not required to print an announcement.)
113113+114114+These requirements apply to the modified work as a whole. If
115115+identifiable sections of that work are not derived from the Program,
116116+and can be reasonably considered independent and separate works in
117117+themselves, then this License, and its terms, do not apply to those
118118+sections when you distribute them as separate works. But when you
119119+distribute the same sections as part of a whole which is a work based
120120+on the Program, the distribution of the whole must be on the terms of
121121+this License, whose permissions for other licensees extend to the
122122+entire whole, and thus to each and every part regardless of who wrote it.
123123+124124+Thus, it is not the intent of this section to claim rights or contest
125125+your rights to work written entirely by you; rather, the intent is to
126126+exercise the right to control the distribution of derivative or
127127+collective works based on the Program.
128128+129129+In addition, mere aggregation of another work not based on the Program
130130+with the Program (or with a work based on the Program) on a volume of
131131+a storage or distribution medium does not bring the other work under
132132+the scope of this License.
133133+134134+ 3. You may copy and distribute the Program (or a work based on it,
135135+under Section 2) in object code or executable form under the terms of
136136+Sections 1 and 2 above provided that you also do one of the following:
137137+138138+ a) Accompany it with the complete corresponding machine-readable
139139+ source code, which must be distributed under the terms of Sections
140140+ 1 and 2 above on a medium customarily used for software interchange; or,
141141+142142+ b) Accompany it with a written offer, valid for at least three
143143+ years, to give any third party, for a charge no more than your
144144+ cost of physically performing source distribution, a complete
145145+ machine-readable copy of the corresponding source code, to be
146146+ distributed under the terms of Sections 1 and 2 above on a medium
147147+ customarily used for software interchange; or,
148148+149149+ c) Accompany it with the information you received as to the offer
150150+ to distribute corresponding source code. (This alternative is
151151+ allowed only for noncommercial distribution and only if you
152152+ received the program in object code or executable form with such
153153+ an offer, in accord with Subsection b above.)
154154+155155+The source code for a work means the preferred form of the work for
156156+making modifications to it. For an executable work, complete source
157157+code means all the source code for all modules it contains, plus any
158158+associated interface definition files, plus the scripts used to
159159+control compilation and installation of the executable. However, as a
160160+special exception, the source code distributed need not include
161161+anything that is normally distributed (in either source or binary
162162+form) with the major components (compiler, kernel, and so on) of the
163163+operating system on which the executable runs, unless that component
164164+itself accompanies the executable.
165165+166166+If distribution of executable or object code is made by offering
167167+access to copy from a designated place, then offering equivalent
168168+access to copy the source code from the same place counts as
169169+distribution of the source code, even though third parties are not
170170+compelled to copy the source along with the object code.
171171+172172+ 4. You may not copy, modify, sublicense, or distribute the Program
173173+except as expressly provided under this License. Any attempt
174174+otherwise to copy, modify, sublicense or distribute the Program is
175175+void, and will automatically terminate your rights under this License.
176176+However, parties who have received copies, or rights, from you under
177177+this License will not have their licenses terminated so long as such
178178+parties remain in full compliance.
179179+180180+ 5. You are not required to accept this License, since you have not
181181+signed it. However, nothing else grants you permission to modify or
182182+distribute the Program or its derivative works. These actions are
183183+prohibited by law if you do not accept this License. Therefore, by
184184+modifying or distributing the Program (or any work based on the
185185+Program), you indicate your acceptance of this License to do so, and
186186+all its terms and conditions for copying, distributing or modifying
187187+the Program or works based on it.
188188+189189+ 6. Each time you redistribute the Program (or any work based on the
190190+Program), the recipient automatically receives a license from the
191191+original licensor to copy, distribute or modify the Program subject to
192192+these terms and conditions. You may not impose any further
193193+restrictions on the recipients' exercise of the rights granted herein.
194194+You are not responsible for enforcing compliance by third parties to
195195+this License.
196196+197197+ 7. If, as a consequence of a court judgment or allegation of patent
198198+infringement or for any other reason (not limited to patent issues),
199199+conditions are imposed on you (whether by court order, agreement or
200200+otherwise) that contradict the conditions of this License, they do not
201201+excuse you from the conditions of this License. If you cannot
202202+distribute so as to satisfy simultaneously your obligations under this
203203+License and any other pertinent obligations, then as a consequence you
204204+may not distribute the Program at all. For example, if a patent
205205+license would not permit royalty-free redistribution of the Program by
206206+all those who receive copies directly or indirectly through you, then
207207+the only way you could satisfy both it and this License would be to
208208+refrain entirely from distribution of the Program.
209209+210210+If any portion of this section is held invalid or unenforceable under
211211+any particular circumstance, the balance of the section is intended to
212212+apply and the section as a whole is intended to apply in other
213213+circumstances.
214214+215215+It is not the purpose of this section to induce you to infringe any
216216+patents or other property right claims or to contest validity of any
217217+such claims; this section has the sole purpose of protecting the
218218+integrity of the free software distribution system, which is
219219+implemented by public license practices. Many people have made
220220+generous contributions to the wide range of software distributed
221221+through that system in reliance on consistent application of that
222222+system; it is up to the author/donor to decide if he or she is willing
223223+to distribute software through any other system and a licensee cannot
224224+impose that choice.
225225+226226+This section is intended to make thoroughly clear what is believed to
227227+be a consequence of the rest of this License.
228228+229229+ 8. If the distribution and/or use of the Program is restricted in
230230+certain countries either by patents or by copyrighted interfaces, the
231231+original copyright holder who places the Program under this License
232232+may add an explicit geographical distribution limitation excluding
233233+those countries, so that distribution is permitted only in or among
234234+countries not thus excluded. In such case, this License incorporates
235235+the limitation as if written in the body of this License.
236236+237237+ 9. The Free Software Foundation may publish revised and/or new versions
238238+of the General Public License from time to time. Such new versions will
239239+be similar in spirit to the present version, but may differ in detail to
240240+address new problems or concerns.
241241+242242+Each version is given a distinguishing version number. If the Program
243243+specifies a version number of this License which applies to it and "any
244244+later version", you have the option of following the terms and conditions
245245+either of that version or of any later version published by the Free
246246+Software Foundation. If the Program does not specify a version number of
247247+this License, you may choose any version ever published by the Free Software
248248+Foundation.
249249+250250+ 10. If you wish to incorporate parts of the Program into other free
251251+programs whose distribution conditions are different, write to the author
252252+to ask for permission. For software which is copyrighted by the Free
253253+Software Foundation, write to the Free Software Foundation; we sometimes
254254+make exceptions for this. Our decision will be guided by the two goals
255255+of preserving the free status of all derivatives of our free software and
256256+of promoting the sharing and reuse of software generally.
257257+258258+ NO WARRANTY
259259+260260+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261261+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262262+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263263+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264264+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265265+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266266+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267267+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268268+REPAIR OR CORRECTION.
269269+270270+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271271+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272272+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273273+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274274+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275275+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276276+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277277+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278278+POSSIBILITY OF SUCH DAMAGES.
279279+280280+ END OF TERMS AND CONDITIONS
281281+282282+ How to Apply These Terms to Your New Programs
283283+284284+ If you develop a new program, and you want it to be of the greatest
285285+possible use to the public, the best way to achieve this is to make it
286286+free software which everyone can redistribute and change under these terms.
287287+288288+ To do so, attach the following notices to the program. It is safest
289289+to attach them to the start of each source file to most effectively
290290+convey the exclusion of warranty; and each file should have at least
291291+the "copyright" line and a pointer to where the full notice is found.
292292+293293+ <one line to give the program's name and a brief idea of what it does.>
294294+ Copyright (C) <year> <name of author>
295295+296296+ This program is free software; you can redistribute it and/or modify
297297+ it under the terms of the GNU General Public License as published by
298298+ the Free Software Foundation; either version 2 of the License, or
299299+ (at your option) any later version.
300300+301301+ This program is distributed in the hope that it will be useful,
302302+ but WITHOUT ANY WARRANTY; without even the implied warranty of
303303+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304304+ GNU General Public License for more details.
305305+306306+ You should have received a copy of the GNU General Public License
307307+ along with this program; if not, write to the Free Software
308308+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
309309+310310+311311+Also add information on how to contact you by electronic and paper mail.
312312+313313+If the program is interactive, make it output a short notice like this
314314+when it starts in an interactive mode:
315315+316316+ Gnomovision version 69, Copyright (C) year name of author
317317+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
318318+ This is free software, and you are welcome to redistribute it
319319+ under certain conditions; type `show c' for details.
320320+321321+The hypothetical commands `show w' and `show c' should show the appropriate
322322+parts of the General Public License. Of course, the commands you use may
323323+be called something other than `show w' and `show c'; they could even be
324324+mouse-clicks or menu items--whatever suits your program.
325325+326326+You should also get your employer (if you work as a programmer) or your
327327+school, if any, to sign a "copyright disclaimer" for the program, if
328328+necessary. Here is a sample; alter the names:
329329+330330+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
331331+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
332332+333333+ <signature of Ty Coon>, 1 April 1989
334334+ Ty Coon, President of Vice
335335+336336+This General Public License does not permit incorporating your program into
337337+proprietary programs. If your program is a subroutine library, you may
338338+consider it more useful to permit linking proprietary applications with the
339339+library. If this is what you want to do, use the GNU Library General
340340+Public License instead of this License.
+36
docs/CREDITS
···11+People that have contributed to the project, one way or another. Friends!
22+33+Bj�rn Stenberg Originator, project manager, code
44+Linus Nielsen Feltzing Electronics, code
55+Andy Choi Checksums
66+Andrew Jamieson Schematics, electronics
77+Paul Suade Serial port setup
88+Joachim Schiffer Schematics, electronics
99+Daniel Stenberg Code
1010+Alan Korr Code
1111+Gary Czvitkovicz Code
1212+Stuart Martin Code
1313+Felix Arends Code
1414+Ulf Ralberg Thread embryo
1515+David H�rdeman Initial ID3 code
1616+Thomas Saeys Logo
1717+Grant Wier Code
1818+Julien Labruy�re Donated Archos Player
1919+Nicolas Sauzede Display research
2020+Robert Hak Code, documentation, sarcasm
2121+Dave Chapman Code
2222+Stefan Meyer Code
2323+Eric Linenberg Code
2424+Tom Cvitan Web design
2525+Magnus �man Font
2626+Jerome Kuptz Code
2727+Julien Boissinot Code, Sound research
2828+Nuutti Kotivuori Code
2929+Heikki Hannikainen Code
3030+Hardeep Sidhu Code
3131+Markus Braun Code
3232+Justin Heiner Code
3333+Magnus Holmgren Code
3434+Bill Napier Build fixes
3535+George Styles Code
3636+Mats Lidell Code
+45
docs/README
···11+ __________ __ ___.
22+ Open \______ \ ____ ____ | | _\_ |__ _______ ___
33+ Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
44+ Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
55+ Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
66+ \/ \/ \/ \/ \/
77+88+Build your own archos.mod.
99+1010+1. Check out 'firmware', 'apps' and 'tools' from CVS (or possibly from a
1111+ downloaded archive). You may possibly want 'uisimulator' too (for trying
1212+ out things on host before making target tests). If you haven't already
1313+ done so, we advise you pull down the 'docs' directory as well.
1414+1515+2. Build the tools by running 'make' in the tools/ directory.
1616+1717+3. Create your own build directory, preferably in the same directory as the
1818+ firmware/ and apps/ directories. This is where all generated files will be
1919+ put.
2020+2121+4. In your build directory, run the 'tools/configure' script and enter what
2222+ target you want to build for and if you want a debug version or not. It'll
2323+ prompt you. The debug version is for making a gdb version out of it. It is
2424+ only useful if you run gdb towards your target Archos.
2525+2626+5. Make sure you have sh-elf-gcc and siblings in the PATH.
2727+2828+6. *ploink*. Now you have got a Makefile generated for you. Run 'make' and
2929+ soon the necessary pieces from the firmware and the apps directories have
3030+ been compiled and linked.
3131+3232+7. Copy the archos.mod file to your archos, reboot it and *smile*.
3333+3434+Whenever the tools/configure script gets updated, you can make your makefile
3535+updated too by running 'tools/configure update'
3636+3737+If you want to build for more than one target, just create a new build
3838+directory and create a setup for another target combination in there.
3939+4040+Questions anyone? Take them to the mailing list. We'll be happy to help you
4141+out!
4242+4343+4444+4545+