xref: /haiku/src/apps/mediaplayer/playlist/FilePlaylistItem.h (revision c60fcc87e04b0af21ed9f01581b23d1f714a366f)
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