6 #include <msp/core/mutex.h>
7 #include <msp/strings/lexicalcast.h>
8 #include <msp/time/timedelta.h>
22 sigc::signal<void, State> signal_state_changed;
23 sigc::signal<void, const std::string &> signal_title_changed;
24 sigc::signal<void, const Msp::Time::TimeDelta &> signal_duration_changed;
25 sigc::signal<void, const Msp::Time::TimeDelta &> signal_position_changed;
29 xine_stream_t *stream;
30 xine_event_queue_t *queue;
34 Msp::Time::TimeDelta duration;
35 Msp::Time::TimeDelta position;
38 XineStream(XineEngine &, const std::string &);
41 Msp::Mutex &get_mutex() { return mutex; }
42 State get_state() const { return state; }
43 const Msp::Time::TimeDelta &get_duration() const { return duration; }
44 const Msp::Time::TimeDelta &get_position() const { return position; }
45 const std::string &get_title() const { return title; }
48 void seek(const Msp::Time::TimeDelta &);
52 void set_state(State);
58 void handle_event(const xine_event_t &);
61 void operator<<(Msp::LexicalConverter &, XineStream::State);
62 void operator>>(const Msp::LexicalConverter &, XineStream::State &);