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 int convert_channel(const std::string &);
33 void process_command(const std::string &);
34 void send_reply(const std::string &);
35 void list_directory(const Msp::FS::Path &);
37 void stream_created(XineStream &);
38 void stream_destroyed();
39 void stream_state_changed(XineStream::State);
40 void stream_title_changed(const std::string &);
41 void stream_duration_changed(const Msp::Time::TimeDelta &);
42 void stream_position_changed(const Msp::Time::TimeDelta &);
43 void stream_channels_changed();
44 void stream_audio_channel_changed(int);
45 void stream_spu_channel_changed(int);