diff --git a/README.md b/README.md index aaece65..2f9b0fa 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,3 @@ Target of sunshine mod - improve original game. # TODOs TODOs moved to github Issues - -# Misc -* src/termcolor/termcolor.hpp original author is Ihor Kalnytskyi, termcolor distributed under BSD license. diff --git a/include/third_party/chromasdk/ChromaApi.h b/include/third_party/chromasdk/ChromaApi.h deleted file mode 100644 index 7aacf25..0000000 --- a/include/third_party/chromasdk/ChromaApi.h +++ /dev/null @@ -1,175 +0,0 @@ - -typedef int (*PluginInit)(); -typedef double (*PluginInitD)(); - -typedef bool (*PluginIsPlatformSupported)(); -typedef double (*PluginIsPlatformSupportedD)(); - -typedef bool (*PluginIsInitialized)(); -typedef double (*PluginIsInitializedD)(); - -typedef bool (*PluginIsDialogOpen)(); -typedef double (*PluginIsDialogOpenD)(); - -typedef int (*PluginOpenEditorDialog)(const char* path); -typedef double (*PluginOpenEditorDialogD)(const char* path); - -typedef int (*PluginOpenEditorDialogAndPlay)(const char* path); -typedef double (*PluginOpenEditorDialogAndPlayD)(const char* path); - -typedef int (*PluginOpenAnimation)(const char* path); -typedef double (*PluginOpenAnimationD)(const char* path); - -typedef int (*PluginLoadAnimation)(int animationId); -typedef double (*PluginLoadAnimationD)(double animationId); - -typedef int (*PluginUnloadAnimation)(int animationId); -typedef double (*PluginUnloadAnimationD)(double animationId); - -typedef int (*PluginPlayAnimation)(int animationId); -typedef double (*PluginPlayAnimationD)(double animationId); - -typedef bool (*PluginIsPlaying)(int animationId); -typedef double (*PluginIsPlayingD)(double animationId); - -typedef int (*PluginStopAnimation)(int animationId); -typedef double (*PluginStopAnimationD)(double animationId); - -typedef int (*PluginCloseAnimation)(int animationId); -typedef double (*PluginCloseAnimationD)(double animationId); - -typedef int (*PluginUninit)(); -typedef double (*PluginUninitD)(); - -typedef int (*PluginCreateAnimationInMemory)(int deviceType, int device); -typedef int (*PluginCreateAnimation)(const char* path, int deviceType, int device); -typedef int (*PluginSaveAnimation)(int animationId, const char* path); -typedef int (*PluginResetAnimation)(int animationId); - -typedef int (*PluginGetDeviceType)(int animationId); -typedef int (*PluginGetDeviceTypeName)(const char* path); -typedef double (*PluginGetDeviceTypeNameD)(const char* path); - -typedef int (*PluginGetDevice)(int animationId); -typedef int (*PluginGetDeviceName)(const char* path); -typedef double (*PluginGetDeviceNameD)(const char* path); - -typedef int (*PluginSetDevice)(int animationId, int deviceType, int device); - -typedef int (*PluginGetMaxLeds)(int device); -typedef double (*PluginGetMaxLedsD)(double device); - -typedef int (*PluginGetMaxRow)(int device); -typedef double (*PluginGetMaxRowD)(double device); - -typedef int (*PluginGetMaxColumn)(int device); -typedef double (*PluginGetMaxColumnD)(double device); - -typedef int (*PluginAddFrame)(int animationId, float duration, int* colors, int length); -typedef int (*PluginUpdateFrame)(int animationId, int frameIndex, float duration, int* colors, int length); -typedef int (*PluginGetFrame)(int animationId, int frameIndex, float* duration, int* colors, int length); - -typedef int (*PluginPreviewFrame)(int animationId, int frameIndex); -typedef double (*PluginPreviewFrameD)(double animationId, double frameIndex); - -typedef int (*PluginOverrideFrameDuration)(int animationId, float duration); -typedef double (*PluginOverrideFrameDurationD)(double animationId, double duration); - -typedef int (*PluginReverse)(int animationId); -typedef int (*PluginMirrorHorizontally)(int animationId); -typedef int (*PluginMirrorVertically)(int animationId); - -typedef int (*PluginGetAnimation)(const char* name); -typedef double (*PluginGetAnimationD)(const char* name); - -typedef void (*PluginCloseAnimationName)(const char* path); -typedef double (*PluginCloseAnimationNameD)(const char* path); - -typedef void (*PluginPlayAnimationLoop)(int animationId, bool loop); -typedef void (*PluginPlayAnimationName)(const char* path, bool loop); -typedef double (*PluginPlayAnimationNameD)(const char* path, double loop); - -typedef void (*PluginPlayAnimationFrame)(int animationId, int frameId, bool loop); -typedef void (*PluginPlayAnimationFrameName)(const char* path, int frameId, bool loop); -typedef double (*PluginPlayAnimationFrameNameD)(const char* path, double frameId, double loop); - -typedef void (*PluginStopAnimationName)(const char* path); -typedef double (*PluginStopAnimationNameD)(const char* path); - -typedef void (*PluginStopAnimationType)(int deviceType, int device); -typedef double (*PluginStopAnimationTypeD)(double deviceType, double device); - -typedef bool (*PluginIsPlayingName)(const char* path); -typedef double (*PluginIsPlayingNameD)(const char* path); - -typedef bool (*PluginIsPlayingType)(int deviceType, int device); -typedef double (*PluginIsPlayingTypeD)(double deviceType, double device); - -typedef void (*PluginPlayComposite)(const char* name, bool loop); -typedef double (*PluginPlayCompositeD)(const char* name, double loop); - -typedef void (*PluginStopComposite)(const char* name); -typedef double (*PluginStopCompositeD)(const char* name); - -typedef void (*PluginCloseComposite)(const char* name); -typedef double (*PluginCloseCompositeD)(const char* name); - -typedef int (*PluginGetKeyColor)(int animationId, int frameId, int rzkey); -typedef int (*PluginGetKeyColorName)(const char* path, int frameId, int rzkey); -typedef double (*PluginGetKeyColorD)(const char* path, double frameId, double rzkey); - -typedef int (*PluginGet1DColor)(int animationId, int frameId, int led); -typedef int (*PluginGet1DColorName)(const char* path, int frameId, int led); -typedef double (*PluginGet1DColorNameD)(const char* path, double frameId, double led); - -typedef int (*PluginGet2DColor)(int animationId, int frameId, int row, int column); -typedef int (*PluginGet2DColorName)(const char* path, int frameId, int row, int column); -typedef double (*PluginGet2DColorNameD)(const char* path, double frameId, double row, double column); - -typedef void (*PluginSetKeyColor)(int animationId, int frameId, int rzkey, int color); -typedef void (*PluginSetKeyColorName)(const char* path, int frameId, int rzkey, int color); -typedef double (*PluginSetKeyColorNameD)(const char* path, double frameId, double rzkey, double color); - -typedef void (*PluginSet1DColor)(int animationId, int frameId, int led, int color); -typedef void (*PluginSet1DColorName)(const char* path, int frameId, int led, int color); -typedef double (*PluginSet1DColorNameD)(const char* path, double frameId, double led, double color); - -typedef void (*PluginSet2DColor)(int animationId, int frameId, int row, int column, int color); -typedef void (*PluginSet2DColorName)(const char* path, int frameId, int row, int column, int color); -typedef double (*PluginSet2DColorNameD)(const char* path, double frameId, double rowColumnIndex, double color); - -typedef void (*PluginCopyKeyColor)(int sourceAnimationId, int targetAnimationId, int frameId, int rzkey); -typedef void (*PluginCopyKeyColorName)(const char* sourceAnimation, const char* targetAnimation, int frameId, int rzkey); -typedef double (*PluginCopyKeyColorNameD)(const char* sourceAnimation, const char* targetAnimation, double frameId, double rzkey); - -typedef void (*PluginCopyNonZeroKeyColor)(int sourceAnimationId, int targetAnimationId, int frameId, int rzkey); -typedef void (*PluginCopyNonZeroKeyColorName)(const char* sourceAnimation, const char* targetAnimation, int frameId, int rzkey); -typedef double (*PluginCopyNonZeroKeyColorNameD)(const char* sourceAnimation, const char* targetAnimation, double frameId, double rzkey); - -typedef int (*PluginGetFrameCount)(int animationId); -typedef int (*PluginGetFrameCountName)(const char* path); -typedef double (*PluginGetFrameCountNameD)(const char* path); - -typedef int (*PluginGetCurrentFrame)(int animationId); -typedef int (*PluginGetCurrentFrameName)(const char* path); -typedef double (*PluginGetCurrentFrameNameD)(const char* path); - -typedef void (*PluginSetCurrentFrame)(int animationId, int frameId); -typedef void (*PluginSetCurrentFrameName)(const char* path, int frameId); -typedef double (*PluginSetCurrentFrameNameD)(const char* path, double frameId); - -typedef void (*PluginPauseAnimation)(int animationId); -typedef void (*PluginPauseAnimationName)(const char* path); -typedef double (*PluginPauseAnimationNameD)(const char* path); - -typedef bool (*PluginIsAnimationPaused)(int animationId); -typedef bool (*PluginIsAnimationPausedName)(const char* path); -typedef double (*PluginIsAnimationPausedNameD)(const char* path); - -typedef bool (*PluginHasAnimationLoop)(int animationId); -typedef bool (*PluginHasAnimationLoopName)(const char* path); -typedef double (*PluginHasAnimationLoopNameD)(const char* path); - -typedef void (*PluginResumeAnimation)(int animationId, bool loop); -typedef void (*PluginResumeAnimationName)(const char* path, bool loop); -typedef double (*PluginResumeAnimationNameD)(const char* path, double loop); diff --git a/include/third_party/chromasdk/RzChromaSDKDefines.h b/include/third_party/chromasdk/RzChromaSDKDefines.h deleted file mode 100644 index 5a20732..0000000 --- a/include/third_party/chromasdk/RzChromaSDKDefines.h +++ /dev/null @@ -1,170 +0,0 @@ -//! \file RzChromaSDKDefines.h -//! \brief Definitions of global and static variables. - -#ifndef _RZSCHROMADKDEFINES_H_ -#define _RZSCHROMADKDEFINES_H_ - -#pragma once - -#ifndef GUID_DEFINED -#include -#endif - -namespace ChromaSDK{ - // Keyboards - //! Razer Blackwidow Chroma device. - // {2EA1BB63-CA28-428D-9F06-196B88330BBB} - static const GUID BLACKWIDOW_CHROMA = - { 0x2ea1bb63, 0xca28, 0x428d, { 0x9f, 0x06, 0x19, 0x6b, 0x88, 0x33, 0x0b, 0xbb } }; - - //! Razer Blackwidow Chroma Tournament Edition device. - // {ED1C1B82-BFBE-418F-B49D-D03F05B149DF} - static const GUID BLACKWIDOW_CHROMA_TE = - { 0xed1c1b82, 0xbfbe, 0x418f, { 0xb4, 0x9d, 0xd0, 0x3f, 0x5, 0xb1, 0x49, 0xdf } }; - - //! Razer Deathstalker device. - // {18C5AD9B-4326-4828-92C4-2669A66D2283} - static const GUID DEATHSTALKER_CHROMA = - { 0x18c5ad9b, 0x4326, 0x4828, { 0x92, 0xc4, 0x26, 0x69, 0xa6, 0x6d, 0x22, 0x83 } }; - - //! Overwatch Keyboard. - // {872AB2A9-7959-4478-9FED-15F6186E72E4} - static const GUID OVERWATCH_KEYBOARD = - { 0x872ab2a9, 0x7959, 0x4478, { 0x9f, 0xed, 0x15, 0xf6, 0x18, 0x6e, 0x72, 0xe4 } }; - - //! Razer Blackwidow X Chroma device. - // {5AF60076-ADE9-43D4-B574-52599293B554} - static const GUID BLACKWIDOW_X_CHROMA = - { 0x5af60076, 0xade9, 0x43d4, { 0xb5, 0x74, 0x52, 0x59, 0x92, 0x93, 0xb5, 0x54 } }; - - //! Razer Blackwidow X TE Chroma device. - // {2D84DD51-3290-4AAC-9A89-D8AFDE38B57C} - static const GUID BLACKWIDOW_X_TE_CHROMA = - { 0x2d84dd51, 0x3290, 0x4aac, { 0x9a, 0x89, 0xd8, 0xaf, 0xde, 0x38, 0xb5, 0x7c } }; - - //! Razer Omata Chroma - // {803378C1-CC48-4970-8539-D828CC1D420A} - static const GUID OMATA_CHROMA = - { 0x803378c1, 0xcc48, 0x4970,{ 0x85, 0x39, 0xd8, 0x28, 0xcc, 0x1d, 0x42, 0xa } }; - - //! Razer Blade Stealth. - // {C83BDFE8-E7FC-40E0-99DB-872E23F19891} - static const GUID BLADE_STEALTH = - { 0xc83bdfe8, 0xe7fc, 0x40e0, { 0x99, 0xdb, 0x87, 0x2e, 0x23, 0xf1, 0x98, 0x91 } }; - - //! Razer Blade - // {F2BEDFAF-A0FE-4651-9D41-B6CE603A3DDD} - static const GUID BLADE = - { 0xf2bedfaf, 0xa0fe, 0x4651, { 0x9d, 0x41, 0xb6, 0xce, 0x60, 0x3a, 0x3d, 0xdd } }; - - //! Razer Blade Pro - // {A73AC338-F0E5-4BF7-91AE-DD1F7E1737A5} - static const GUID BLADE_PRO = - { 0xa73ac338, 0xf0e5, 0x4bf7,{ 0x91, 0xae, 0xdd, 0x1f, 0x7e, 0x17, 0x37, 0xa5 } }; - - //! Razer Blackwidow Chroma v2 - // {608E743F-B402-44BD-A7A6-7AA9F574ECF4} - static const GUID BLACKWIDOW_CHROMA2 = - { 0x608e743f, 0xb402, 0x44bd,{ 0xa7, 0xa6, 0x7a, 0xa9, 0xf5, 0x74, 0xec, 0xf4 } }; - - - - // Mice - //! Razer Deathadder Chroma device. - // {AEC50D91-B1F1-452F-8E16-7B73F376FDF3} - static const GUID DEATHADDER_CHROMA = - { 0xaec50d91, 0xb1f1, 0x452f, { 0x8e, 0x16, 0x7b, 0x73, 0xf3, 0x76, 0xfd, 0xf3 } }; - - //! Razer Mamba Chroma Tournament Edition device. - // {7EC00450-E0EE-4289-89D5-0D879C19061A} - static const GUID MAMBA_CHROMA_TE = - { 0x7ec00450, 0xe0ee, 0x4289, { 0x89, 0xd5, 0xd, 0x87, 0x9c, 0x19, 0x6, 0x1a } }; - - //! Razer Diamondback device. - // {FF8A5929-4512-4257-8D59-C647BF9935D0} - static const GUID DIAMONDBACK_CHROMA = - { 0xff8a5929, 0x4512, 0x4257, { 0x8d, 0x59, 0xc6, 0x47, 0xbf, 0x99, 0x35, 0xd0 } }; - - //! Razer Mamba device. - // {D527CBDC-EB0A-483A-9E89-66D50463EC6C} - static const GUID MAMBA_CHROMA = - { 0xd527cbdc, 0xeb0a, 0x483a, { 0x9e, 0x89, 0x66, 0xd5, 0x4, 0x63, 0xec, 0x6c } }; - - //! Razer Naga Epic device. - // {D714C50B-7158-4368-B99C-601ACB985E98} - static const GUID NAGA_EPIC_CHROMA = - { 0xd714c50b, 0x7158, 0x4368, { 0xb9, 0x9c, 0x60, 0x1a, 0xcb, 0x98, 0x5e, 0x98 } }; - - //! Razer Naga device. - // {F1876328-6CA4-46AE-BE04-BE812B414433} - static const GUID NAGA_CHROMA = - { 0xf1876328, 0x6ca4, 0x46ae, { 0xbe, 0x4, 0xbe, 0x81, 0x2b, 0x41, 0x44, 0x33 } }; - - //! Razer Orochi Chroma device. - // {52C15681-4ECE-4DD9-8A52-A1418459EB34} - static const GUID OROCHI_CHROMA = - { 0x52c15681, 0x4ece, 0x4dd9, { 0x8a, 0x52, 0xa1, 0x41, 0x84, 0x59, 0xeb, 0x34 } }; - - //! Razer Naga Hex Chroma device. - // {195D70F5-F285-4CFF-99F2-B8C0E9658DB4} - static const GUID NAGA_HEX_CHROMA = - { 0x195d70f5, 0xf285, 0x4cff, { 0x99, 0xf2, 0xb8, 0xc0, 0xe9, 0x65, 0x8d, 0xb4 } }; - - //! Razer DeathAdder Elite Chroma device. - // {77834867-3237-4A9F-AD77-4A46C4183003} - static const GUID DEATHADDER_ELITE_CHROMA = - { 0x77834867, 0x3237, 0x4a9f,{ 0xad, 0x77, 0x4a, 0x46, 0xc4, 0x18, 0x30, 0x3 } }; - - - // Headsets - //! Razer Kraken 7.1 Chroma device. - // {CD1E09A5-D5E6-4A6C-A93B-E6D9BF1D2092} - static const GUID KRAKEN71_CHROMA = - { 0xcd1e09a5, 0xd5e6, 0x4a6c, { 0xa9, 0x3b, 0xe6, 0xd9, 0xbf, 0x1d, 0x20, 0x92 } }; - - //! Razer ManO'War device. - // {DF3164D7-5408-4A0E-8A7F-A7412F26BEBF} - static const GUID MANOWAR_CHROMA = - { 0xdf3164d7, 0x5408, 0x4a0e, { 0x8a, 0x7f, 0xa7, 0x41, 0x2f, 0x26, 0xbe, 0xbf } }; - - //! Razer Kraken 7.1 Chroma Refresh headset. - // {7FB8A36E-9E74-4BB3-8C86-CAC7F7891EBD} - static const GUID KRAKEN71_REFRESH_CHROMA = - { 0x7fb8a36e, 0x9e74, 0x4bb3,{ 0x8c, 0x86, 0xca, 0xc7, 0xf7, 0x89, 0x1e, 0xbd } }; - - - // Mouse mat - //! Razer Firefly device. - // {80F95A94-73D2-48CA-AE9A-0986789A9AF2} - static const GUID FIREFLY_CHROMA = - { 0x80f95a94, 0x73d2, 0x48ca, { 0xae, 0x9a, 0x9, 0x86, 0x78, 0x9a, 0x9a, 0xf2 } }; - - - // Keypads - //! Razer Tartarus device. - // {00F0545C-E180-4AD1-8E8A-419061CE505E} - static const GUID TARTARUS_CHROMA = - { 0xf0545c, 0xe180, 0x4ad1, { 0x8e, 0x8a, 0x41, 0x90, 0x61, 0xce, 0x50, 0x5e } }; - - //! Razer Orbweaver device. - // {9D24B0AB-0162-466C-9640-7A924AA4D9FD} - static const GUID ORBWEAVER_CHROMA = - { 0x9d24b0ab, 0x162, 0x466c, { 0x96, 0x40, 0x7a, 0x92, 0x4a, 0xa4, 0xd9, 0xfd } }; - - - // Chroma Linked devices - // {35F6F18D-1AE5-436C-A575-AB44A127903A} - static const GUID LENOVO_Y900 = - { 0x35f6f18d, 0x1ae5, 0x436c, { 0xa5, 0x75, 0xab, 0x44, 0xa1, 0x27, 0x90, 0x3a } }; - - // {47DB1FA7-6B9B-4EE6-B6F4-4071A3B2053B} - static const GUID LENOVO_Y27 = - { 0x47db1fa7, 0x6b9b, 0x4ee6, { 0xb6, 0xf4, 0x40, 0x71, 0xa3, 0xb2, 0x5, 0x3b } }; - - // {0201203B-62F3-4C50-83DD-598BABD208E0} - static const GUID CORE_CHROMA = - { 0x201203b, 0x62f3, 0x4c50, { 0x83, 0xdd, 0x59, 0x8b, 0xab, 0xd2, 0x8, 0xe0 } }; - -} - -#endif diff --git a/include/third_party/chromasdk/RzChromaSDKTypes.h b/include/third_party/chromasdk/RzChromaSDKTypes.h deleted file mode 100644 index 1103684..0000000 --- a/include/third_party/chromasdk/RzChromaSDKTypes.h +++ /dev/null @@ -1,795 +0,0 @@ -//! \file RzChromaSDKTypes.h -//! \brief Data types. - -#ifndef _RZCHROMASDKTYPES_H_ -#define _RZCHROMASDKTYPES_H_ - -#pragma once - -typedef LONG RZRESULT; //!< Return result. -typedef GUID RZEFFECTID; //!< Effect Id. -typedef GUID RZDEVICEID; //!< Device Id. -typedef unsigned int RZDURATION; //!< Milliseconds. -typedef size_t RZSIZE; //!< Size. -typedef void* PRZPARAM; //!< Context sensitive pointer. -typedef DWORD RZID; //!< Generic data type for Identifier. -typedef DWORD RZCOLOR; //!< Color data. 1st byte = Red; 2nd byte = Green; 3rd byte = Blue; 4th byte = Alpha (if applicable) - -namespace ChromaSDK{ - //! Event notification Window message - const UINT WM_CHROMA_EVENT = WM_APP+0x2000; - - //! Chroma generic effects. Note: Not all devices supported the listed effects. - typedef enum EFFECT_TYPE{ - CHROMA_NONE = 0, //!< No effect. - CHROMA_WAVE, //!< Wave effect (This effect type has deprecated and should not be used). - CHROMA_SPECTRUMCYCLING, //!< Spectrum cycling effect (This effect type has deprecated and should not be used). - CHROMA_BREATHING, //!< Breathing effect (This effect type has deprecated and should not be used). - CHROMA_BLINKING, //!< Blinking effect (This effect type has deprecated and should not be used). - CHROMA_REACTIVE, //!< Reactive effect (This effect type has deprecated and should not be used). - CHROMA_STATIC, //!< Static effect. - CHROMA_CUSTOM, //!< Custom effect. For mice, please see Mouse::CHROMA_CUSTOM2. - CHROMA_RESERVED, //!< Reserved - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - //! Device info. - typedef struct DEVICE_INFO_TYPE{ - //! Device types. - enum DeviceType{ - DEVICE_KEYBOARD = 1, //!< Keyboard device. - DEVICE_MOUSE = 2, //!< Mouse device. - DEVICE_HEADSET = 3, //!< Headset device. - DEVICE_MOUSEPAD = 4, //!< Mousepad device. - DEVICE_KEYPAD = 5, //!< Keypad device. - DEVICE_SYSTEM = 6, //!< System device. - DEVICE_INVALID //!< Invalid device. - } DeviceType; - - DWORD Connected; //!< Number of devices connected. - } DEVICE_INFO_TYPE; - - const RZSIZE MAX_ROW = 30; //!< Maximum rows for custom effects. - const RZSIZE MAX_COLUMN = 30; //!< Maximum columns for custom effects. - - //! Blinking effect (This effect type has deprecated and should not be used). - typedef struct BLINKING_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(BLINKING_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - COLORREF Color; //!< Blinking color - } BLINKING_EFFECT_TYPE; - - //! Breathing effect (This effect type has deprecated and should not be used). - typedef struct BREATHING_EFFECT_TYPE{ - RZSIZE Size; //!< Size of ths structure. Size = sizeof(BREATHING_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - //! Breathing effect types. - enum _Type{ - ONE_COLOR = 1, //!< 1 color (Only fill Color1). - TWO_COLORS, //!< 2 colors. - RANDOM_COLORS //!< Random colors - } Type; - - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - } BREATHING_EFFECT_TYPE; - - //! Custom effect (This effect type has deprecated and should not be used). - typedef struct CUSTOM_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(CUSTOM_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - RZCOLOR Color[MAX_ROW][MAX_COLUMN]; - } CUSTOM_EFFECT_TYPE; - - //! No effect. - typedef struct NO_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(NO_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - } NO_EFFECT_TYPE; - - //! Reactive effect (This effect type has deprecated and should not be used). - typedef struct REACTIVE_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(REACTIVE_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - //! Duration of the effect. - enum _Duration{ - DURATION_SHORT = 1, //!< Short duration. - DURATION_MEDIUM, //!< Medium duration. - DURATION_LONG //!< Long duration. - } Duration; //!< The time taken for the effect to fade away. - - COLORREF Color; //!< Color of the effect. - } REACTIVE_EFFECT_TYPE; - - //! Spectrum cycling effect (This effect type has deprecated and should not be used). - typedef struct SPECTRUMCYCLING_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(SPECTRUMCYCLING_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - } SPECTRUMCYCLING_EFFECT_TYPE; - - //! Starlight effect (This effect type has deprecated and should not be used). - typedef struct STARLIGHT_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(SPECTRUMCYCLING_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - //! Starlight effect types. - enum _Type{ - TWO_COLORS = 1, //!< 2 colors. - RANDOM_COLORS //!< Random colors - } Type; - - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - - //! Duration of the effect. - enum _Duration{ - DURATION_SHORT = 1, //!< Short duration. - DURATION_MEDIUM, //!< Medium duration. - DURATION_LONG //!< Long duration. - } Duration; //!< The time taken for the effect to fade away. - - } STARLIGHT_EFFECT_TYPE; - - //! Static effect (This effect type has deprecated and should not be used). - typedef struct STATIC_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(STATIC_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - COLORREF Color; //!< Color of the effect. - } STATIC_EFFECT_TYPE; - - //! Wave effect (This effect type has deprecated and should not be used). - typedef struct WAVE_EFFECT_TYPE{ - RZSIZE Size; //!< Size of the structure. Size = sizeof(WAVE_EFFECT_TYPE) - DWORD Param; //!< Extra parameters. - - //! Direction of effect. - enum _Direction - { - DIRECTION_LEFT_TO_RIGHT = 1, //!< Left to right. - DIRECTION_RIGHT_TO_LEFT, //!< Right to left. - DIRECTION_FRONT_TO_BACK, //!< Front to back - DIRECTION_BACK_TO_FRONT //!< Back top front - } Direction; - } WAVE_EFFECT_TYPE; - - //! Keyboards - namespace Keyboard{ - //! Definitions of keys. - typedef enum RZKEY - { - RZKEY_ESC = 0x0001, /*!< Esc (VK_ESCAPE) */ - RZKEY_F1 = 0x0003, /*!< F1 (VK_F1) */ - RZKEY_F2 = 0x0004, /*!< F2 (VK_F2) */ - RZKEY_F3 = 0x0005, /*!< F3 (VK_F3) */ - RZKEY_F4 = 0x0006, /*!< F4 (VK_F4) */ - RZKEY_F5 = 0x0007, /*!< F5 (VK_F5) */ - RZKEY_F6 = 0x0008, /*!< F6 (VK_F6) */ - RZKEY_F7 = 0x0009, /*!< F7 (VK_F7) */ - RZKEY_F8 = 0x000A, /*!< F8 (VK_F8) */ - RZKEY_F9 = 0x000B, /*!< F9 (VK_F9) */ - RZKEY_F10 = 0x000C, /*!< F10 (VK_F10) */ - RZKEY_F11 = 0x000D, /*!< F11 (VK_F11) */ - RZKEY_F12 = 0x000E, /*!< F12 (VK_F12) */ - RZKEY_1 = 0x0102, /*!< 1 (VK_1) */ - RZKEY_2 = 0x0103, /*!< 2 (VK_2) */ - RZKEY_3 = 0x0104, /*!< 3 (VK_3) */ - RZKEY_4 = 0x0105, /*!< 4 (VK_4) */ - RZKEY_5 = 0x0106, /*!< 5 (VK_5) */ - RZKEY_6 = 0x0107, /*!< 6 (VK_6) */ - RZKEY_7 = 0x0108, /*!< 7 (VK_7) */ - RZKEY_8 = 0x0109, /*!< 8 (VK_8) */ - RZKEY_9 = 0x010A, /*!< 9 (VK_9) */ - RZKEY_0 = 0x010B, /*!< 0 (VK_0) */ - RZKEY_A = 0x0302, /*!< A (VK_A) */ - RZKEY_B = 0x0407, /*!< B (VK_B) */ - RZKEY_C = 0x0405, /*!< C (VK_C) */ - RZKEY_D = 0x0304, /*!< D (VK_D) */ - RZKEY_E = 0x0204, /*!< E (VK_E) */ - RZKEY_F = 0x0305, /*!< F (VK_F) */ - RZKEY_G = 0x0306, /*!< G (VK_G) */ - RZKEY_H = 0x0307, /*!< H (VK_H) */ - RZKEY_I = 0x0209, /*!< I (VK_I) */ - RZKEY_J = 0x0308, /*!< J (VK_J) */ - RZKEY_K = 0x0309, /*!< K (VK_K) */ - RZKEY_L = 0x030A, /*!< L (VK_L) */ - RZKEY_M = 0x0409, /*!< M (VK_M) */ - RZKEY_N = 0x0408, /*!< N (VK_N) */ - RZKEY_O = 0x020A, /*!< O (VK_O) */ - RZKEY_P = 0x020B, /*!< P (VK_P) */ - RZKEY_Q = 0x0202, /*!< Q (VK_Q) */ - RZKEY_R = 0x0205, /*!< R (VK_R) */ - RZKEY_S = 0x0303, /*!< S (VK_S) */ - RZKEY_T = 0x0206, /*!< T (VK_T) */ - RZKEY_U = 0x0208, /*!< U (VK_U) */ - RZKEY_V = 0x0406, /*!< V (VK_V) */ - RZKEY_W = 0x0203, /*!< W (VK_W) */ - RZKEY_X = 0x0404, /*!< X (VK_X) */ - RZKEY_Y = 0x0207, /*!< Y (VK_Y) */ - RZKEY_Z = 0x0403, /*!< Z (VK_Z) */ - RZKEY_NUMLOCK = 0x0112, /*!< Numlock (VK_NUMLOCK) */ - RZKEY_NUMPAD0 = 0x0513, /*!< Numpad 0 (VK_NUMPAD0) */ - RZKEY_NUMPAD1 = 0x0412, /*!< Numpad 1 (VK_NUMPAD1) */ - RZKEY_NUMPAD2 = 0x0413, /*!< Numpad 2 (VK_NUMPAD2) */ - RZKEY_NUMPAD3 = 0x0414, /*!< Numpad 3 (VK_NUMPAD3) */ - RZKEY_NUMPAD4 = 0x0312, /*!< Numpad 4 (VK_NUMPAD4) */ - RZKEY_NUMPAD5 = 0x0313, /*!< Numpad 5 (VK_NUMPAD5) */ - RZKEY_NUMPAD6 = 0x0314, /*!< Numpad 6 (VK_NUMPAD6) */ - RZKEY_NUMPAD7 = 0x0212, /*!< Numpad 7 (VK_NUMPAD7) */ - RZKEY_NUMPAD8 = 0x0213, /*!< Numpad 8 (VK_NUMPAD8) */ - RZKEY_NUMPAD9 = 0x0214, /*!< Numpad 9 (VK_ NUMPAD9*/ - RZKEY_NUMPAD_DIVIDE = 0x0113, /*!< Divide (VK_DIVIDE) */ - RZKEY_NUMPAD_MULTIPLY = 0x0114, /*!< Multiply (VK_MULTIPLY) */ - RZKEY_NUMPAD_SUBTRACT = 0x0115, /*!< Subtract (VK_SUBTRACT) */ - RZKEY_NUMPAD_ADD = 0x0215, /*!< Add (VK_ADD) */ - RZKEY_NUMPAD_ENTER = 0x0415, /*!< Enter (VK_RETURN - Extended) */ - RZKEY_NUMPAD_DECIMAL = 0x0514, /*!< Decimal (VK_DECIMAL) */ - RZKEY_PRINTSCREEN = 0x000F, /*!< Print Screen (VK_PRINT) */ - RZKEY_SCROLL = 0x0010, /*!< Scroll Lock (VK_SCROLL) */ - RZKEY_PAUSE = 0x0011, /*!< Pause (VK_PAUSE) */ - RZKEY_INSERT = 0x010F, /*!< Insert (VK_INSERT) */ - RZKEY_HOME = 0x0110, /*!< Home (VK_HOME) */ - RZKEY_PAGEUP = 0x0111, /*!< Page Up (VK_PRIOR) */ - RZKEY_DELETE = 0x020f, /*!< Delete (VK_DELETE) */ - RZKEY_END = 0x0210, /*!< End (VK_END) */ - RZKEY_PAGEDOWN = 0x0211, /*!< Page Down (VK_NEXT) */ - RZKEY_UP = 0x0410, /*!< Up (VK_UP) */ - RZKEY_LEFT = 0x050F, /*!< Left (VK_LEFT) */ - RZKEY_DOWN = 0x0510, /*!< Down (VK_DOWN) */ - RZKEY_RIGHT = 0x0511, /*!< Right (VK_RIGHT) */ - RZKEY_TAB = 0x0201, /*!< Tab (VK_TAB) */ - RZKEY_CAPSLOCK = 0x0301, /*!< Caps Lock(VK_CAPITAL) */ - RZKEY_BACKSPACE = 0x010E, /*!< Backspace (VK_BACK) */ - RZKEY_ENTER = 0x030E, /*!< Enter (VK_RETURN) */ - RZKEY_LCTRL = 0x0501, /*!< Left Control(VK_LCONTROL) */ - RZKEY_LWIN = 0x0502, /*!< Left Window (VK_LWIN) */ - RZKEY_LALT = 0x0503, /*!< Left Alt (VK_LMENU) */ - RZKEY_SPACE = 0x0507, /*!< Spacebar (VK_SPACE) */ - RZKEY_RALT = 0x050B, /*!< Right Alt (VK_RMENU) */ - RZKEY_FN = 0x050C, /*!< Function key. */ - RZKEY_RMENU = 0x050D, /*!< Right Menu (VK_APPS) */ - RZKEY_RCTRL = 0x050E, /*!< Right Control (VK_RCONTROL) */ - RZKEY_LSHIFT = 0x0401, /*!< Left Shift (VK_LSHIFT) */ - RZKEY_RSHIFT = 0x040E, /*!< Right Shift (VK_RSHIFT) */ - RZKEY_MACRO1 = 0x0100, /*!< Macro Key 1 */ - RZKEY_MACRO2 = 0x0200, /*!< Macro Key 2 */ - RZKEY_MACRO3 = 0x0300, /*!< Macro Key 3 */ - RZKEY_MACRO4 = 0x0400, /*!< Macro Key 4 */ - RZKEY_MACRO5 = 0x0500, /*!< Macro Key 5 */ - RZKEY_OEM_1 = 0x0101, /*!< ~ (tilde/半角/全角) (VK_OEM_3) */ - RZKEY_OEM_2 = 0x010C, /*!< -- (minus) (VK_OEM_MINUS) */ - RZKEY_OEM_3 = 0x010D, /*!< = (equal) (VK_OEM_PLUS) */ - RZKEY_OEM_4 = 0x020C, /*!< [ (left sqaure bracket) (VK_OEM_4) */ - RZKEY_OEM_5 = 0x020D, /*!< ] (right square bracket) (VK_OEM_6) */ - RZKEY_OEM_6 = 0x020E, /*!< \ (backslash) (VK_OEM_5) */ - RZKEY_OEM_7 = 0x030B, /*!< ; (semi-colon) (VK_OEM_1) */ - RZKEY_OEM_8 = 0x030C, /*!< ' (apostrophe) (VK_OEM_7) */ - RZKEY_OEM_9 = 0x040A, /*!< , (comma) (VK_OEM_COMMA) */ - RZKEY_OEM_10 = 0x040B, /*!< . (period) (VK_OEM_PERIOD) */ - RZKEY_OEM_11 = 0x040C, /*!< / (forward slash) (VK_OEM_2) */ - RZKEY_EUR_1 = 0x030D, /*!< "#" (VK_OEM_5) */ - RZKEY_EUR_2 = 0x0402, /*!< \ (VK_OEM_102) */ - RZKEY_JPN_1 = 0x0015, /*!< ¥ (0xFF) */ - RZKEY_JPN_2 = 0x040D, /*!< \ (0xC1) */ - RZKEY_JPN_3 = 0x0504, /*!< 無変換 (VK_OEM_PA1) */ - RZKEY_JPN_4 = 0x0509, /*!< 変換 (0xFF) */ - RZKEY_JPN_5 = 0x050A, /*!< ひらがな/カタカナ (0xFF) */ - RZKEY_KOR_1 = 0x0015, /*!< | (0xFF) */ - RZKEY_KOR_2 = 0x030D, /*!< (VK_OEM_5) */ - RZKEY_KOR_3 = 0x0402, /*!< (VK_OEM_102) */ - RZKEY_KOR_4 = 0x040D, /*!< (0xC1) */ - RZKEY_KOR_5 = 0x0504, /*!< (VK_OEM_PA1) */ - RZKEY_KOR_6 = 0x0509, /*!< 한/영 (0xFF) */ - RZKEY_KOR_7 = 0x050A, /*!< (0xFF) */ - RZKEY_INVALID = 0xFFFF /*!< Invalid keys. */ - } RZKEY; - - //! Definition of LEDs. - typedef enum RZLED - { - RZLED_LOGO = 0x0014 /*!< Razer logo */ - } RZLED; - - //! Maximum number of rows in a keyboard. - const RZSIZE MAX_ROW = 6; - - //! Maximum number of columns in a keyboard. - const RZSIZE MAX_COLUMN = 22; - - //! Maximum number of keys. - const RZSIZE MAX_KEYS = MAX_ROW * MAX_COLUMN; - - //! Maximum number of custom effects. - const RZSIZE MAX_CUSTOM_EFFECTS = MAX_KEYS; - - //! Keyboard LED layout. - const COLORREF RZKEY_LAYOUT[MAX_ROW][MAX_COLUMN] = {}; - - //! Chroma keyboard effect types - typedef enum EFFECT_TYPE - { - CHROMA_NONE = 0, //!< No effect. - CHROMA_BREATHING, //!< Breathing effect (This effect has deprecated and should not be used). - CHROMA_CUSTOM, //!< Custom effect. - CHROMA_REACTIVE, //!< Reactive effect (This effect has deprecated and should not be used). - CHROMA_STATIC, //!< Static effect. - CHROMA_SPECTRUMCYCLING, //!< Spectrum cycling effect (This effect has deprecated and should not be used). - CHROMA_WAVE, //!< Wave effect (This effect has deprecated and should not be used). - CHROMA_RESERVED, //!< Reserved. - CHROMA_CUSTOM_KEY, //!< Custom effects with keys. - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - // Chroma keyboard effects - //! Breathing effect type (This effect has deprecated and should not be used). - typedef struct BREATHING_EFFECT_TYPE - { - //! Breathing effects. - enum Type - { - TWO_COLORS = 1, //!< 2 colors - RANDOM_COLORS, //!< Random colors - INVALID //!< Invalid type - } Type; - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - } BREATHING_EFFECT_TYPE; - - //! Custom effect using a matrix type. - typedef struct CUSTOM_EFFECT_TYPE - { - COLORREF Color[MAX_ROW][MAX_COLUMN]; //!< Grid layout. 6 rows by 22 columns. - } CUSTOM_EFFECT_TYPE; - - //! Custom effect with keys. - typedef struct CUSTOM_KEY_EFFECT_TYPE - { - COLORREF Color[MAX_ROW][MAX_COLUMN]; //!< Grid layout. 6 rows by 22 columns. - COLORREF Key[MAX_ROW][MAX_COLUMN]; //!< Keys information. 6 rows by 22 columns. To indidate there is a key effect, OR with 0x01000000. i.e. Key[0][1] = 0x01000000 | Color; - } CUSTOM_KEY_EFFECT_TYPE; - - //! Reactive effect type (This effect has deprecated and should not be used). - typedef struct REACTIVE_EFFECT_TYPE - { - //! Duration of the effect. - enum Duration - { - DURATION_NONE=0, //!< No duration. - DURATION_SHORT, //!< Short duration. - DURATION_MEDIUM, //!< Medium duration. - DURATION_LONG, //!< Long duration. - DURATION_INVALID //!< Invalid duration. - } Duration; //!< The time taken for the effect to fade away. - - COLORREF Color; //!< Color of the effect - } REACTIVE_EFFECT_TYPE; - - //! Starlight effect (This effect has deprecated and should not be used). - typedef struct STARLIGHT_EFFECT_TYPE - { - //! Starlight effect types. - enum _Type - { - TWO_COLORS = 1, //!< 2 colors. - RANDOM_COLORS //!< Random colors - } Type; - - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - - //! Duration of the effect. - enum _Duration - { - DURATION_SHORT = 1, //!< Short duration. - DURATION_MEDIUM, //!< Medium duration. - DURATION_LONG //!< Long duration. - } Duration; //!< The time taken for the effect to fade away. - - } STARLIGHT_EFFECT_TYPE; - - //! Static effect type - typedef struct STATIC_EFFECT_TYPE - { - COLORREF Color; //!< Color of the effect - } STATIC_EFFECT_TYPE; - - //! Wave effect type (This effect has deprecated and should not be used). - typedef struct WAVE_EFFECT_TYPE - { - //! Direction of the wave effect. - enum Direction - { - DIRECTION_NONE=0, //!< No direction. - DIRECTION_LEFT_TO_RIGHT, //!< Left to right. - DIRECTION_RIGHT_TO_LEFT, //!< Right to left. - DIRECTION_INVALID //!< Invalid direction. - } Direction; //!< Direction of the wave. - } WAVE_EFFECT_TYPE; - } - - //! Mice - namespace Mouse - { - //! Maximum number of custom LEDs (old definition to maintain backward compatibility). - const RZSIZE MAX_LEDS = 30; - - //! Mice LED layout (old definition to maintain backward compatibility). - const RZCOLOR RZLED_LAYOUT[MAX_LEDS] = {}; - - //! Maximum number of rows of the virtual grid. - const RZSIZE MAX_ROW = 9; - - //! Maximum number of columns of the virtual grid. - const RZSIZE MAX_COLUMN = 7; - - //! Maximum number of LEDs of the virtual grid. - const RZSIZE MAX_LEDS2 = MAX_ROW * MAX_COLUMN; - - //! Mice LED virtual grid layout. - const RZCOLOR RZLED_LAYOUT2[MAX_ROW][MAX_COLUMN] = {}; - - //! Mouse LED Id defintion (This effect type has deprecated and should not be used). - typedef enum RZLED - { - RZLED_NONE = 0, //!< No LED. - RZLED_SCROLLWHEEL = 1, //!< Scroll Wheel LED. - RZLED_LOGO = 2, //!< Logo LED. - RZLED_BACKLIGHT = 3, //!< Backlight or numpad. - RZLED_SIDE_STRIP1 = 4, //!< Side strip LED 1. (For Mamba TE, starts from top left hand) - RZLED_SIDE_STRIP2 = 5, //!< Side strip LED 2. (For Mamba TE) - RZLED_SIDE_STRIP3 = 6, //!< Side strip LED 3. (For Mamba TE) - RZLED_SIDE_STRIP4 = 7, //!< Side strip LED 4. (For Mamba TE) - RZLED_SIDE_STRIP5 = 8, //!< Side strip LED 5. (For Mamba TE) - RZLED_SIDE_STRIP6 = 9, //!< Side strip LED 6. (For Mamba TE) - RZLED_SIDE_STRIP7 = 10, //!< Side strip LED 7. (For Mamba TE) - RZLED_SIDE_STRIP8 = 11, //!< Side strip LED 8. (For Mamba TE) - RZLED_SIDE_STRIP9 = 12, //!< Side strip LED 9. (For Mamba TE) - RZLED_SIDE_STRIP10 = 13, //!< Side strip LED 10. (For Mamba TE) - RZLED_SIDE_STRIP11 = 14, //!< Side strip LED 11. (For Mamba TE) - RZLED_SIDE_STRIP12 = 15, //!< Side strip LED 12. (For Mamba TE) - RZLED_SIDE_STRIP13 = 16, //!< Side strip LED 13. (For Mamba TE) - RZLED_SIDE_STRIP14 = 17, //!< Side strip LED 14. (For Mamba TE) - RZLED_ALL = 0xFFFF - } RZLED; - - //! Mouse LED Id defintion for the virtual grid. - typedef enum RZLED2 - { - RZLED2_SCROLLWHEEL = 0x0203, //!< Scroll Wheel LED. - RZLED2_LOGO = 0x0703, //!< Logo LED. - RZLED2_BACKLIGHT = 0x0403, //!< Backlight LED. - RZLED2_LEFT_SIDE1 = 0x0100, //!< Left LED 1. - RZLED2_LEFT_SIDE2 = 0x0200, //!< Left LED 2. - RZLED2_LEFT_SIDE3 = 0x0300, //!< Left LED 3. - RZLED2_LEFT_SIDE4 = 0x0400, //!< Left LED 4. - RZLED2_LEFT_SIDE5 = 0x0500, //!< Left LED 5. - RZLED2_LEFT_SIDE6 = 0x0600, //!< Left LED 6. - RZLED2_LEFT_SIDE7 = 0x0700, //!< Left LED 7. - RZLED2_BOTTOM1 = 0x0801, //!< Bottom LED 1. - RZLED2_BOTTOM2 = 0x0802, //!< Bottom LED 2. - RZLED2_BOTTOM3 = 0x0803, //!< Bottom LED 3. - RZLED2_BOTTOM4 = 0x0804, //!< Bottom LED 4. - RZLED2_BOTTOM5 = 0x0805, //!< Bottom LED 5. - RZLED2_RIGHT_SIDE1 = 0x0106, //!< Right LED 1. - RZLED2_RIGHT_SIDE2 = 0x0206, //!< Right LED 2. - RZLED2_RIGHT_SIDE3 = 0x0306, //!< Right LED 3. - RZLED2_RIGHT_SIDE4 = 0x0406, //!< Right LED 4. - RZLED2_RIGHT_SIDE5 = 0x0506, //!< Right LED 5. - RZLED2_RIGHT_SIDE6 = 0x0606, //!< Right LED 6. - RZLED2_RIGHT_SIDE7 = 0x0706 //!< Right LED 7. - } RZLED2; - - //! Chroma mouse effect types - typedef enum EFFECT_TYPE - { - CHROMA_NONE = 0, //!< No effect. - CHROMA_BLINKING, //!< Blinking effect (This effect has deprecated and should not be used). - CHROMA_BREATHING, //!< Breathing effect (This effect has deprecated and should not be used). - CHROMA_CUSTOM, //!< Custom effect (old definition to maintain backward compatibility). - CHROMA_REACTIVE, //!< Reactive effect (This effect has deprecated and should not be used). - CHROMA_SPECTRUMCYCLING, //!< Spectrum cycling effect (This effect has deprecated and should not be used). - CHROMA_STATIC, //!< Static effect. - CHROMA_WAVE, //!< Wave effect (This effect has deprecated and should not be used). - CHROMA_CUSTOM2, //!< Custom effects using a virtual grid. - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - //! Static effect type - typedef struct STATIC_EFFECT_TYPE - { - RZLED LEDId; //!< LED Id - COLORREF Color; //!< Color of the effect. - } STATIC_EFFECT_TYPE; - - //! Blinking effect type (This effect has deprecated and should not be used). - typedef struct BLINKING_EFFECT_TYPE - { - RZLED LEDId; //!< LED Id - COLORREF Color; //!< Color. - } BLINKING_EFFECT_TYPE; - - //! Breathing effect (This effect has deprecated and should not be used). - typedef struct BREATHING_EFFECT_TYPE - { - RZLED LEDId; //!< LED Id - - //! Breathing type. - enum Type - { - ONE_COLOR = 1, //!< 1 color (Only fill Color1). - TWO_COLORS, //!< 2 colors. - RANDOM_COLORS, //!< Random colors - INVALID //!< Invalid type - } Type; - - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - } BREATHING_EFFECT_TYPE; - - //! Custom effect (This effect type has deprecated and should not be used). - typedef struct CUSTOM_EFFECT_TYPE - { - RZCOLOR Color[MAX_LEDS]; //!< Array of colors. - } CUSTOM_EFFECT_TYPE; - - //! Custom effect using virtual grid. - //! Indexes of the LED are defined in RZLED2.i.e. Row = HIBYTE(RZLED2_SCROLLWHEEL), Column = LOBYTE(RZLED2_SCROLLWHEEL) - typedef struct CUSTOM_EFFECT_TYPE2 - { - RZCOLOR Color[MAX_ROW][MAX_COLUMN]; //!< Array of colors. - } CUSTOM_EFFECT_TYPE2; - - //! Reactive effect (This effect has deprecated and should not be used). - typedef struct REACTIVE_EFFECT_TYPE - { - RZLED LEDId; //!< LED Id - - //! Duration of the effect. - enum Duration - { - DURATION_NONE=0, //!< No duration. - DURATION_SHORT, //!< Short duration. - DURATION_MEDIUM, //!< Medium duration. - DURATION_LONG //!< Long duration. - } Duration; - - RZCOLOR Color; //!< Color of the effect. - } REACTIVE_EFFECT_TYPE; - - //! No effect (This effect has deprecated and should not be used). - typedef struct NO_EFFECT_TYPE - { - RZLED LEDId; //!< LED Id - } NO_EFFECT_TYPE; - - //! Spectrum cycling (This effect has deprecated and should not be used). - typedef struct SPECTRUMCYCLING_EFFECT_TYPE - { - RZLED LEDId; //!< LED id. - } SPECTRUMCYCLING_EFFECT_TYPE; - - //! Wave effect (This effect has deprecated and should not be used). - typedef struct WAVE_EFFECT_TYPE - { - //! Direction of the wave effect. - enum Direction - { - FRONT_TO_BACK, //!< Front to back - BACK_TO_FRONT //!< Back to front - } Direction; - } WAVE_EFFECT_TYPE; - } - - //! Headsets - namespace Headset - { - //! Maximum number of LEDs - const RZSIZE MAX_LEDS = 5; - - //! Chroma headset effect types - typedef enum EFFECT_TYPE - { - CHROMA_NONE = 0, //!< No effect. - CHROMA_STATIC, //!< Static effect. - CHROMA_BREATHING, //!< Breathing effect (This effect has deprecated and should not be used). - CHROMA_SPECTRUMCYCLING, //!< Spectrum cycling effect (This effect has deprecated and should not be used). - CHROMA_CUSTOM, //!< Custom effects. - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - //! Static effect type - typedef struct STATIC_EFFECT_TYPE - { - COLORREF Color; //!< Color of the effect. - } STATIC_EFFECT_TYPE; - - //! Breathing effect type (This effect has deprecated and should not be used). - typedef struct BREATHING_EFFECT_TYPE - { - COLORREF Color; //!< Color. - } BREATHING_EFFECT_TYPE; - - //! Custom effect type. - typedef struct CUSTOM_EFFECT_TYPE - { - RZCOLOR Color[MAX_LEDS]; //!< Array of colors. - } CUSTOM_EFFECT_TYPE; - } - - //! Mousepads - namespace Mousepad - { - //! Maximum number of LEDs - const RZSIZE MAX_LEDS = 15; - - //! Chroma mousepad effect types - typedef enum EFFECT_TYPE - { - CHROMA_NONE = 0, //!< No effect. - CHROMA_BREATHING, //!< Breathing effect (This effect has deprecated and should not be used). - CHROMA_CUSTOM, //!< Custom effect. - CHROMA_SPECTRUMCYCLING, //!< Spectrum cycling effect (This effect has deprecated and should not be used). - CHROMA_STATIC, //!< Static effect. - CHROMA_WAVE, //!< Wave effect (This effect has deprecated and should not be used). - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - // Chroma mousepad effects - //! Breathing effect type (This effect has deprecated and should not be used). - typedef struct BREATHING_EFFECT_TYPE - { - //! Breathing effects. - enum Type - { - TWO_COLORS = 1, //!< 2 colors - RANDOM_COLORS, //!< Random colors - INVALID - } Type; - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - } BREATHING_EFFECT_TYPE; - - //! Custom effect type. - typedef struct CUSTOM_EFFECT_TYPE - { - RZCOLOR Color[MAX_LEDS]; //!< An array of colors for all the sides of the mousepad. First LED starts from top-right corner. - //!< LED 0-4 right side, 5-9 bottom side, 10-14 left side. - } CUSTOM_EFFECT_TYPE; - - //! Static effect type - typedef struct STATIC_EFFECT_TYPE - { - COLORREF Color; //!< Color of the effect - } STATIC_EFFECT_TYPE; - - //! Wave effect type - typedef struct WAVE_EFFECT_TYPE - { - //! Direction of the wave effect. - enum Direction - { - DIRECTION_NONE=0, //!< No direction. - DIRECTION_LEFT_TO_RIGHT, //!< Left to right. - DIRECTION_RIGHT_TO_LEFT, //!< Right to left. - DIRECTION_INVALID //!< Invalid direction. - } Direction; //!< Direction of the wave. - } WAVE_EFFECT_TYPE; - } - - //! Keypads - namespace Keypad - { - //! Maximum number of rows. - const RZSIZE MAX_ROW = 4; - - //! Maximum number of columns. - const RZSIZE MAX_COLUMN = 5; - - //! Total number of keys. - const RZSIZE MAX_KEYS = MAX_ROW * MAX_COLUMN; - - //! Chroma keypad effect types - typedef enum EFFECT_TYPE - { - CHROMA_NONE = 0, //!< No effect. - CHROMA_BREATHING, //!< Breathing effect (This effect has deprecated and should not be used). - CHROMA_CUSTOM, //!< Custom effect. - CHROMA_REACTIVE, //!< Reactive effect (This effect has deprecated and should not be used). - CHROMA_SPECTRUMCYCLING, //!< Spectrum cycling effect (This effect has deprecated and should not be used). - CHROMA_STATIC, //!< Static effect. - CHROMA_WAVE, //!< Wave effect (This effect has deprecated and should not be used). - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - // Chroma keypad effects - //! Breathing effect type (This effect has deprecated and should not be used). - typedef struct BREATHING_EFFECT_TYPE - { - //! Breathing effects. - enum Type - { - TWO_COLORS = 1, //!< 2 colors - RANDOM_COLORS, //!< Random colors - INVALID //!< Invalid type - } Type; - COLORREF Color1; //!< First color. - COLORREF Color2; //!< Second color. - } BREATHING_EFFECT_TYPE; - - //! Custom effect type - typedef struct CUSTOM_EFFECT_TYPE - { - RZCOLOR Color[MAX_ROW][MAX_COLUMN]; //!< Custom effect. - //!< For Razer Tartarus Chroma only Color[0] is valid. Use index '0' to change the keypad color. - } CUSTOM_EFFECT_TYPE; - - //! Reactive effect type (This effect has deprecated and should not be used). - typedef struct REACTIVE_EFFECT_TYPE - { - //! Duration of the effect. - enum Duration - { - DURATION_NONE=0, //!< No duration. - DURATION_SHORT, //!< Short duration. - DURATION_MEDIUM, //!< Medium duration. - DURATION_LONG, //!< Long duration. - DURATION_INVALID //!< Invalid duration. - } Duration; //!< The time taken for the effect to fade away. - - COLORREF Color; //!< Color of the effect - } REACTIVE_EFFECT_TYPE; - - //! Static effect type - typedef struct STATIC_EFFECT_TYPE - { - RZCOLOR Color; //!< Color of the effect. - } STATIC_EFFECT_TYPE; - - //! Wave effect type (This effect has deprecated and should not be used). - typedef struct WAVE_EFFECT_TYPE - { - //! Direction of the wave effect. - enum Direction - { - DIRECTION_NONE=0, //!< No direction. - DIRECTION_LEFT_TO_RIGHT, //!< Left to right. - DIRECTION_RIGHT_TO_LEFT, //!< Right to left. - DIRECTION_INVALID //!< Invalid direction. - } Direction; //!< Direction of the wave. - } WAVE_EFFECT_TYPE; - } - - //! Chroma Link - namespace ChromaLink - { - //! Maximum number of elements/LEDs - const RZSIZE MAX_LEDS = 5; - - //! Chroma Link effect types - typedef enum EFFECT_TYPE - { - CHROMA_NONE = 0, //!< No effect. - CHROMA_CUSTOM, //!< Custom effect. - CHROMA_STATIC, //!< Static effect. - CHROMA_INVALID //!< Invalid effect. - } EFFECT_TYPE; - - //! Custom effect type - typedef struct CUSTOM_EFFECT_TYPE - { - RZCOLOR Color[MAX_LEDS]; //!< Array of colors. - } CUSTOM_EFFECT_TYPE; - - //! Static effect type - typedef struct STATIC_EFFECT_TYPE - { - RZCOLOR Color; //!< Color of the effect. - } STATIC_EFFECT_TYPE; - } -} - -#endif diff --git a/include/third_party/chromasdk/RzErrors.h b/include/third_party/chromasdk/RzErrors.h deleted file mode 100644 index 2308d36..0000000 --- a/include/third_party/chromasdk/RzErrors.h +++ /dev/null @@ -1,46 +0,0 @@ - -//! \file RzErrors.h -//! \brief Error codes for Chroma SDK. If the error is not defined here, refer to WinError.h from the Windows SDK. - -#ifndef _RZERRORS_H_ -#define _RZERRORS_H_ - -#pragma once - -// Error codes -//! Invalid -#define RZRESULT_INVALID -1L -//! Success -#define RZRESULT_SUCCESS 0L -//! Access denied -#define RZRESULT_ACCESS_DENIED 5L -//! Invalid handle -#define RZRESULT_INVALID_HANDLE 6L -//! Not supported -#define RZRESULT_NOT_SUPPORTED 50L -//! Invalid parameter. -#define RZRESULT_INVALID_PARAMETER 87L -//! The service has not been started -#define RZRESULT_SERVICE_NOT_ACTIVE 1062L -//! Cannot start more than one instance of the specified program. -#define RZRESULT_SINGLE_INSTANCE_APP 1152L -//! Device not connected -#define RZRESULT_DEVICE_NOT_CONNECTED 1167L -//! Element not found. -#define RZRESULT_NOT_FOUND 1168L -//! Request aborted. -#define RZRESULT_REQUEST_ABORTED 1235L -//! An attempt was made to perform an initialization operation when initialization has already been completed. -#define RZRESULT_ALREADY_INITIALIZED 1247L -//! Resource not available or disabled -#define RZRESULT_RESOURCE_DISABLED 4309L -//! Device not available or supported -#define RZRESULT_DEVICE_NOT_AVAILABLE 4319L -//! The group or resource is not in the correct state to perform the requested operation. -#define RZRESULT_NOT_VALID_STATE 5023L -//! No more items -#define RZRESULT_NO_MORE_ITEMS 259L -//! General failure. -#define RZRESULT_FAILED 2147500037L - -#endif diff --git a/include/third_party/termcolor.hpp b/include/third_party/termcolor.hpp deleted file mode 100644 index 0c0f831..0000000 --- a/include/third_party/termcolor.hpp +++ /dev/null @@ -1,940 +0,0 @@ -//! -//! termcolor -//! ~~~~~~~~~ -//! -//! termcolor is a header-only c++ library for printing colored messages -//! to the terminal. Written just for fun with a help of the Force. -//! -//! :copyright: (c) 2013 by Ihor Kalnytskyi -//! :license: BSD, see LICENSE for details -//! - -#ifndef TERMCOLOR_HPP_ -#define TERMCOLOR_HPP_ - -#include -#include - -// Detect target's platform and set some macros in order to wrap platform -// specific code this library depends on. -#if defined(_WIN32) || defined(_WIN64) -# define TERMCOLOR_TARGET_WINDOWS -#elif defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)) -# define TERMCOLOR_TARGET_POSIX -#endif - -// If implementation has not been explicitly set, try to choose one based on -// target platform. -#if !defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) && !defined(TERMCOLOR_USE_WINDOWS_API) && !defined(TERMCOLOR_USE_NOOP) -# if defined(TERMCOLOR_TARGET_POSIX) -# define TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES -# define TERMCOLOR_AUTODETECTED_IMPLEMENTATION -# elif defined(TERMCOLOR_TARGET_WINDOWS) -# define TERMCOLOR_USE_WINDOWS_API -# define TERMCOLOR_AUTODETECTED_IMPLEMENTATION -# endif -#endif - -// These headers provide isatty()/fileno() functions, which are used for -// testing whether a standard stream refers to the terminal. -#if defined(TERMCOLOR_TARGET_POSIX) -# include -#elif defined(TERMCOLOR_TARGET_WINDOWS) -# include -# include -#endif - - -namespace termcolor -{ - // Forward declaration of the `_internal` namespace. - // All comments are below. - namespace _internal - { - inline int colorize_index(); - inline FILE* get_standard_stream(const std::ostream& stream); - inline FILE* get_standard_stream(const std::wostream& stream); - template - bool is_colorized(std::basic_ostream& stream); - template - bool is_atty(const std::basic_ostream& stream); - - #if defined(TERMCOLOR_TARGET_WINDOWS) - template - void win_change_attributes(std::basic_ostream& stream, int foreground, int background = -1); - #endif - } - - template - std::basic_ostream& colorize(std::basic_ostream& stream) - { - stream.iword(_internal::colorize_index()) = 1L; - return stream; - } - - template - std::basic_ostream& nocolorize(std::basic_ostream& stream) - { - stream.iword(_internal::colorize_index()) = 0L; - return stream; - } - - template - std::basic_ostream& reset(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[00m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, -1); - #endif - } - return stream; - } - - template - std::basic_ostream& bold(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[1m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& dark(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[2m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& italic(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[3m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& underline(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[4m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, COMMON_LVB_UNDERSCORE); - #endif - } - return stream; - } - - template - std::basic_ostream& blink(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[5m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& reverse(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[7m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& concealed(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[8m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& crossed(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[9m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& color(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[38;5;" << +code << "m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& on_color(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[48;5;" << +code << "m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& color(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[38;2;" << +r << ";" << +g << ";" << +b << "m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& on_color(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[48;2;" << +r << ";" << +g << ";" << +b << "m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - #endif - } - return stream; - } - - template - std::basic_ostream& grey(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[30m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - 0 // grey (black) - ); - #endif - } - return stream; - } - - template - std::basic_ostream& red(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[31m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_RED - ); - #endif - } - return stream; - } - - template - std::basic_ostream& green(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[32m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_GREEN - ); - #endif - } - return stream; - } - - template - std::basic_ostream& yellow(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[33m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_GREEN | FOREGROUND_RED - ); - #endif - } - return stream; - } - - template - std::basic_ostream& blue(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[34m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE - ); - #endif - } - return stream; - } - - template - std::basic_ostream& magenta(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[35m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_RED - ); - #endif - } - return stream; - } - - template - std::basic_ostream& cyan(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[36m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_GREEN - ); - #endif - } - return stream; - } - - template - std::basic_ostream& white(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[37m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED - ); - #endif - } - return stream; - } - - - template - std::basic_ostream& bright_grey(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[90m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - 0 | FOREGROUND_INTENSITY // grey (black) - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_red(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[91m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_RED | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_green(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[92m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_GREEN | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_yellow(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[93m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_blue(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[94m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_magenta(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[95m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_cyan(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[96m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& bright_white(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[97m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, - FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY - ); - #endif - } - return stream; - } - - - template - std::basic_ostream& on_grey(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[40m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - 0 // grey (black) - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_red(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[41m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_RED - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_green(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[42m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_yellow(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[43m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_RED - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_blue(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[44m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_BLUE - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_magenta(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[45m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_BLUE | BACKGROUND_RED - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_cyan(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[46m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_BLUE - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_white(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[47m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_RED - ); - #endif - } - - return stream; - } - - - template - std::basic_ostream& on_bright_grey(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[100m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - 0 | BACKGROUND_INTENSITY // grey (black) - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_red(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[101m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_RED | BACKGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_green(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[102m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_yellow(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[103m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_blue(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[104m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_BLUE | BACKGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_magenta(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[105m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_cyan(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[106m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY - ); - #endif - } - return stream; - } - - template - std::basic_ostream& on_bright_white(std::basic_ostream& stream) - { - if (_internal::is_colorized(stream)) - { - #if defined(TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES) - stream << "\033[107m"; - #elif defined(TERMCOLOR_USE_WINDOWS_API) - _internal::win_change_attributes(stream, -1, - BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY - ); - #endif - } - - return stream; - } - - - - //! Since C++ hasn't a way to hide something in the header from - //! the outer access, I have to introduce this namespace which - //! is used for internal purpose and should't be access from - //! the user code. - namespace _internal - { - // An index to be used to access a private storage of I/O streams. See - // colorize / nocolorize I/O manipulators for details. Due to the fact - // that static variables ain't shared between translation units, inline - // function with local static variable is used to do the trick and share - // the variable value between translation units. - inline int colorize_index() - { - static int colorize_index = std::ios_base::xalloc(); - return colorize_index; - } - - //! Since C++ hasn't a true way to extract stream handler - //! from the a given `std::ostream` object, I have to write - //! this kind of hack. - inline - FILE* get_standard_stream(const std::ostream& stream) - { - if (&stream == &std::cout) - return stdout; - else if (&stream == &std::cerr || &stream == &std::clog) - return stderr; - - return nullptr; - } - - //! Since C++ hasn't a true way to extract stream handler - //! from the a given `std::wostream` object, I have to write - //! this kind of hack. - inline - FILE* get_standard_stream(const std::wostream& stream) - { - if (&stream == &std::wcout) - return stdout; - else if (&stream == &std::wcerr || &stream == &std::wclog) - return stderr; - - return nullptr; - } - - // Say whether a given stream should be colorized or not. It's always - // true for ATTY streams and may be true for streams marked with - // colorize flag. - template - bool is_colorized(std::basic_ostream& stream) - { - return is_atty(stream) || static_cast(stream.iword(colorize_index())); - } - - //! Test whether a given `std::ostream` object refers to - //! a terminal. - template - bool is_atty(const std::basic_ostream& stream) - { - FILE* std_stream = get_standard_stream(stream); - - // Unfortunately, fileno() ends with segmentation fault - // if invalid file descriptor is passed. So we need to - // handle this case gracefully and assume it's not a tty - // if standard stream is not detected, and 0 is returned. - if (!std_stream) - return false; - - #if defined(TERMCOLOR_TARGET_POSIX) - return ::isatty(fileno(std_stream)); - #elif defined(TERMCOLOR_TARGET_WINDOWS) - return ::_isatty(_fileno(std_stream)); - #else - return false; - #endif - } - - #if defined(TERMCOLOR_TARGET_WINDOWS) - - //! same hack as used in get_standard_stream function, but for Windows with `std::ostream` - inline HANDLE get_terminal_handle(std::ostream& stream) - { - if (&stream == &std::cout) - return GetStdHandle(STD_OUTPUT_HANDLE); - else if (&stream == &std::cerr || &stream == &std::clog) - return GetStdHandle(STD_ERROR_HANDLE); - return nullptr; - } - - //! same hack as used in get_standard_stream function, but for Windows with `std::wostream` - inline HANDLE get_terminal_handle(std::wostream& stream) - { - if (&stream == &std::wcout) - return GetStdHandle(STD_OUTPUT_HANDLE); - else if (&stream == &std::wcerr || &stream == &std::wclog) - return GetStdHandle(STD_ERROR_HANDLE); - return nullptr; - } - - //! Change Windows Terminal colors attribute. If some - //! parameter is `-1` then attribute won't changed. - template - void win_change_attributes(std::basic_ostream& stream, int foreground, int background) - { - // yeah, i know.. it's ugly, it's windows. - static WORD defaultAttributes = 0; - - // Windows doesn't have ANSI escape sequences and so we use special - // API to change Terminal output color. That means we can't - // manipulate colors by means of "std::stringstream" and hence - // should do nothing in this case. - if (!_internal::is_atty(stream)) - return; - - // get terminal handle - HANDLE hTerminal = INVALID_HANDLE_VALUE; - hTerminal = get_terminal_handle(stream); - - // save default terminal attributes if it unsaved - if (!defaultAttributes) - { - CONSOLE_SCREEN_BUFFER_INFO info; - if (!GetConsoleScreenBufferInfo(hTerminal, &info)) - return; - defaultAttributes = info.wAttributes; - } - - // restore all default settings - if (foreground == -1 && background == -1) - { - SetConsoleTextAttribute(hTerminal, defaultAttributes); - return; - } - - // get current settings - CONSOLE_SCREEN_BUFFER_INFO info; - if (!GetConsoleScreenBufferInfo(hTerminal, &info)) - return; - - if (foreground != -1) - { - info.wAttributes &= ~(info.wAttributes & 0x0F); - info.wAttributes |= static_cast(foreground); - } - - if (background != -1) - { - info.wAttributes &= ~(info.wAttributes & 0xF0); - info.wAttributes |= static_cast(background); - } - - SetConsoleTextAttribute(hTerminal, info.wAttributes); - } - #endif // TERMCOLOR_TARGET_WINDOWS - - } // namespace _internal - -} // namespace termcolor - - -#undef TERMCOLOR_TARGET_POSIX -#undef TERMCOLOR_TARGET_WINDOWS - -#if defined(TERMCOLOR_AUTODETECTED_IMPLEMENTATION) -# undef TERMCOLOR_USE_ANSI_ESCAPE_SEQUENCES -# undef TERMCOLOR_USE_WINDOWS_API -#endif - -#endif // TERMCOLOR_HPP_ diff --git a/src/modloader.cpp b/src/modloader.cpp index f3d33dc..3156ae0 100644 --- a/src/modloader.cpp +++ b/src/modloader.cpp @@ -32,7 +32,9 @@ namespace fs = std::filesystem; std::string getCacheDir(){ #ifdef _WIN32 return SDL_getenv("Temp"); -#elif defined(__linux__) +#elif __linux__ + return std::string(SDL_getenv("HOME")) + "/.cache"; +#elif BSD return std::string(SDL_getenv("HOME")) + "/.cache"; #elif __APPLE__ return "~/Library/Caches"; @@ -95,9 +97,7 @@ std::string sha256_file(const std::string &fn) { } #ifdef __EMSCRIPTEN__ -std::string ModLoader(Config conf){ - return ""; -} +std::string ModLoader(Config conf){ return ""; } #else std::string ModLoader(Config conf){ std::string path = conf.Modloader.ModsDirPath;