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 State get_state() const { return state; }
42 const Msp::Time::TimeDelta &get_duration() const { return duration; }
43 const Msp::Time::TimeDelta &get_position() const { return position; }
44 const std::string &get_title() const { return title; }
47 void seek(const Msp::Time::TimeDelta &);
51 void set_state(State);
57 void handle_event(const xine_event_t &);
60 void operator<<(Msp::LexicalConverter &, XineStream::State);
61 void operator>>(const Msp::LexicalConverter &, XineStream::State &);