Warning, /multimedia/audiocd-kio/HACKING is written in an unsupported language. File is not indexed.

0001 // CODE LAYOUT
0002 
0003 audiocd.[h,cpp] - The main KIO worker code.  It contains the logic to rip audio from cd's.  It loads all of the plugins that it can find.  When it needs to encode, generate directories (and names of directories) it goes through it's list. audiocd uses libkcddb to retrieve its cddb entries and cdparinoia to retrieve the audio from the CD.
0004 
0005 plugins/audiocdencoder.[h,cpp] - The base class for all of the encoder plugins
0006 
0007 plugins/flac/* - the flac encoder
0008 plugins/lame/* - The mp3 encoder
0009 plugins/opus/* - The opus encoder
0010 plugins/vorbis/* - The ogg encoder
0011 plugins/wav/* - The cda and wav "encoders"
0012 
0013 kcmaudiocd/ - kcm configure dialog for the audiocd KIO worker.  It also loads the plugins and gets their configure dialogs and puts them into the tab dialog.
0014 
0015 // USERS
0016 
0017 Audiocd's "interface" is presented first to the users.  It should be simple.  The number of files/directories should be kept to a minimum.
0018 
0019 // APP SKIMMING
0020 
0021 Audiocd also has the ability to be "skimmed" by other tools.  For example an outside application could retrieve the second track with: 
0022 
0023 audiocd:/Wav/Track 02.wav?device=/dev/hd2&fileNameTemplate=Track %{number}&cddbChoice=1
0024 
0025 This way apps can just query audiocd:/ for CDDB, present them to the users, and rip the tracks all without having to implement it themselves.
0026