xref: /haiku/src/apps/mediaplayer/playlist/PlaylistObserver.h (revision 25a7b01d15612846f332751841da3579db313082)
1415ef601SStephan Aßmus /*
2c60fcc87SStephan Aßmus  * Copyright 2007-2009 Stephan Aßmus <superstippi@gmx.de>.
3c60fcc87SStephan Aßmus  * All rights reserved. Distributed under the terms of the MIT License.
4415ef601SStephan Aßmus  */
5415ef601SStephan Aßmus #ifndef PLAYLIST_OBSERVER_H
6415ef601SStephan Aßmus #define PLAYLIST_OBSERVER_H
7415ef601SStephan Aßmus 
8415ef601SStephan Aßmus #include "AbstractLOAdapter.h"
9415ef601SStephan Aßmus #include "Playlist.h"
10415ef601SStephan Aßmus 
11415ef601SStephan Aßmus enum {
12c60fcc87SStephan Aßmus 	MSG_PLAYLIST_ITEM_ADDED				= 'plia',
13c60fcc87SStephan Aßmus 	MSG_PLAYLIST_ITEM_REMOVED			= 'plir',
14c60fcc87SStephan Aßmus 	MSG_PLAYLIST_ITEMS_SORTED			= 'plis',
15ebd86629SStephan Aßmus 	MSG_PLAYLIST_CURRENT_ITEM_CHANGED	= 'plcc',
16ebd86629SStephan Aßmus 	MSG_PLAYLIST_IMPORT_FAILED			= 'plif'
17415ef601SStephan Aßmus };
18415ef601SStephan Aßmus 
19c60fcc87SStephan Aßmus class PlaylistObserver : public Playlist::Listener, public AbstractLOAdapter {
20415ef601SStephan Aßmus public:
21415ef601SStephan Aßmus 								PlaylistObserver(BHandler* target);
22415ef601SStephan Aßmus 	virtual						~PlaylistObserver();
23415ef601SStephan Aßmus 
24c60fcc87SStephan Aßmus 	virtual	void				ItemAdded(PlaylistItem* item, int32 index);
25c60fcc87SStephan Aßmus 	virtual	void				ItemRemoved(int32 index);
26415ef601SStephan Aßmus 
27c60fcc87SStephan Aßmus 	virtual	void				ItemsSorted();
28415ef601SStephan Aßmus 
29*a5a013caSPhilippe Saint-Pierre 	virtual	void				CurrentItemChanged(int32 newIndex, bool play);
30ebd86629SStephan Aßmus 
31ebd86629SStephan Aßmus 	virtual	void				ImportFailed();
32415ef601SStephan Aßmus };
33415ef601SStephan Aßmus 
34415ef601SStephan Aßmus #endif // PLAYLIST_OBSERVER_H
35