192deac10Szhongyang #pragma once 292deac10Szhongyang #include "SongInfo.h" 3*3cd2a7a0SZhong Yang class CPlaylistFile 492deac10Szhongyang { 592deac10Szhongyang public: 6ef4ab09dSZhong Yang enum Type //�����б��ʽ 7ef4ab09dSZhong Yang { 8ef4ab09dSZhong Yang PL_PLAYLIST, //MusicPlayer2�����б� 9ef4ab09dSZhong Yang PL_M3U, //m3u�����б� 10ef4ab09dSZhong Yang PL_M3U8 //m3u8�����б� 11ef4ab09dSZhong Yang }; 12ef4ab09dSZhong Yang 13*3cd2a7a0SZhong Yang CPlaylistFile(); 14*3cd2a7a0SZhong Yang ~CPlaylistFile(); 1592deac10Szhongyang void LoadFromFile(const wstring& file_path); 16ef4ab09dSZhong Yang void SaveToFile(const wstring& file_path, Type type = PL_PLAYLIST) const; 175fca386fSzhongyang vector<SongInfo> GetPlaylist() const; 1892deac10Szhongyang void AddFiles(const vector<wstring>& files); 195fca386fSzhongyang void AddFiles(const vector<SongInfo>& files); 2092deac10Szhongyang void FromSongList(const vector<SongInfo>& song_list); 2176b3aa86SZhong Yang void ToSongList(vector<SongInfo>& song_list); 22bb5d4504SZhong Yang bool IsFileInPlaylist(const SongInfo& file); 23c83d5239SZhong Yang void RemoveFile(const wstring& file); 2492deac10Szhongyang 2592deac10Szhongyang private: 26*3cd2a7a0SZhong Yang void DisposePlaylistFileLine(const string& str_current_line, bool utf8); 27*3cd2a7a0SZhong Yang 28*3cd2a7a0SZhong Yang private: 29480ef52eSZhong Yang vector<SongInfo> m_playlist; 3092deac10Szhongyang }; 3192deac10Szhongyang 32