]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/utils/fsm.hpp
skins2: cosmetic (a single addObserver is sufficient)
[vlc] / modules / gui / skins2 / utils / fsm.hpp
index 585d23ba9e12d3a573c31023a15dab5f84b5e2a4..53629f12e9bcb79427555256e393624e7419064f 100644 (file)
@@ -1,11 +1,11 @@
 /*****************************************************************************
  * fsm.hpp
  *****************************************************************************
- * Copyright (C) 2003 VideoLAN (Centrale Réseaux) and its contributors
+ * Copyright (C) 2003 the VideoLAN team
  * $Id$
  *
  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
- *          Olivier Teulière <ipkiss@via.ecp.fr>
+ *          Olivier Teulière <ipkiss@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,9 +17,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #ifndef FSM_HPP
 #include <set>
 
 class EvtGeneric;
+class CmdGeneric;
 
 
 /// This class implements a Finite State Machine (FSM)
 class FSM: public SkinObject
 {
-    public:
-        FSM( intf_thread_t *pIntf ): SkinObject( pIntf ) {}
-        virtual ~FSM() {}
+public:
+    FSM( intf_thread_t *pIntf ): SkinObject( pIntf ) { }
+    virtual ~FSM() { }
 
-        /// Add a state to the machine
-        void addState( const string &state );
+    /// Add a state to the machine
+    void addState( const string &state );
 
-        /// Add a transition to the machine
-        void addTransition( const string &state1, const string &event,
-                            const string &state2,
-                            Callback *pCmd = NULL );
+    /// Add a transition to the machine
+    void addTransition( const string &state1, const string &event,
+                        const string &state2,
+                        CmdGeneric *pCmd = NULL );
 
-        /// Retrieve the current state
-        const string &getState() const { return m_currentState; }
+    /// Retrieve the current state
+    const string &getState() const { return m_currentState; }
 
-        /// Set the current state, without bothering about transitions
-        void setState( const string &state );
+    /// Set the current state, without bothering about transitions
+    void setState( const string &state );
 
-        /// Find a transition from the current state with the input event,
-        /// change the state, and call the associated callback (if any).
-        void handleTransition( const string &event );
+    /// Find a transition from the current state with the input event,
+    /// change the state, and call the associated callback (if any).
+    void handleTransition( const string &event );
 
-    private:
-        /// A Key_t contains the initial state of a transition, and a string
-        /// characterizing an event (for example: "mouse:left:down:ctrl")
-        typedef pair<string, string> Key_t;
+private:
+    /// A Key_t contains the initial state of a transition, and a string
+    /// characterizing an event (for example: "mouse:left:down:ctrl")
+    typedef pair<string, string> Key_t;
 
-        /// A Data_t contains the final state of a transition, and a callback
-        /// to execute when the transition is applied
-        typedef pair<string, Callback*> Data_t;
+    /// A Data_t contains the final state of a transition, and a callback
+    /// to execute when the transition is applied
+    typedef pair<string, CmdGeneric*> Data_t;
 
-        /// Current state of the machine
-        string m_currentState;
+    /// Current state of the machine
+    string m_currentState;
 
-        /// Set containing the different states
-        set<string> m_states;
+    /// Set containing the different states
+    set<string> m_states;
 
-        /// Map containing the different transitions between defined types
-        /// It associates a final state (and potentially a callback)
-        /// with a couple of the form: (currentState, triggerEvent)
-        map<Key_t, Data_t> m_transitions;
+    /// Map containing the different transitions between defined types
+    /// It associates a final state (and potentially a callback)
+    /// with a couple of the form: (currentState, triggerEvent)
+    map<Key_t, Data_t> m_transitions;
 };