1 // Copyright 2010 Christophe Henry 2 // henry UNDERSCORE christophe AT hotmail DOT com 3 // This is an extended version of the state machine available in the boost::mpl library 4 // Distributed under the same license as the original. 5 // Copyright for the original version: 6 // Copyright 2005 David Abrahams and Aleksey Gurtovoy. Distributed 7 // under the Boost Software License, Version 1.0. (See accompanying 8 // file LICENSE_1_0.txt or copy at 9 // http://www.boost.org/LICENSE_1_0.txt) 10 11 #ifndef EVENTS_HPP 12 #define EVENTS_HPP 13 14 //flags 15 struct MenuActive{}; 16 // hardware-generated events 17 struct Hold {}; 18 struct NoHold {}; 19 struct SouthPressed {}; 20 struct SouthReleased {}; 21 struct MiddleButton {}; 22 struct EastPressed{}; 23 struct EastReleased{}; 24 struct Off {}; 25 struct MenuButton {}; 26 27 // internally used events 28 struct PlayPause {}; 29 struct EndPlay {}; 30 struct CloseMenu 31 { 32 template<class EVENT> CloseMenuCloseMenu33 CloseMenu(EVENT const &) {} 34 }; 35 struct OnOffTimer {}; 36 struct MenuMiddleButton {}; 37 struct SelectSong {}; 38 struct SongFinished {}; 39 struct StartSong 40 { StartSongStartSong41 StartSong (int song_index):m_Selected(song_index){} 42 int m_Selected; 43 }; 44 struct PreviousSong{}; 45 struct NextSong{}; 46 struct NextSongDerived : public NextSong{}; 47 struct ForwardTimer{}; 48 struct PlayingMiddleButton{}; 49 50 #endif // EVENTS_HPP 51