RoarAudio/Vortrag/Programmieren mit RoarAudio VS: Unterschied zwischen den Versionen
(→Meta Daten: + Inhalt) |
(→Flags: + Inhalt) |
||
Zeile 75: | Zeile 75: | ||
=== Flags === | === Flags === | ||
... | Aktuell unterstützt die VS die beiden Flags "Mute" und "Pause". | ||
Das Mute Flag schaltet die Ausgabe des Tons ab, der Stream läuft aber weiterhin. Das Flag Pause hält den Stream an so das er später fortgesetzt werden kann. | |||
Die Flags werden mit den Funktionen roar_vs_pause() und roar_vs_mute() gesetzt: | |||
<nowiki>ret = roar_vs_mute(vss, ROAR_VS_TRUE, &err);</nowiki> | |||
Beziehungsweise: | |||
<nowiki>ret = roar_vs_pause(vss, ROAR_VS_TRUE, &err);</nowiki> | |||
Anstatt ROAR_VS_TRUE (zum setzen) kann natuerlich auch ROAR_VS_FALSE (zum rücksetzen) und ROAR_VS_TOGGLE (zum kippen) verwendet werden. | |||
Mittels ROAR_VS_ASK kann der zustand angefragt werden. | |||
== Optionales == | == Optionales == |
Version vom 7. April 2011, 10:16 Uhr
- Ziel
- ein Vortrag über RoarAudios VS API vor einem Unixpublikum mit geringem Vorwissen zum Thema. Nach ende des Vortags sollen die Hörer in der Lage sein einfache Programme mit der VS API zu schreiben.
Abstrakt
Der Vortrag soll eine Einführung in die Programmierung mit der VS API aus libroar liefern. Im laufe des Vortrags werden die grundlegenden API Funktionen vorgestellt und mit Code Beispielen erläutert. Am Ende des Vortrags sollten die Zuhörer in der Lage sein einfache Programme mit der VS API zu schreiben.
Als Vorwissen empfiehlt es sich einen der Einführenden Vorträge besucht zu haben.
Über den Referent
Philipp 'ph3-der-loewe' Schafft schreibt seit etwa 10 Jahren Software (primär in C und Perl). Im Moment studiert er Elektrotechnik/Automatisierungstechnik.
Besondere Interessen liegen in dem Bereich der Netzwerke und Bus Systeme, Mikrocontrollern, Kryptographie und Digitaler Audio Verarbeitung sowie Entwicklung kreativer Lösungen für Mathematik und Logik Rätseln und Übungen.
In seiner Freizeit beschäftigt er sich außerdem intensiv mit Großkatzen.
Vortrag
Theorie
Schichten
...
OOP
...
Streaming Modus
...
Fehler Behandlung
- Die meisten Aufraufe werfen -1 zurück im Fehlerfall. Ausnahmen sind beispielsweise Funktionen welche einen Pointer zurückgeben. Diese werfen NULL.
- IO Funktionen können "short reads" bzw. "short writes" erzeugen.
- Die Fehlervariable (&err) beinhaltet im Fehlerfall einen Fehler Code. Dieser kann mittels roar_vs_strerr(err) in eine Zeichenkette gewandelt werden.
int err; ssize_t ret = roar_vs_write(vss, buf, len, &err); if ( ret == -1 ) { fprintf(stderr, "Fehler beim schreiben: %s\n", roar_vs_strerr(err)); } else if ( ret < (ssize_t)len) { fprintf(stderr, "\"Short write\", nur %zi von %zu Bytes geschieben\n", ret, len); }
Datei Modus
...
Gepufferter Modus
...
Meta Daten
Derzeit stellt die VS API zwei Meta Daten Schnittstellen zur Verfügung: Titel Meta Daten und Stream Rolle.
Titel Meta Daten
Die Titel Meta Daten (Normalerweise nur "Meta Daten) sind Informationen über den Aktuellen Titel: Künstler, Titel, Album, Genre, Version, Titelnummer, RPG, und viele mehr.
Diese werden mit der Funktion roar_vs_meta() gesetzt
struct roar_keyval kv[3] = { {"TITEL", "Test Titel"}, {"ARTIST", "Irgendwer"}, {"VERSION", "Vortrags Remix"} }; ret = roar_vs_meta(vss, kv, 3 /* Anzahl der Datensätze */, &err);
Stream Rolle
Die Stream Rolle (engl. "stream role") gibt die Funktion des Streams an: Musik, Video, Ereignisse (z.B. Fehlermeldungs Töne), Spiel, Hintergrund Musik, Telephon,...
Diese wird mit der Funktion roar_vs_role() gesetzt:
ret = roar_vs_role(vss, ROAR_ROLE_MUSIC, &err);
Lautstärkesteuerung
...
Flags
Aktuell unterstützt die VS die beiden Flags "Mute" und "Pause".
Das Mute Flag schaltet die Ausgabe des Tons ab, der Stream läuft aber weiterhin. Das Flag Pause hält den Stream an so das er später fortgesetzt werden kann.
Die Flags werden mit den Funktionen roar_vs_pause() und roar_vs_mute() gesetzt:
ret = roar_vs_mute(vss, ROAR_VS_TRUE, &err);
Beziehungsweise:
ret = roar_vs_pause(vss, ROAR_VS_TRUE, &err);
Anstatt ROAR_VS_TRUE (zum setzen) kann natuerlich auch ROAR_VS_FALSE (zum rücksetzen) und ROAR_VS_TOGGLE (zum kippen) verwendet werden.
Mittels ROAR_VS_ASK kann der zustand angefragt werden.
Optionales
Interface zur Haupt API
...