1 #include <msp/io/print.h>
2 #include "xineengine.h"
3 #include "xinestream.h"
8 XineStream::XineStream(XineEngine &e, const string &mrl):
11 stream = xine_stream_new(engine.get_engine(), engine.get_audio_driver(), engine.get_video_driver());
12 xine_open(stream, mrl.c_str());
14 queue = xine_event_new_queue(stream);
16 engine.add_stream(*this);
19 XineStream::~XineStream()
21 engine.remove_stream(*this);
24 xine_event_dispose_queue(queue);
28 void XineStream::play()
30 xine_play(stream, 0, 0);
33 void XineStream::stop()
38 void XineStream::tick()
40 while(xine_event_t *event = xine_event_get(queue))
43 xine_event_free(event);
47 void XineStream::handle_event(const xine_event_t &event)
51 case XINE_EVENT_PROGRESS:
53 xine_progress_data_t *data = reinterpret_cast<xine_progress_data_t *>(event.data);
54 IO::print("%s [%d%%]\n", data->description, data->percent);