cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mtsKeyboard.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ex: set filetype=cpp softtabstop=4 shiftwidth=4 tabstop=4 cindent expandtab: */
3 
4 /*
5  Author(s): Gorkem Sevinc, Anton Deguet
6  Created on: 2009-09-17
7 
8  (C) Copyright 2009-2014 Johns Hopkins University (JHU), All Rights Reserved.
9 
10 --- begin cisst license - do not edit ---
11 
12 This software is provided "as is" under an open source license, with
13 no warranty. The complete license can be found in license.txt and
14 http://www.cisst.org/cisst/license.txt.
15 
16 --- end cisst license ---
17 */
18 
19 
20 #ifndef _mtsKeyboard_h
21 #define _mtsKeyboard_h
22 
26 #include <map>
27 
28 // Always include last
30 
39  // declare services, requires dynamic creation
41  public:
42  mtsKeyboard(void);
43  ~mtsKeyboard(void) {};
44  void Configure(const std::string & CMN_UNUSED(filename) = "") {};
45  void Startup(void){};
46  void Run(void);
47  void Cleanup(void) {};
48 
49  enum TriggerType {BUTTON_EVENT, VOID_EVENT, VOID_FUNCTION, WRITE_FUNCTION};
50 
59  void AddKeyButtonEvent(char key, const std::string & interfaceName, bool toggle);
60 
64  void AddKeyVoidEvent(char key, const std::string & interfaceName, const std::string & eventName);
65 
69  void AddKeyVoidFunction(char key, const std::string & interfaceName, const std::string & commandName);
70 
75  void AddKeyWriteFunction(char key, const std::string & interfaceName, const std::string & commandName, bool initialState);
76 
77  // for backward compatibility
78  inline CISST_DEPRECATED void AddKeyWriteCommand(char key, const std::string & interfaceName, const std::string & commandName, bool initialState) {
79  AddKeyWriteFunction(key, interfaceName, commandName, initialState);
80  }
81 
85  void SetQuitKey(char quitKey);
86 
89  struct KeyData {
90  bool Toggle;
91  bool State;
95  };
96 
97  protected:
98  typedef std::multimap<char, KeyData *> KeyDataType;
100 
102 
103  char QuitKey;
104  char KeyboardInput; // temp
106 };
107 
108 
110 
111 
112 #endif // _mtsKeyboard_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
mtsFunctionVoid VoidTrigger
Definition: mtsKeyboard.h:93
mtsFunctionWrite WriteTrigger
Definition: mtsKeyboard.h:92
void Configure(const std::string &CMN_UNUSED(filename)="")
Definition: mtsKeyboard.h:44
mtsFunctionWrite KeyEvent
Definition: mtsKeyboard.h:101
#define CISST_DEPRECATED
Definition: cmnPortability.h:310
bool State
Definition: mtsKeyboard.h:91
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
std::multimap< char, KeyData * > KeyDataType
Definition: mtsKeyboard.h:98
Definition: mtsFunctionVoid.h:36
CMN_DECLARE_SERVICES_INSTANTIATION(mtsKeyboard)
Defines a continuously executing task.
Definition: mtsKeyboard.h:89
void Startup(void)
Definition: mtsKeyboard.h:45
~mtsKeyboard(void)
Definition: mtsKeyboard.h:43
void Cleanup(void)
Definition: mtsKeyboard.h:47
CISST_DEPRECATED void AddKeyWriteCommand(char key, const std::string &interfaceName, const std::string &commandName, bool initialState)
Definition: mtsKeyboard.h:78
char QuitKey
Definition: mtsKeyboard.h:103
bool Toggle
Definition: mtsKeyboard.h:90
Forward declarations and #define for cisstMultiTask.
char KeyboardInput
Definition: mtsKeyboard.h:104
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
KeyDataType KeyboardDataMap
Definition: mtsKeyboard.h:99
TriggerType Type
Definition: mtsKeyboard.h:94
virtual void Run(void)=0
TriggerType
Definition: mtsKeyboard.h:49
Definition: mtsKeyboard.h:38
#define CMN_DECLARE_MEMBER_AND_ACCESSORS(memberType, memberName)
Definition: cmnAccessorMacros.h:70
Definition: mtsFunctionWrite.h:37
Definition: mtsTaskContinuous.h:77
const int CMN_NO_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:328
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76