X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fclient.h;h=2b12e4d69f9e1bf074a95cf07497b6465a6bf320;hb=HEAD;hp=1f543fc15861f4ebaf2e4cd923e05d38c4d1f37a;hpb=8c7e5bd0d1f966af2b22293a3a0780c419fb9c95;p=xinema.git diff --git a/source/client.h b/source/client.h index 1f543fc..2b12e4d 100644 --- a/source/client.h +++ b/source/client.h @@ -1,17 +1,22 @@ #ifndef CLIENT_H_ #define CLIENT_H_ +#include #include #include +#include +#include "xinestream.h" class Xinema; -class Client +class Client: public sigc::trackable { private: Xinema &xinema; Msp::Net::StreamSocket *socket; std::string buffer; + Msp::Mutex mutex; + Msp::Time::TimeDelta last_position; bool stale; public: @@ -23,9 +28,24 @@ private: void data_available(); void end_of_stream(); + XineStream &get_stream() const; + int convert_channel(const std::string &); void process_command(const std::string &); void send_reply(const std::string &); void list_directory(const Msp::FS::Path &); + + void stream_created(XineStream &); + void stream_destroyed(); + void stream_state_changed(XineStream::State); + void stream_title_changed(const std::string &); + void stream_duration_changed(const Msp::Time::TimeDelta &); + void stream_position_changed(const Msp::Time::TimeDelta &); + void stream_size_changed(unsigned, unsigned); + void stream_framerate_changed(float); + void stream_codecs_changed(const std::string &, const std::string &); + void stream_channels_changed(); + void stream_audio_channel_changed(int); + void stream_spu_channel_changed(int); }; #endif