initial
This commit is contained in:
72
game/client/sixense/in_sixense_gesture_bindings.h
Normal file
72
game/client/sixense/in_sixense_gesture_bindings.h
Normal file
@@ -0,0 +1,72 @@
|
||||
#ifndef IN_SIXENSE_GESTURES_H
|
||||
#define IN_SIXENSE_GESTURES_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <sixense_utils/interfaces.hpp>
|
||||
|
||||
class SixenseGestureBindings {
|
||||
public:
|
||||
SixenseGestureBindings();
|
||||
|
||||
// Add a new binding. release_command can be empty. If press_command starts with '+', a release_command is generated with '-'.
|
||||
void AddBinding( CUtlString hand, CUtlString action, CUtlString arg, CUtlString press_command, CUtlString release_command );
|
||||
|
||||
// Print bindings to console
|
||||
void ListBindings();
|
||||
|
||||
// Write the bindings to a cfg file that can be loaded from the console or at startup (defaults to sixense_bindings.cfg)
|
||||
void WriteBindings( CUtlString filename );
|
||||
|
||||
// Clear all bindings
|
||||
void ClearBindings();
|
||||
|
||||
// Delete the nth binding
|
||||
void DeleteBinding( int n );
|
||||
|
||||
// Create a set of default bindings appropriate for this game
|
||||
void CreateDefaultBindings();
|
||||
|
||||
// Check to see if any bindings need to be triggered. disable_activations allows the caller to prevent new bindings from being triggered, while
|
||||
// still allowing enabled gestures to disable.
|
||||
void UpdateBindings( sixenseUtils::IButtonStates *pLeftButtonStates, sixenseUtils::IButtonStates *pRightButtonStates, bool bIsMenuVisible );
|
||||
|
||||
// How many bindings are there?
|
||||
int GetNumBindings();
|
||||
|
||||
// Allow per-game authorization of commmands when the menu is up
|
||||
bool AllowMenuCommand( char * );
|
||||
|
||||
// Allow per-game authorization of commmands in general
|
||||
bool AllowCommand( char * );
|
||||
|
||||
protected:
|
||||
typedef struct {
|
||||
int m_Action;
|
||||
int m_iHand; // 0=left, 1=right
|
||||
int m_iArgument;
|
||||
char *m_pActivateCommand;
|
||||
char *m_pDeactivateCommand;
|
||||
bool m_bAutoMirrored;
|
||||
} GestureBinding;
|
||||
|
||||
// some helpers for converting input strings
|
||||
bool HandFromString( CUtlString hand_str, int *hand );
|
||||
bool ActionFromString( CUtlString action_str, sixenseUtils::IButtonStates::ActionType *action );
|
||||
bool ButtonMaskFromString( CUtlString button, unsigned short *button_token );
|
||||
bool DirectionFromString( CUtlString dir_str, sixenseUtils::IButtonStates::Direction *dir );
|
||||
bool ActionTokenToStr( sixenseUtils::IButtonStates::ActionType action, char *buf, int buflen );
|
||||
bool DirectionTokenToStr( int arg, char *buf, int buflen );
|
||||
bool ButtonTokenToStr( int arg, char *buf, int buflen );
|
||||
bool HandTokenToStr( int hand, char *buf, int buflen );
|
||||
|
||||
// Help deallocate a binding
|
||||
void FreeStrings( GestureBinding binding );
|
||||
|
||||
private:
|
||||
CUtlLinkedList<GestureBinding> m_GestureBindingList;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user