1*c60fcc87SStephan Aßmus /* 2*c60fcc87SStephan Aßmus * Copyright © 2009 Stephan Aßmus <superstippi@gmx.de> 3*c60fcc87SStephan Aßmus * All rights reserved. Distributed under the terms of the MIT license. 4*c60fcc87SStephan Aßmus */ 5*c60fcc87SStephan Aßmus #ifndef FILE_PLAYLIST_ITEM_H 6*c60fcc87SStephan Aßmus #define FILE_PLAYLIST_ITEM_H 7*c60fcc87SStephan Aßmus 8*c60fcc87SStephan Aßmus #include "PlaylistItem.h" 9*c60fcc87SStephan Aßmus 10*c60fcc87SStephan Aßmus #include <Entry.h> 11*c60fcc87SStephan Aßmus 12*c60fcc87SStephan Aßmus class FilePlaylistItem : public PlaylistItem { 13*c60fcc87SStephan Aßmus public: 14*c60fcc87SStephan Aßmus FilePlaylistItem(const entry_ref& ref); 15*c60fcc87SStephan Aßmus FilePlaylistItem(const FilePlaylistItem& item); 16*c60fcc87SStephan Aßmus FilePlaylistItem(const BMessage* archive); 17*c60fcc87SStephan Aßmus virtual ~FilePlaylistItem(); 18*c60fcc87SStephan Aßmus 19*c60fcc87SStephan Aßmus virtual PlaylistItem* Clone() const; 20*c60fcc87SStephan Aßmus 21*c60fcc87SStephan Aßmus // archiving 22*c60fcc87SStephan Aßmus static BArchivable* Instantiate(BMessage* archive); 23*c60fcc87SStephan Aßmus virtual status_t Archive(BMessage* into, 24*c60fcc87SStephan Aßmus bool deep = true) const; 25*c60fcc87SStephan Aßmus 26*c60fcc87SStephan Aßmus // attributes 27*c60fcc87SStephan Aßmus virtual status_t SetAttribute(const Attribute& attribute, 28*c60fcc87SStephan Aßmus const BString& string); 29*c60fcc87SStephan Aßmus virtual status_t GetAttribute(const Attribute& attribute, 30*c60fcc87SStephan Aßmus BString& string) const; 31*c60fcc87SStephan Aßmus 32*c60fcc87SStephan Aßmus virtual status_t SetAttribute(const Attribute& attribute, 33*c60fcc87SStephan Aßmus const int32& value); 34*c60fcc87SStephan Aßmus virtual status_t GetAttribute(const Attribute& attribute, 35*c60fcc87SStephan Aßmus int32& value) const; 36*c60fcc87SStephan Aßmus 37*c60fcc87SStephan Aßmus virtual status_t SetAttribute(const Attribute& attribute, 38*c60fcc87SStephan Aßmus const int64& value); 39*c60fcc87SStephan Aßmus virtual status_t GetAttribute(const Attribute& attribute, 40*c60fcc87SStephan Aßmus int64& value) const; 41*c60fcc87SStephan Aßmus 42*c60fcc87SStephan Aßmus // methods 43*c60fcc87SStephan Aßmus virtual BString LocationURI() const; 44*c60fcc87SStephan Aßmus virtual status_t GetIcon(BBitmap* bitmap, 45*c60fcc87SStephan Aßmus icon_size iconSize) const; 46*c60fcc87SStephan Aßmus 47*c60fcc87SStephan Aßmus virtual status_t MoveIntoTrash(); 48*c60fcc87SStephan Aßmus virtual status_t RestoreFromTrash(); 49*c60fcc87SStephan Aßmus 50*c60fcc87SStephan Aßmus // playback 51*c60fcc87SStephan Aßmus virtual BMediaFile* CreateMediaFile() const; 52*c60fcc87SStephan Aßmus 53*c60fcc87SStephan Aßmus private: 54*c60fcc87SStephan Aßmus entry_ref fRef; 55*c60fcc87SStephan Aßmus BString fNameInTrash; 56*c60fcc87SStephan Aßmus }; 57*c60fcc87SStephan Aßmus 58*c60fcc87SStephan Aßmus #endif // FILE_PLAYLIST_ITEM_H 59