// Player // // Douglas Thrift // // $Id$ #ifndef _Player_hpp_ #define _Player_hpp_ #include #ifdef MENES_PRAGMA_ONCE #pragma once #endif #include #include #include #include #include "BeepRemote.hpp" #include "MediaFile.hpp" #include "Share.hpp" class Player { private: enum State { STOPPED, PLAYING, PAUSED } state; BeepRemote remote; _R player_; int position; mta::ReaderWriterLock playlistLock; _L playlist; mutable api::ThreadMutex queueLock; mutable std::queue queue; mutable mta::ReaderWriterLock sharesLock; ext::RedBlackMap > > shares; bool running; _S adder, copier; int Adder(); int Copier() const; void Change(); public: Player(const _R& connector, int player); ~Player(); _finline int GetPosition() const { return position; } _finline const _L& GetPlaylist() const { return playlist; }; void Add(const _R& share); }; #endif//_Player_hpp_