C API

Indledning

C-grænsefladen for aRts oprettedes for at gøre det let at skrive og overføre enkle C-programmer til aRts lydserver. Den sørger for strømningsfunktioner (at sende samplingsstrømme til artsd), enten med eller uden blokering. For de fleste programmer tager man helt enkelt de få systemkald væk som håndterer lydenheden og skifter dem ud mod passende kald til aRts.

Jeg lavede to overførsler for at verificere idéen: mpg123 og quake. Du kan skaffe programrettelserne herfra. Bidrag gerne med dine egne programrettelser til vedligeholderen af aRts eller til programmelpakken for multimedia så de kan integrere understøttelsen for aRts i deres kode.

Hurtig gennemgang

At sende lyd til lydserveren med grænsefladen er meget enkelt:

  1. indsæt deklarationsfilen med #include <artsc.h>

  2. initiér grænsefladen med arts_init()

  3. opret en strøm med arts_play_stream()

  4. indstil særlige parametre med arts_stream_set()

  5. skriv samplingsdata til strømmen med arts_write()

  6. luk strømmen med arts_close_stream()

  7. frigør grænsefladen med arts_free()

Her er et eksempel på et lille program som viser dette:

#include <stdio.h>
#include <artsc.h>
int main()
{
    arts_stream_t stream;
    char buffer[8192];
    int bytes;
    int errorcode;

    errorcode = arts_init();
    if (errorcode < 0)
    {
        fprintf(stderr, "arts_init fejl: %s\n", arts_error_text(errorcode));
        return 1;
    }

    stream = arts_play_stream(44100, 16, 2, "artsctest");

    while((bytes = fread(buffer, 1, 8192, stdin)) > 0)
    {
        errorcode = arts_write(stream, buffer, bytes);
        if(errorcode < 0)
        {
            fprintf(stderr, "arts_write fejl: %s\n", arts_error_text(errorcode));
            return 1;
        }
    }

    arts_close_stream(stream);
    arts_free();

    return 0;
}

Kompilere og linke: artsc-config

For let at kunne kompilere og linke programmer med aRts C-grænseflade, findes værktøjet artsc-config som kender til hvilke biblioteker som man skal linke med og hvor deklarationsfilerne findes. Det kaldes med

artsc-config --libs

for at finde ud af bibliotekerne og

artsc-config --cflags

for at finde ud af yderligere C-oversætterflag. Eksemplet ovenfor ville være kunnet kompileres med kommandolinjen:

cc -o artsctest artsctest.c `artsc-config --cflags` `artsc-config --libs`

cc -o artsctest artsctest.c `artsc-config --cflags` `artsc-config --libs`

Biblioteksreference

[HUSK: opret dokumentation for artsc.h med kdoc]