Libs

Selbstverständlich versuchen wir, unsere Anwendungen wo immer möglich auf bereits bestehendem, frei verfügbaren Code aufzusetzen. Einige Bibliotheken wurden in den bearbeiteten Projekten besonders häufig eingesetzt:

In verschiedenen Projekten ist die Benutzeroberfläche über HTTP-Rest oder WebSockets an die headless Services angebunden. Die Services stellen ihre API in der Regel über Soup-Server bereit und setzen eigene Requests, etwa an Musik-Streaming-Dienste ebenfalls über Soup ab.

Das Dekodieren und Enkodieren von verschiedensten Audio-Formaten wird bestens von der quelloffenen GStreamer-Bibliothek implementiert. Aber auch diese hervorragend dokumentierte Library ist nicht einfach zu beherrschen und erfordert viel Erfahrung und Einarbeitungszeit. Im Quelltextlabor beschäftigen wir uns seit vielen Jahren mit GStreamer können die Bibliothek daher effektiv und gewinnbringend einsetzen.

Von Benutzeroberflächen für den internationalen Markt erwarten die Kunden zeitgemässe Unterstützung ihrer jeweiligen Schriftzeichen, etwa chinesisch, japanisch oder arabisch. Wir verwenden während der Verarbeitung und Speicherung von Texten durchgehend UTF-8-Kodierung und zur Darstellung auf LED-Displays die freetype-Biblitohek. Die Nutzeroberfläche des Nonlinear Labs C15 ist beispielsweise komplett auf einem Linux-FrameBuffer-Device unter Nutzung grafischer Primitiven und der FreeType-Library implementiert.

In der Gnome Linux-Welt hat sich die GLib als Basis vieler Projekte etabliert. Sie ist ein objektorientierter Überbau zur Systemsprache ‘C’ und überrascht Einsteiger mit einer Menge Eigenarten oder schwer verständlichem Boilerplate. Im Quelltextlabor-Team gibt es durchgehend seit 2008 Erfahrungen mit dieser weit verbreiteten Bibliothek.

Unverzichtbar für Audio-Anwendungen auf Linux ist die Alsa-Bibliothek. Durch ihre Nutzung können Synthesizer oder Audio-Dekoder das Audio-Signal an die Soundkarte abgeben. Das klingt zunächst nach einer kleinen Aufgabe, jedoch kann durch suboptimale Konfiguration der Treiber oder der Hardware schnell ungewolltes Verhalten eines Produktes hervorgerufen werden. Der Abgleich verschiedener Anforderungen wie geringer Latenz, CPU Performance und Stabilität ist eine Kernkompetenz des Quelltextlabors.

Einige der für Alsa beschriebenen Probleme sollten durch die pulseaudio-Bibliothek gelöst werden. Für viele Anwendungsfälle hat das auch geklappt, leider kamen andere, neue Probleme hinzu. Wo immer sich die Nutzung von pulseaudio statt alsa anbietet, haben wir die Expertise, um ein Projekt umzustellen oder auf pulseaudio aufzusetzen.