xref: /haiku/src/apps/mediaplayer/playlist/PlaylistObserver.h (revision c60fcc87e04b0af21ed9f01581b23d1f714a366f)
1415ef601SStephan Aßmus /*
2*c60fcc87SStephan Aßmus  * Copyright 2007-2009 Stephan Aßmus <superstippi@gmx.de>.
3*c60fcc87SStephan 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 {
12*c60fcc87SStephan Aßmus 	MSG_PLAYLIST_ITEM_ADDED				= 'plia',
13*c60fcc87SStephan Aßmus 	MSG_PLAYLIST_ITEM_REMOVED			= 'plir',
14*c60fcc87SStephan Aßmus 	MSG_PLAYLIST_ITEMS_SORTED			= 'plis',
15*c60fcc87SStephan Aßmus 	MSG_PLAYLIST_CURRENT_ITEM_CHANGED	= 'plcc'
16415ef601SStephan Aßmus };
17415ef601SStephan Aßmus 
18*c60fcc87SStephan Aßmus class PlaylistObserver : public Playlist::Listener, public AbstractLOAdapter {
19415ef601SStephan Aßmus public:
20415ef601SStephan Aßmus 								PlaylistObserver(BHandler* target);
21415ef601SStephan Aßmus 	virtual						~PlaylistObserver();
22415ef601SStephan Aßmus 
23*c60fcc87SStephan Aßmus 	virtual	void				ItemAdded(PlaylistItem* item, int32 index);
24*c60fcc87SStephan Aßmus 	virtual	void				ItemRemoved(int32 index);
25415ef601SStephan Aßmus 
26*c60fcc87SStephan Aßmus 	virtual	void				ItemsSorted();
27415ef601SStephan Aßmus 
28*c60fcc87SStephan Aßmus 	virtual	void				CurrentItemChanged(int32 newIndex);
29415ef601SStephan Aßmus };
30415ef601SStephan Aßmus 
31415ef601SStephan Aßmus #endif // PLAYLIST_OBSERVER_H
32