diff options
| author | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
|---|---|---|
| committer | Brad Linden <brad@lindenlab.com> | 2024-05-23 11:31:19 -0700 | 
| commit | a1f49564d670a2c41bfa25c833bba2564b9b7f48 (patch) | |
| tree | 1d205e51bc37621916a17d459ad83782fe41f975 /indra/newview/llviewerjoystick.h | |
| parent | 6af5db09faf5ea33a2d4c47b64e76f42edae178a (diff) | |
| parent | 6377610f6587989c126b00f490dfc8d527a1c2ce (diff) | |
Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into brad/merge-maint-a-to-dev
Diffstat (limited to 'indra/newview/llviewerjoystick.h')
| -rw-r--r-- | indra/newview/llviewerjoystick.h | 132 | 
1 files changed, 70 insertions, 62 deletions
diff --git a/indra/newview/llviewerjoystick.h b/indra/newview/llviewerjoystick.h index 3b4f898710..b459987c68 100644 --- a/indra/newview/llviewerjoystick.h +++ b/indra/newview/llviewerjoystick.h @@ -1,25 +1,25 @@ -/**  +/**   * @file llviewerjoystick.h   * @brief Viewer joystick / NDOF device functionality.   *   * $LicenseInfo:firstyear=2001&license=viewerlgpl$   * Second Life Viewer Source Code   * Copyright (C) 2010, Linden Research, Inc. - *  + *   * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public   * License as published by the Free Software Foundation;   * version 2.1 of the License only. - *  + *   * This library is distributed in the hope that it will be useful,   * but WITHOUT ANY WARRANTY; without even the implied warranty of   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   * Lesser General Public License for more details. - *  + *   * You should have received a copy of the GNU Lesser General Public   * License along with this library; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA - *  + *   * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA   * $/LicenseInfo$   */ @@ -30,83 +30,91 @@  #include "stdtypes.h"  #if LIB_NDOF +#if LL_DARWIN +#define TARGET_OS_MAC 1 +#endif  #include "ndofdev_external.h"  #else -#define NDOF_Device	void +#define NDOF_Device void  #define NDOF_HotPlugResult S32  #endif  typedef enum e_joystick_driver_state  { -	JDS_UNINITIALIZED, -	JDS_INITIALIZED, -	JDS_INITIALIZING +    JDS_UNINITIALIZED, +    JDS_INITIALIZED, +    JDS_INITIALIZING  } EJoystickDriverState;  class LLViewerJoystick : public LLSingleton<LLViewerJoystick>  { -	LLSINGLETON(LLViewerJoystick); -	virtual ~LLViewerJoystick(); +    LLSINGLETON(LLViewerJoystick); +    virtual ~LLViewerJoystick();      LOG_CLASS(LLViewerJoystick);  public: -	void init(bool autoenable); -	void initDevice(LLSD &guid); -	void initDevice(void * preffered_device /*LPDIRECTINPUTDEVICE8*/); -	void initDevice(void * preffered_device /*LPDIRECTINPUTDEVICE8*/, std::string &name, LLSD &guid); -	void terminate(); +    void init(bool autoenable); +    void initDevice(LLSD &guid); +    bool initDevice(void * preffered_device /*LPDIRECTINPUTDEVICE8*/); +    bool initDevice(void * preffered_device /*LPDIRECTINPUTDEVICE8*/, std::string &name, LLSD &guid); +    void terminate(); -	void updateStatus(); -	void scanJoystick(); -	void moveObjects(bool reset = false); -	void moveAvatar(bool reset = false); -	void moveFlycam(bool reset = false); -	F32 getJoystickAxis(U32 axis) const; -	U32 getJoystickButton(U32 button) const; -	bool isJoystickInitialized() const {return (mDriverState==JDS_INITIALIZED);} -	bool isLikeSpaceNavigator() const; -	void setNeedsReset(bool reset = true) { mResetFlag = reset; } -	void setCameraNeedsUpdate(bool b)     { mCameraUpdated = b; } -	bool getCameraNeedsUpdate() const     { return mCameraUpdated; } -	bool getOverrideCamera() { return mOverrideCamera; } -	void setOverrideCamera(bool val); -	bool toggleFlycam(); -	void setSNDefaults(); -	bool isDeviceUUIDSet(); -	LLSD getDeviceUUID(); //unconverted, OS dependent value wrapped into LLSD, for comparison/search -	std::string getDeviceUUIDString(); // converted readable value for settings -	std::string getDescription(); +    void updateStatus(); +    void scanJoystick(); +    void moveObjects(bool reset = false); +    void moveAvatar(bool reset = false); +    void moveFlycam(bool reset = false); +    F32 getJoystickAxis(U32 axis) const; +    U32 getJoystickButton(U32 button) const; +    bool isJoystickInitialized() const {return (mDriverState==JDS_INITIALIZED);} +    bool isLikeSpaceNavigator() const; +    void setNeedsReset(bool reset = true) { mResetFlag = reset; } +    void setCameraNeedsUpdate(bool b)     { mCameraUpdated = b; } +    bool getCameraNeedsUpdate() const     { return mCameraUpdated; } +    bool getOverrideCamera() { return mOverrideCamera; } +    void setOverrideCamera(bool val); +    bool toggleFlycam(); +    void setSNDefaults(); +    bool isDeviceUUIDSet(); +    LLSD getDeviceUUID(); //unconverted, OS dependent value wrapped into LLSD, for comparison/search +    std::string getDeviceUUIDString(); // converted readable value for settings +    std::string getDescription(); +    void saveDeviceIdToSettings();  protected: -	void updateEnabled(bool autoenable); -	void handleRun(F32 inc); -	void agentSlide(F32 inc); -	void agentPush(F32 inc); -	void agentFly(F32 inc); -	void agentPitch(F32 pitch_inc); -	void agentYaw(F32 yaw_inc); -	void agentJump(); -	void resetDeltas(S32 axis[]); -	void loadDeviceIdFromSettings(); +    void updateEnabled(bool autoenable); +    void handleRun(F32 inc); +    void agentSlide(F32 inc); +    void agentPush(F32 inc); +    void agentFly(F32 inc); +    void agentPitch(F32 pitch_inc); +    void agentYaw(F32 yaw_inc); +    void agentJump(); +    void resetDeltas(S32 axis[]); +    void loadDeviceIdFromSettings();  #if LIB_NDOF -	static NDOF_HotPlugResult HotPlugAddCallback(NDOF_Device *dev); -	static void HotPlugRemovalCallback(NDOF_Device *dev); +    static NDOF_HotPlugResult HotPlugAddCallback(NDOF_Device *dev); +    static void HotPlugRemovalCallback(NDOF_Device *dev);  #endif -	 +  private: -	F32						mAxes[6]; -	long					mBtn[16]; -	EJoystickDriverState	mDriverState; -	NDOF_Device				*mNdofDev; -	bool					mResetFlag; -	F32						mPerfScale; -	bool					mCameraUpdated; -	bool 					mOverrideCamera; -	U32						mJoystickRun; -	LLSD					mLastDeviceUUID; // _GUID as U8 binary map, integer 1 for no device/ndof's device -	 -	static F32				sLastDelta[7]; -	static F32				sDelta[7]; +    F32                     mAxes[6]; +    long                    mBtn[16]; +    EJoystickDriverState    mDriverState; +    NDOF_Device             *mNdofDev; +    bool                    mResetFlag; +    F32                     mPerfScale; +    bool                    mCameraUpdated; +    bool                    mOverrideCamera; +    U32                     mJoystickRun; + +    // Windows: _GUID as U8 binary map +    // MacOS: long as an U8 binary map +    // Else: integer 1 for no device/ndof's default device +    LLSD                    mLastDeviceUUID; + +    static F32              sLastDelta[7]; +    static F32              sDelta[7];  };  #endif  | 
