xref: /haiku/src/apps/mediaplayer/ControllerView.h (revision 25a7b01d15612846f332751841da3579db313082)
1 /*
2  * Controller.cpp - Media Player for the Haiku Operating System
3  *
4  * Copyright (C) 2006 Marcus Overhagen <marcus@overhagen.de>
5  * Copyright (C) 2007 Stephan Aßmus <superstippi@gmx.de>
6  * Copyright (C) 2008-2009 Fredrik Modéen 	<[FirstName]@[LastName].se> (MIT ok)
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * version 2 as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20  *
21  */
22 #ifndef __CONTROLLER_VIEW_H
23 #define __CONTROLLER_VIEW_H
24 
25 
26 #include "TransportControlGroup.h"
27 
28 
29 class Controller;
30 class Playlist;
31 class PlaylistObserver;
32 
33 
34 class ControllerView : public TransportControlGroup {
35 public:
36 						ControllerView(BRect frame, Controller* controller,
37 							Playlist* playlist);
38 						~ControllerView();
39 
40 	// TransportControlGroup interface
41 	virtual	void		TogglePlaying();
42 	virtual	void		Stop();
43 	virtual	void		Rewind();
44 	virtual	void		Forward();
45 	virtual	void		SkipBackward();
46 	virtual	void		SkipForward();
47 	virtual	void		VolumeChanged(float value);
48 	virtual	void		ToggleMute();
49 	virtual	void		PositionChanged(float value);
50 
51 private:
52 	void				AttachedToWindow();
53 	void				MessageReceived(BMessage* message);
54 	void				Draw(BRect updateRect);
55 
56 	// ControllerView
57 			void		_CheckSkippable();
58 
59 private:
60 	Controller*			fController;
61 	Playlist*			fPlaylist;
62 	PlaylistObserver*	fPlaylistObserver;
63 };
64 
65 #endif	// __CONTROLLER_VIEW_H
66