/* * $Id$ * * (C) 2003-2006 Gabest * (C) 2006-2010 see AUTHORS * * This file is part of mplayerc. * * Mplayerc is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Mplayerc is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #pragma once #include class CPlaylistItem { static UINT m_globalid; public: UINT m_id; CString m_label; CAtlList m_fns; CAtlList m_subs; enum type_t {file, device} m_type; REFERENCE_TIME m_duration; int m_vinput, m_vchannel; int m_ainput; long m_country; bool m_fInvalid; public: CPlaylistItem(); virtual ~CPlaylistItem(); CPlaylistItem(const CPlaylistItem& pli); CPlaylistItem& operator = (const CPlaylistItem& pli); POSITION FindFile(LPCTSTR path); void AutoLoadFiles(); CString GetLabel(int i = 0); }; class CPlaylist : public CList { protected: POSITION m_pos; public: CPlaylist(); virtual ~CPlaylist(); void RemoveAll(); bool RemoveAt(POSITION pos); void SortById(), SortByName(), SortByPath(), Randomize(); POSITION GetPos() const; void SetPos(POSITION pos); CPlaylistItem& GetNextWrap(POSITION& pos); CPlaylistItem& GetPrevWrap(POSITION& pos); POSITION Shuffle(); };