4 #include <sigc++/trackable.h>
5 #include <msp/fs/path.h>
6 #include <msp/net/streamsocket.h>
7 #include <msp/time/timedelta.h>
8 #include "xinestream.h"
12 class Client: public sigc::trackable
16 Msp::Net::StreamSocket *socket;
19 Msp::Time::TimeDelta last_position;
23 Client(Xinema &, Msp::Net::StreamSocket *);
25 bool is_stale() const { return stale; }
28 void data_available();
31 XineStream &get_stream() const;
32 void process_command(const std::string &);
33 void send_reply(const std::string &);
34 void list_directory(const Msp::FS::Path &);
35 void set_audio_channel(const std::string &);
36 void set_spu_channel(const std::string &);
38 void stream_created(XineStream &);
39 void stream_destroyed();
40 void stream_state_changed(XineStream::State);
41 void stream_title_changed(const std::string &);
42 void stream_duration_changed(const Msp::Time::TimeDelta &);
43 void stream_position_changed(const Msp::Time::TimeDelta &);
44 void stream_channels_changed();