2 #include "pulse/simple.h"
4 mpgplayer::mpgplayer(QObject *parent) :
14 if(mpg123_init() != MPG123_OK)
15 qDebug("Error initilizing mpg123");
16 const char **test = mpg123_supported_decoders();
18 mpg123_handle *mh = mpg123_new(test[0],&error);
19 if(!mpg123_feature(MPG123_FEATURE_DECODE_LAYER3))
21 qDebug("You do not seem to have mp3 decoding support");
24 mpg123_format_none(mh);
25 if(mpg123_format(mh,samplerate,MPG123_STEREO,MPG123_ENC_SIGNED_16)!=MPG123_OK)
26 qDebug("Error in initilizing format decoder");
28 mpg123_open(mh,"/home/eli/Projects/groove-evan/Animal.mp3");
32 ss.format = PA_SAMPLE_S16NE;
35 s =pa_simple_new(NULL,"Groove",PA_STREAM_PLAYBACK ,NULL,"Music",&ss,NULL,NULL,NULL);
37 unsigned char bytes[1024];
46 case TWait: usleep(100); break;
48 if(mpg123_read(mh,bytes,bsize,&done)==MPG123_DONE)
52 pa_simple_write(s,bytes,done,&error);
58 pa_simple_drain(s,&error);
64 qDebug("Finsihed playback");
70 void mpgplayer::setPlaylist(playlist *playList)
73 connect(pl,SIGNAL(bufferReady(int)),this,SLOT(start(int)));
74 connect(pl,SIGNAL(downloadProgress(int,qint64,qint64)),this,SLOT(putb(int,qint64,qint64)));
75 //connect(pl,SIGNAL(downloadComplete(int)),this,SLOT(start(int)));
78 void mpgplayer::markComplete()
82 void mpgplayer::updatePlayPosition(qint64 time)
84 //qDebug() << time << ":" << media->totalTime();
87 void mpgplayer::pause()
95 void mpgplayer::playNext()
100 mpgplayer::~mpgplayer()
104 void mpgplayer::back()
109 void mpgplayer::abortDownload()
115 void mpgplayer::play()
119 void mpgplayer::play(int p)
124 void mpgplayer::stop()
130 void mpgplayer::putb(int p, qint64 b, qint64 t)
132 //qDebug() << "Download: " << b << "Total: " << t;
133 if(p == pl->currentplaying())