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