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 &);
36 void stream_created(XineStream &);
37 void stream_destroyed();
38 void stream_state_changed(XineStream::State);
39 void stream_title_changed(const std::string &);
40 void stream_duration_changed(const Msp::Time::TimeDelta &);
41 void stream_position_changed(const Msp::Time::TimeDelta &);