3 // Copyright (c) 2008 The Dasher Team
5 // This file is part of Dasher.
7 // Dasher is free software; you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 2 of the License, or
10 // (at your option) any later version.
12 // Dasher 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.
17 // You should have received a copy of the GNU General Public License
18 // along with Dasher; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef MODULE_MANAGER_H
22 #define MODULE_MANAGER_H
24 #include "DasherModule.h"
34 enum ModuleType
{InputDevice
= 0, InputMethod
= 1};
38 class CModuleManager
{
41 CDasherModule
*RegisterModule(CDasherModule
*pModule
);
42 CDasherModule
*GetModule(ModuleID_t iID
);
43 CDasherModule
*GetModuleByName(const std::string strName
);
44 CDasherInput
*GetDefaultInputDevice();
45 CInputFilter
*GetDefaultInputMethod();
46 void SetDefaultInputDevice(CDasherInput
*);
47 void SetDefaultInputMethod(CInputFilter
*);
49 void ListModules(int iType
, std::vector
<std::string
> &vList
);
52 std::vector
<CDasherModule
*> m_vModules
;
53 std::map
<std::string
, ModuleID_t
> m_mapNameToID
;
54 CDasherInput
*m_pDefaultInputDevice
;
55 CInputFilter
*m_pDefaultInputMethod
;