#ifndef PLAYLIST_H #define PLAYLIST_H #include #include /* class PlaylistItem { PlaylistItem(const KURL &u=0); virtual ~PlaylistItem(); TQString title() const; virtual void setTitle(const TQString &t); KURL url() const; virtual void setUrl(const KURL &u); int length() const; virtual void setLength(int l); }; */ class SafeListViewItem; class View; class List; class TQListViewItem; class SplitPlaylist : public Playlist, public Plugin { Q_OBJECT friend class SafeListViewItem; friend class List; public: SplitPlaylist(); ~SplitPlaylist(); /** * go to the front **/ virtual void reset(); virtual void clear(); virtual void addFile(const KURL&, bool play=false); /** * Cycle everthing through forward **/ virtual PlaylistItem next(); PlaylistItem next(bool play); /** * return the one that might/should be playing now **/ virtual PlaylistItem current(); /** * Cycle through backwards **/ virtual PlaylistItem previous(); virtual PlaylistItem getFirst() const; virtual PlaylistItem getAfter(const PlaylistItem &item) const; virtual bool listVisible() const; virtual void init(); virtual Playlist *playlist() { return this; } static SplitPlaylist *SPL() { return Self; } inline bool exiting() const { return mExiting; } public slots: virtual void showList(); virtual void hideList(); virtual void remove(const PlaylistItem&); virtual void sort(); public slots: void setCurrent(const PlaylistItem &, bool emitC); void setCurrent(const PlaylistItem &); void listItemSelected(TQListViewItem*); void randomize(); private: PlaylistItem currentItem, randomPrevious; signals: void play(PlaylistItem*); private: bool mExiting; // HACK HACK HACK HACK!!! View *view; // TQRect currentRect; static SplitPlaylist *Self; }; #endif