Some functions are not yet implemented - at least the following functions, maybe more...


Saving
- override (always, never, larger) (or only bool?)
Splitting
- metadata_parsingRules (calling a text editor?)
Timer
- runXSeconds
- runXMegabytes
- skipFirstXTracks (Achtung: -k hat seit 1.63 β8 eine andere Bedeutung! / Skipping... erkennen als Überspringen/rippen falls auch ganze Dateien geschrieben werden.)


So this is the TODO list:
- einheitliche Zeiteinheit! (nicht ms + s, sondern nur s - evtl. mit Kommastellen)
- more columns!
- TODOs aus dem Quelltext!
- copyright-info für _alle_ Dateien
- semantic markup
- Use "Krazy" code checker!
- in welcher Einheit "metaIntervall"? In apidox u. den Tooltips/What's-This nachtragen!
- tipOfDay: Heißt der Menüeintrag wirklich "Reporting bugs..."? Werden die Tipps automatisch am Anfang eingeblendet? Sind sie im Menü?
- steamcast.com-Unterstützung
- Hilfe/Hilfe-Eintrag weg!
- was, wenn jemand bspw. "ls" oder "gs" statt streamripper nimmt? Stoppt das ripping dann? Oder welche Meldungen gibt es?
- "-o version" is new since 1.63.5 -> support this as default! Und teste auf diese Version bei jedem Start!
- care about the encoding of the output of m_process
- a menu View/visible columns in the main menu bar
- is delayed initialization really needed for statiolistwidget? Or can this be in in stationlistmodel?
- [Buffering...]: auch hier metadata interpretieren wie bei [Ripping...] / " - " als leeren String!
- Wo landen die Songs, wenn kein save-directory angegeben ist? (Fehlermeldung ausgeben!)
- skipping: Unser Text sollte skipping/ripping sein, wenn _auch_ eine ganze Datei (unsplitted) geschrieben wird, bzw. nur "ripping" wenn _nur_ eine ganze Datei geschrieben wird. Mit entsprechenden Hilfe-Texten!
- semantic markup for i18n
- support _all_ options (attention: new options in 1.63 beta!)
- apidox
- display a hint "beta software" when starting the program! And message: "Use at least streamripper 1.63 beta 8!"
- knotify support
- fine working status bar
- pipe_process von streamripper abspalten (pipe_process liest zeilenweise das output des Programms, lässt aber offen, _welches_ Programm benutzt wird). Davon erbt streamripper-base (spezialisiert auf streamripper, aber mit völlig virtueller freier Parameter-Berechnung), und davon schließlich streamripper (was als Klasse dann den bisherigen Funktionsumfang aufweist).
- UI: for streamripper command: also provide a file picker
- UI: teste _alles_, ob es auch so funktioniert wie erwartet
- benutze KDEs proxy settings (wahlweise aber auch wie bisher einen eigenen Wert).
- teste Proxy auf Funktionsfähigkeit, am besten direkt im UI (settings dialog). Zeige entsprechende Fehlermeldungen an, wenn der Proxy nicht erreichbar ist. Vielleich sollte ich selbst vorher testen, ob der Proxy erreichbar ist, bei IP-Adressen als Proxy gibt's nämlich kein Timeout in streamripper, und dann weiß man nicht, ob der Proxy Schrott ist oder die stream-URI...
- support _all_ streamripper options
- Spalten sollten verschiebbar sein (beliebige Anordnung)!
- nachdem eine neue Zeile in der Tabelle produziert wurde, sollte ausschließlich diese markiert sein!
- überprüfe auf streamripper-Kommando _vor_ dem Start (wird auch gebraucht für --version und den stream-settings-dialog - dort entsprechende Fehlerbehandlung, ebenso wie im mainwindow.)
- teste auf streamripper --version >= 1.63
- automatische Metadaten-Erkennung für Streams ohne Metadaten
- Löschen muss Umschalt+Entf sein statt nur Entf (Parallele Dolphin!). Außerdem vor dem Löschen nachfragen!!!
- eine hübsche grafische Animation für die splitpoint detection settings!
- stream_settings sollten nicht als eigenes Fenster in der Fensterleiste erscheinen
- streamripper: sind searchWindow / silenceWindow = 0 sinnvoll? Muss searchWindow immer größer sein, oder reicht auch ==?
- systray support
- make standard dialogs (edit toolbar, handbook, about...) modal!
- read URL(s) from command line / kradioripper --help should display appropriate help
- paste URL from Zwischenablage(n)
- benutze nach Möglichkeit Path statt URL als Typ in kcfg's
- benutze inotify um streamripper und die mp3s zu überwachen
- delete menu entry "help/handbook"
- keine Compiler-Warnings!
- URL for streamripper -> %20...
- server name/stream name empty != 0 !!!
- the reconnect by streamripper (and maybe other functions from streamripper) don't timeout. KRadioRipper has to force this.
- tooltip "skipFirstXSongs": first x _complete_ songs
- interpretate "skipping..." (je nachdem ob auch unsplitted aufgenommen wird als "überspringe" bzw. "überspringe/rippe", im letzten Fall mit einem erklärenden Tooltip)
- funktioniert das gesamte splitting wirklich nur für mp3? Oder gilt das nur fürs padding?
- _alle_ streamripper-Ausgaben interpretieren
- besser id3v2.4 als v2.3! Kann ich erzwingen, dass UTF-8 benutzt wird? (Wie funktioniert das Kommando dafür?) Ist das dann tatsächlich v2.4-konform?
- automaticly try other user agent strings when the first one doesn't work. When a change is done, KNotify the user by a popup (information) window.
- gutes Englisch / semantic markup / anschl. Übersetzungen
- KIO support
- session management! (Restore selection in table after starting, and everything else.) Work fine after Suspend (eventually restart the streamrippers) and after a shutdown.
- limit the length of the strings user as arguments for the command line for streamripper (according to what streamripper accepts)
- when streamripper reconnects, it just does [re-connect] - without error message. We should set an error message ("connection lost") nevertheless!
- vielleicht sollte besser kradioripper reconnect machen als streamripper, denn wenn streamripper das macht und man nach dem laufenden reconnect das Kabel wieder reinsteckt, funktioniert's nicht! Außerdem hört streamripper manchmal auf, ohne dass es einen Fehler ausgibt. Auch hier sollte neu gestartet werden. Aber wie oft probiere ich das dann neu? Eine entsprechende Option einrichten!
- what happens after a reconnect fails in streamripper. There'se no error message, no? We should display one nevertheless!
- playback should work fine (a phonon bug? better with gstreamer than xine? or a kradioripper bug?)
- when closing the program, display a message "Waiting for shoutdown." -> "Wait for shoutdown." "Kill now". "Abort."
- UI: reconnect as sub-entry of "timeout"? Or has reconnect also an effect when not timing out?
- UI: reconnect: not a checkbox, but a radio button "Reconnect." "Stop."?
- Statusleiste: Summe der Bandbreite (Was passiert bei Überschreiten? Möglichkeit der Drosselung vorsehen (max. Bandbreite), zusätzliche Streams werden nicht gestartet!)
- was ist mit ogg und acc?
- Lautstärken-Regler
- Assistent für streamripper-Suche (Test vor jedem Start. Entsprechende Fehlermeldungen, wenn streamripper fehlt - auch in streamripper-base! Und diese auswerten in radioripper, streaminfo, radiostation)
- Assistent für "relay server funktioniert". Automatisch starten bei Fehlermeldung von Phonon? Testen auf firewall!
- nepomuk: include these infos: original meta info (as written stderr by streamripper. Oder besser: streamrippers Erkennung abschalten und alles als Titel interpretieren. Dann den Titel auslesen, selbst eine Erkennung durchführen, und alles entsprechend speichern.). streamserver URI. stream name. server name. meta intervall. [...] time and date of recording. version info of streamripper. version info of kradioripper.
- user defined name for streams (to use, if desired, instead of the automaticly retrieved name)
- more columns in the table (one for _each_ avaible info). But costumizable, which columns are displayed (context menu on right click).
- table entry: context menu on right click (record, stop, settings...)
- tooltips and whats-this-help for _everything_
- whats-this for relay port: what you hear is _2_ times delayed!
- tooltip for unsplitted file: There is mp3-Metadata as streamed id3 in the file! (Only v2!) - for every song!
- relay server: starte play erst bei "ripping", nicht bei "8000"? Ab wann läuft der relay server tatsächlich? Und wann bricht er ab? Wir wollen Phonen-Fehlermeldungen vermeiden!
- make shure that only _one_ instance of KRadioRipper starts
- mehrere stream-einträge gleichzeitig in einem "settings"-Dialog bearbeiten
- "record" und "stop": Diese kactions sollte präziser an- und ausgeschaltet werden - dann, wenn das ganze wirklich möglich ist. Wenn "shutdown" angesagt ist, wäre es nett, wenn trotzdem ein Starten möglich ist (in Warteschleife)
- bevor ripping: teste auf falsches Kommando und auf nicht schreibbares download-Verzeichnis. Und auf leere URL.
- benutze i18nc_p_! Öfter! Und verwende immer lokalisierte Nummernformate!
- audio-playback should be controled trough a checkbox in the table.
- Fehlermeldung von QFile beseitigen! (Wenn neues config-file erstellt wird)
- table: keine leeren Felder, sondern (grayed-out) etwas wie ("Not connected.")
- Folgende Optionen rauskriegen wie sie funktionieren: 4x codeset, -L, -I
- Streamripper immer so aufrufen, dass die Meldungen auf Englisch kommen (das ganze ist nämlich teilweise lokalisiert, und das ist für eine automatische Erkennung ganz blöd).
- Kein externes Programm für metadata-Verarbeitung möglich!?
- Support kio-slaves for saving directory
- Auch -t muss immer gesetzt werden: Das verhindert, dass im incomplete-Verzeichnis Dateien überschrieben werden. Dazu sollte es eigentlich nicht kommen, aber sicher ist sicher... (Oder sollte über -t der User entscheiden?)
- Einzelne Stream-Einträge mit ihren Einstellungen sollten in Dateien gespeichert werden können. Und vielleich über KGetHotNewStuff bezogen werden können. Auch mehrere Einträge sollten zusammengepackt werden können – damit sie auch auf einem anderen Rechner funktionieren.
- Station(en) in tar.bz2-Archiven speichern (Importieren/Exportieren)
- teste _alle_ Formate (mp3, ogg, aac .. gibt's noch mehr), die streamripper unterstützt
- OBS
- in KDE rein um ein Win-Version zu kriegen
- KGetHotNewStuff for getting radio stations? See also http://code.google.com/soc/2008/kde/appinfo.html?csaid=CB51037C010D7473 for packaging content!