#pragma once #include #include "../playlist/ifc_playlistloadercallback.h" #include "../nu/AutoLock.h" class AndroidDevice; class AndroidSong; class AndroidPlaylist: public ifc_playlistloadercallback { public: AndroidPlaylist(AndroidDevice& d, LPCTSTR pszPlaylist, BOOL master); ~AndroidPlaylist(); public: /*** ifc_playlistloadercallback ***/ void OnFile(const wchar_t *filename, const wchar_t *title, int lengthInMS, ifc_plentryinfo *info); public: // utility BOOL isMaster() { return master; } wchar_t* getFilename() { return filename; } size_t size(); AndroidSong *&at(size_t index); void push_back(AndroidSong *callback); void RemoveSong(AndroidSong *song); void swap(size_t index1, size_t index2); void eraseAt(size_t index); AndroidSong *FindSong(const wchar_t *filename); protected: RECVS_DISPATCH; private: AndroidDevice &device; typedef std::vector SongList; SongList songs; public: //Nullsoft::Utility::LockGuard songs_guard; wchar_t playlistName[MAX_PATH]; wchar_t playlistPath[MAX_PATH]; wchar_t filename[MAX_PATH]; BOOL master; BOOL dirty; };