torstai 8. toukokuuta 2014

Simple gstreamer ogg soitin 2


Edellisen artikkelin koodiin on nyt lisätty threadi jolla voimme keskeyttää / jatkaa soittoa.

Uusi koodi löytyy täältä.

Soiton keskeyttäminen tapahtuu p  ja  näppäin jatkaa soittoa.

---

Tässä nähdään molemmat funktiot ...  aika yksinkertaista sinänsä

void pause (void)
{
   if (pipeline) {
    g_print ("Pause\n");
    gst_element_set_state (pipeline, GST_STATE_PAUSED);
   }
}

void resume (void)
{
   g_print ("Resume\n");
    gst_element_set_state (pipeline, GST_STATE_PLAYING);
}


Ja se itse thread sitten ... puskuri ss on tarkoituksella kirjoitettu näin, myöhempää käyttöä varten.



void *thread1()    
{
  char ss[1];

while(1)  
  {
  gets(ss);
   if(ss[0]=='p')  /*  pause */
    pause ();
   else if(ss[0]=='r')  /* resume */
    resume();
  }
   
}


Seuraavassa artikkelissa kokeillaan hakea kappaleen pituutta ja siirtää positiota 

torstai 1. toukokuuta 2014

Simple gstreamer ogg soitin 1


Aikaisemmin kun puhuin Jolla puhelimen Midi soittimesta, jonka perustana on siis Wildmidi ja gstreamer, niin ennen kuin tutkitaan sitä tarkemmin, Gstreamer sivuilta löytyy esimerkki yksinkertaisesta soittimesta, jonka kääntämistä voisi kokeilla Jolla emulaattorissa tai puhelimessa. Tämä ei siis soita midiä, mutta .ogg tiedostot pitäisi pelittää.
Sivuilta löytyvä koodi löytyy myös täältä 
Kääntäminen on sinänsä aika simppeliä,  tässä tapauksessa käytetään Makefile:ä ja sitä kutsutaan komentorivillä komennolla make




----

CC=gcc

EXTRA_WARNINGS=-Wall -W -Wformat-nonliteral -Wcast-align -Wpointer-arith \
      -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes \
      -Wmissing-declarations -Winline -Wundef -Wnested-externs -Wcast-qual \
      -Wshadow -Wwrite-strings -Wno-unused-parameter -Wfloat-equal -pedantic -ansi -std=c99

GST_LIBS=`pkg-config --libs gstreamer-0.10` -lgstinterfaces-0.10
GST_CFLAGS=`pkg-config --cflags gstreamer-0.10`

CFLAGS=-ggdb $(EXTRA_WARNINGS)

BINS=simple-player

all: $(BINS)

simple-player: simple.c
$(CC) $(CFLAGS) $(GST_CFLAGS) $(GST_LIBS) $+ -o $@

clean:
rm -rf $(BINS)

------

Jos kääntäminen onnistui ilman virheitä, meillä pitäisi olla nyt ohjelma nimeltä 
simple-player
soitetaan -  ./simple-player jokin-biisi.ogg   - Ctrl c keskeyttää.

Gstreamer on siis 0.10 versio, eikä 1.0, laitteessa voi olla molemmat versiot, kunhan vain käännettäessä käytetään samaa versiota.