don't pull in RageThreads.h
This commit is contained in:
@@ -13,13 +13,22 @@
|
|||||||
#include "InputFilter.h"
|
#include "InputFilter.h"
|
||||||
#include "RageLog.h"
|
#include "RageLog.h"
|
||||||
#include "RageInput.h"
|
#include "RageInput.h"
|
||||||
|
#include "RageThreads.h"
|
||||||
|
|
||||||
|
|
||||||
InputFilter* INPUTFILTER = NULL; // global and accessable from anywhere in our program
|
InputFilter* INPUTFILTER = NULL; // global and accessable from anywhere in our program
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
InputFilter::InputFilter()
|
InputFilter::InputFilter()
|
||||||
{
|
{
|
||||||
Reset();
|
Reset();
|
||||||
|
queuemutex = new RageMutex;
|
||||||
|
}
|
||||||
|
|
||||||
|
InputFilter::~InputFilter()
|
||||||
|
{
|
||||||
|
delete queuemutex;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputFilter::Reset()
|
void InputFilter::Reset()
|
||||||
@@ -38,7 +47,7 @@ void InputFilter::ButtonPressed( DeviceInput di, bool Down )
|
|||||||
|
|
||||||
InputEventType iet = Down? IET_FIRST_PRESS:IET_RELEASE;
|
InputEventType iet = Down? IET_FIRST_PRESS:IET_RELEASE;
|
||||||
|
|
||||||
LockMut(queuemutex);
|
LockMut(*queuemutex);
|
||||||
queue.push_back( InputEvent(di,iet) );
|
queue.push_back( InputEvent(di,iet) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,7 +64,7 @@ void InputFilter::Update(float fDeltaTime)
|
|||||||
|
|
||||||
/* Make sure that nothing gets inserted while we do this, to prevent
|
/* Make sure that nothing gets inserted while we do this, to prevent
|
||||||
* things like "key pressed, key release, key repeat". */
|
* things like "key pressed, key release, key repeat". */
|
||||||
LockMut(queuemutex);
|
LockMut(*queuemutex);
|
||||||
|
|
||||||
for( int d=0; d<NUM_INPUT_DEVICES; d++ ) // foreach InputDevice
|
for( int d=0; d<NUM_INPUT_DEVICES; d++ ) // foreach InputDevice
|
||||||
{
|
{
|
||||||
@@ -106,7 +115,7 @@ float InputFilter::GetSecsHeld( DeviceInput di )
|
|||||||
|
|
||||||
void InputFilter::GetInputEvents( InputEventArray &array )
|
void InputFilter::GetInputEvents( InputEventArray &array )
|
||||||
{
|
{
|
||||||
LockMut(queuemutex);
|
LockMut(*queuemutex);
|
||||||
array = queue;
|
array = queue;
|
||||||
queue.clear();
|
queue.clear();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "RageInputDevice.h"
|
#include "RageInputDevice.h"
|
||||||
#include "RageThreads.h"
|
|
||||||
|
|
||||||
const float TIME_BEFORE_SLOW_REPEATS = 0.25f;
|
const float TIME_BEFORE_SLOW_REPEATS = 0.25f;
|
||||||
const float TIME_BEFORE_FAST_REPEATS = 1.5f;
|
const float TIME_BEFORE_FAST_REPEATS = 1.5f;
|
||||||
@@ -36,19 +35,21 @@ struct InputEvent : public DeviceInput
|
|||||||
|
|
||||||
typedef vector<InputEvent> InputEventArray;
|
typedef vector<InputEvent> InputEventArray;
|
||||||
|
|
||||||
|
class RageMutex;
|
||||||
class InputFilter
|
class InputFilter
|
||||||
{
|
{
|
||||||
bool m_BeingHeld[NUM_INPUT_DEVICES][NUM_DEVICE_BUTTONS];
|
bool m_BeingHeld[NUM_INPUT_DEVICES][NUM_DEVICE_BUTTONS];
|
||||||
float m_fSecsHeld[NUM_INPUT_DEVICES][NUM_DEVICE_BUTTONS];
|
float m_fSecsHeld[NUM_INPUT_DEVICES][NUM_DEVICE_BUTTONS];
|
||||||
|
|
||||||
InputEventArray queue;
|
InputEventArray queue;
|
||||||
RageMutex queuemutex;
|
RageMutex *queuemutex;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void ButtonPressed( DeviceInput di, bool Down );
|
void ButtonPressed( DeviceInput di, bool Down );
|
||||||
void ResetDevice( InputDevice dev );
|
void ResetDevice( InputDevice dev );
|
||||||
|
|
||||||
InputFilter();
|
InputFilter();
|
||||||
|
~InputFilter();
|
||||||
void Reset();
|
void Reset();
|
||||||
void Update(float fDeltaTime);
|
void Update(float fDeltaTime);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user