AppProfile's can now flag if they should fallback to the default AppProfile if a matching event is not found.

master
Pacman Ghost 7 years ago
parent 3c9b363483
commit 3bfc521af6
  1. 2
      MainApp/AppConfig.cs
  2. 1
      MouseDll/api.hpp
  3. 5
      MouseDll/appProfile.cpp
  4. 2
      MouseDll/appProfile.hpp
  5. 6
      MouseDll/core2.cpp

@ -60,6 +60,7 @@ namespace MouseInterception
public string mApp ;
public int mSensitivityX ;
public int mSensitivityY ;
public bool mFallbackToDefaultAppProfile ;
public int mEventStartIndex ;
public int mEventCount ;
}
@ -170,6 +171,7 @@ namespace MouseInterception
appProfile.mSensitivityX = Utils.getXmlAttr( xn , "x" , 0 ) ;
appProfile.mSensitivityY = Utils.getXmlAttr( xn , "y" , 0 ) ;
}
appProfile.mFallbackToDefaultAppProfile = Utils.getXmlChildVal( appProfileXmlNode , "fallbackToDefaultAppProfile" , false ) ;
appProfile.mEventStartIndex = events.Count ;
appProfile.mEventCount = 0 ;
// parse the events

@ -40,6 +40,7 @@ struct ApiAppProfile
const wchar_t* mpApp ;
int mSensitivityX ;
int mSensitivityY ;
bool mFallbackToDefaultAppProfile ;
int mEventStartIndex ;
int mEventCount ;
} ;

@ -15,6 +15,7 @@ AppProfile::AppProfile(
mApp = toUtf8( pAppProfile->mpApp ) ;
mSensitivityX = pAppProfile->mSensitivityX ;
mSensitivityY = pAppProfile->mSensitivityY ;
mFallbackToDefaultAppProfile = pAppProfile->mFallbackToDefaultAppProfile ;
// initialize the Device
for ( int i=0 ; i < nEvents ; ++i )
@ -100,6 +101,7 @@ AppProfile::sensitivity( Event::eEventType eventType ) const
const string& AppProfile::app() const { return mApp ; }
int AppProfile::sensitivityX() const { return mSensitivityX ; }
int AppProfile::sensitivityY() const { return mSensitivityY ; }
bool AppProfile::fallbackToDefaultAppProfile() const { return mFallbackToDefaultAppProfile ; }
const EventPtrVector& AppProfile::events() const { return mEvents ; }
// ---------------------------------------------------------------------
@ -111,7 +113,8 @@ AppProfile::dumpAppProfile( ostream& os , const char* pPrefix ) const
if ( pPrefix == NULL )
pPrefix = "" ;
os << pPrefix << "AppProfile: \"" << app() << "\"" << endl ;
os << " sensitivity: x=" << sensitivityX() << " ; y=" << sensitivityY() << endl ;
os << pPrefix << " sensitivity: x=" << sensitivityX() << " ; y=" << sensitivityY() << endl ;
os << pPrefix << " fallbackToDefaultAppProfile = " << fallbackToDefaultAppProfile() << endl ;
for ( EventPtrVector::const_iterator it=events().begin() ; it != events().end() ; ++it )
(*it)->dumpEvent( os , MAKE_CSTRING(pPrefix << " ") ) ;
}

@ -25,6 +25,7 @@ public:
int sensitivity( Event::eEventType eventType ) const ;
int sensitivityX() const ;
int sensitivityY() const ;
bool fallbackToDefaultAppProfile() const ;
const EventPtrVector& events() const ;
public:
const Event* findEvent( Event::eEventType eventType , int keyModifiers ) const ;
@ -38,6 +39,7 @@ private:
std::string mApp ;
int mSensitivityX ;
int mSensitivityY ;
bool mFallbackToDefaultAppProfile ;
EventPtrVector mEvents ;
} ;

@ -219,7 +219,7 @@ doRunMainLoop( int* pExitFlag )
LOG_CMSG( "events" , strokeTypeString << ": " << eventType << "/" << magnitude )
// check if this event has been configured
pEvent = pAppProfile->findEvent( eventType , keyModifiers ) ;
if ( pEvent == NULL && pAppProfile != pDefaultAppProfile )
if ( pEvent == NULL && pAppProfile != pDefaultAppProfile && pAppProfile->fallbackToDefaultAppProfile() )
pEvent = pDefaultAppProfile->findEvent( eventType , keyModifiers ) ;
// scale the movement (100 = 1 unit)
pActionInfo = (void*) (100 * magnitude) ;
@ -233,7 +233,7 @@ doRunMainLoop( int* pExitFlag )
// check if this event has been configured
Event::eEventType eventType = (dirn < 0) ? Event::etWheelDown : Event::etWheelUp ;
pEvent = pAppProfile->findEvent( eventType , keyModifiers ) ;
if ( pEvent == NULL && pAppProfile != pDefaultAppProfile )
if ( pEvent == NULL && pAppProfile != pDefaultAppProfile && pAppProfile->fallbackToDefaultAppProfile() )
pEvent = pDefaultAppProfile->findEvent( eventType , keyModifiers ) ;
// scale the movement (100 = 1 unit)
pActionInfo = (void*) (100 * wheelSize / (WHEEL_DELTA/10)) ; // FIXME! scaling s.b. configurable
@ -247,7 +247,7 @@ doRunMainLoop( int* pExitFlag )
// check if this event has been configured
Event::eEventType eventType = (dirn < 0) ? Event::etWheelLeft : Event::etWheelRight ;
pEvent = pAppProfile->findEvent( eventType , keyModifiers ) ;
if ( pEvent == NULL && pAppProfile != pDefaultAppProfile )
if ( pEvent == NULL && pAppProfile != pDefaultAppProfile && pAppProfile->fallbackToDefaultAppProfile() )
pEvent = pDefaultAppProfile->findEvent( eventType , keyModifiers ) ;
// scale the movement (100 = 1 unit)
pActionInfo = (void*) (100 * wheelSize / (WHEEL_DELTA/10)) ; // FIXME! scaling s.b. configurable

Loading…
Cancel
Save