2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full text of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
10 //==========================================================================
12 * @file CicoSCResourceManager.h
16 //==========================================================================
17 #ifndef __CICO_SC_RESOURCE_MANAGER_H__
18 #define __CICO_SC_RESOURCE_MANAGER_H__
23 #include "ico_syc_mrp_resource_private.h"
26 class CicoSCPolicyManager;
27 class CicoSCWindowController;
28 class CicoSCInputController;
30 class CicoSCResourceManager
33 // default constructor
34 CicoSCResourceManager();
37 ~CicoSCResourceManager();
39 // initialize resource manager
42 // terminate resource manager
46 void handleCommand(const CicoSCCommand &cmd, bool internal=false);
48 // set CicoSCWindowController instance
49 void setWindowController(CicoSCWindowController *winCtrl);
51 // set CicoSCInputController instance
52 void setInputController(CicoSCInputController *inputCtrl);
54 // receive changed state
55 void receiveChangedState(int state);
58 // assignment operator
59 CicoSCResourceManager& operator=(const CicoSCResourceManager &object);
62 CicoSCResourceManager(const CicoSCResourceManager &object);
64 bool acquireDisplayResource(resource_request_t *req, int addprio);
65 bool releaseDisplayResource(resource_request_t *req);
67 bool acquireSoundResource(resource_request_t *req, int addprio);
68 bool releaseSoundResource(resource_request_t *req);
70 bool acquireInputResource(resource_request_t *req, int addprio);
71 bool releaseInputResource(resource_request_t *req);
74 resource_request_t* newResourceRequest(int resid,
76 const CicoSCCommand &cmd);
78 void delResourceRequest(resource_request_t *req);
80 static void enforceDisplay(unsigned short state,
85 static void enforceSound(unsigned short state,
89 static void enforceInput(unsigned short state,
95 CicoSCPolicyManager *m_policyMgr;
96 CicoSCWindowController *m_winCtrl;
97 CicoSCInputController *m_inputCtrl;
99 list<list<resource_request_t*> > m_dispReqQueue;
100 list<list<resource_request_t*> > m_soundReqQueue;
101 list<list<resource_request_t*> > m_inputReqQueue;
103 #endif // __CICO_SC_RESOURCE_MANAGER_H__
104 // vim:set expandtab ts=4 sw=4: