winamp/Src/Plugins/Portable/pmp_android/androidplaylist.h

50 lines
1.1 KiB
C++

#pragma once
#include <vector>
#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<AndroidSong*> 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;
};