update the repository for v0.7.10

note that the google protobuf project does not recommend shipping
generated _pb2.py files, so that functionality has been removed from the
project. this also partially undoes the previous commit since using the
provided .proto files is less of an issue and also the default now, so
maybe don't spam the console as much

Signed-off-by: Brian S. Stephan <bss@incorporeal.org>
This commit is contained in:
Brian S. Stephan 2024-09-30 09:02:25 -05:00
parent 18f4f45bb5
commit d4c4bbde96
Signed by: bss
GPG Key ID: 3DE06D3180895FCB
21 changed files with 296 additions and 942 deletions

View File

@ -19,7 +19,7 @@ Copyright: © 2023 Brian S. Stephan <bss@incorporeal.org>
License: GPL-3.0-or-later
# Test data (GP2040-CE-derived)
Files: tests/test-files/pb2-files/* tests/test-files/proto-files/*
Files: tests/test-files/proto-files/*
Copyright: (c) 2024 OpenStickCommunity (gp2040-ce.info)
License: MIT

View File

@ -13,9 +13,9 @@ over USB.
All tools take `-P PATH` flag(s) in order to import Protobuf files (either precompiled Python files or raw .proto files)
if you have them locally, in order to work with the latest (or development) version of the configuration. That said,
this tool also includes a precompiled fallback version of the config structure if you cannot supply these files. Be
aware, however, that they are a point in time snapshot, and may lag the real format in undesirable ways. Supply the
latest Protobuf files if you can.
this tool also includes a copy of the config files if you cannot supply these files, and will attempt to compile those
as a fallback. Be aware, however, that they are a point in time snapshot, and may lag the real format in undesirable
ways. Supply the latest Protobuf files if you can.
An example of this invocation is:

View File

@ -64,8 +64,7 @@ def get_config_pb2():
return grpc.protos('config.proto')
except (ModuleNotFoundError, TypeError):
# (TypeError could be the windows bug https://github.com/protocolbuffers/protobuf/issues/14345)
# that failed, import a precompiled snapshot (may be lagging what's in GP2040-CE)
logger.exception("couldn't compile the proto files for the below reason:")
# that failed, import the snapshot (may be lagging what's in GP2040-CE)
logger.warning("using the fallback .proto files! please supply your files with -P if you can!")
sys.path.append(os.path.join(pathlib.Path(__file__).parent.resolve(), 'proto_snapshot'))
logger.warning("using the precompiled fallback!")
return importlib.import_module('config_pb2')
return grpc.protos('config.proto')

View File

@ -1,9 +0,0 @@
"""COPIED OUTPUT OF `protoc foo.proto --python_out .`.
The .proto files here have been copied from https://github.com/OpenStickCommunity/GP2040-CE and
are a point in time import of the GP2040-CE firmware's configuration structure. THEY MAY BE OUT
OF DATE. If you are a developer, you should really use the `-P` flags to import your local copy
of the .proto files.
"""
GP2040CE_SNAPSHOT_VERSION = 'v0.7.7'

View File

@ -28,6 +28,7 @@ message GamepadOptions
optional InputModeAuthType ps4AuthType = 21;
optional InputModeAuthType ps5AuthType = 22;
optional InputModeAuthType xinputAuthType = 23;
optional PS4ControllerIDMode ps4ControllerIDMode = 24;
}
message KeyboardMapping
@ -50,6 +51,21 @@ message KeyboardMapping
optional uint32 keyButtonR3 = 16;
optional uint32 keyButtonA1 = 17;
optional uint32 keyButtonA2 = 18;
optional uint32 keyButtonA3 = 19;
optional uint32 keyButtonA4 = 20;
optional uint32 keyButtonE1 = 21;
optional uint32 keyButtonE2 = 22;
optional uint32 keyButtonE3 = 23;
optional uint32 keyButtonE4 = 24;
optional uint32 keyButtonE5 = 25;
optional uint32 keyButtonE6 = 26;
optional uint32 keyButtonE7 = 27;
optional uint32 keyButtonE8 = 28;
optional uint32 keyButtonE9 = 29;
optional uint32 keyButtonE10 = 30;
optional uint32 keyButtonE11 = 31;
optional uint32 keyButtonE12 = 32;
}
message HotkeyEntry
@ -169,11 +185,15 @@ message GpioMappingInfo
{
optional GpioAction action = 1;
optional GpioDirection direction = 2;
optional uint32 customDpadMask = 3;
optional uint32 customButtonMask = 4;
}
message GpioMappings
{
repeated GpioMappingInfo pins = 1 [(nanopb).max_count = 30];
optional string profileLabel = 2 [(nanopb).max_length = 16];
optional bool enabled = 3 [default = false];
}
@ -204,10 +224,10 @@ message DisplayOptions
{
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
optional int32 deprecatedI2cSDAPin = 3 [deprecated = true];
optional int32 deprecatedI2cSCLPin = 4 [deprecated = true];
optional int32 i2cAddress = 5;
optional int32 deprecatedI2cAddress = 5 [deprecated = true];
optional int32 deprecatedI2cSpeed = 6 [deprecated = true];
optional ButtonLayout buttonLayout = 7;
@ -349,6 +369,9 @@ message AnalogOptions
optional InvertMode analogAdc2Invert = 11;
optional bool auto_calibrate = 12;
optional uint32 outer_deadzone = 13;
optional bool analog_smoothing = 14;
optional float smoothing_factor = 15;
optional uint32 analog_error = 16;
}
message TurboOptions
@ -384,7 +407,7 @@ message SliderOptions
optional int32 deprecatedPinSliderTwo = 3 [deprecated = true];
optional DpadMode deprecatedModeOne = 4 [deprecated = true];
optional DpadMode deprecatedModeTwo = 5 [deprecated = true];
optional DpadMode modeDefault = 6;
optional DpadMode deprecatedModeDefault = 6;
}
message SOCDSliderOptions
@ -416,10 +439,10 @@ message AnalogADS1219Options
{
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
optional int32 deprecatedI2cSDAPin = 3 [deprecated = true];
optional int32 deprecatedI2cSCLPin = 4 [deprecated = true];
optional int32 i2cAddress = 5;
optional int32 deprecatedI2cAddress = 5 [deprecated = true];
optional int32 deprecatedI2cSpeed = 6 [deprecated = true];
}
@ -638,7 +661,7 @@ message WiiOptions
}
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
optional int32 deprecatedI2cSDAPin = 3 [deprecated = true];
optional int32 deprecatedI2cSCLPin = 4 [deprecated = true];
optional int32 deprecatedI2cSpeed = 5 [deprecated = true];
@ -660,6 +683,9 @@ message KeyboardHostOptions
optional int32 deprecatedPinDplus = 2 [deprecated = true];
optional KeyboardMapping mapping = 3;
optional int32 deprecatedPin5V = 4 [deprecated = true];
optional uint32 mouseLeft = 5;
optional uint32 mouseMiddle = 6;
optional uint32 mouseRight = 7;
}
message FocusModeOptions
@ -732,17 +758,43 @@ message RotaryOptions
message PCF8575Options
{
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
repeated GpioMappingInfo pins = 3 [(nanopb).max_count = 16];
}
message DRV8833RumbleOptions
{
optional bool enabled = 1;
optional int32 leftMotorPin = 2;
optional int32 rightMotorPin = 3;
optional int32 motorSleepPin = 4;
optional uint32 pwmFrequency = 5;
optional float dutyMin = 6;
optional float dutyMax = 7;
}
message ReactiveLEDInfo
{
optional int32 pin = 1;
optional GpioAction action = 2;
optional ReactiveLEDMode modeDown = 3;
optional ReactiveLEDMode modeUp = 4;
}
message ReactiveLEDOptions
{
optional bool enabled = 1;
repeated ReactiveLEDInfo leds = 2 [(nanopb).max_count = 10];
}
message AddonOptions
{
optional BootselButtonOptions bootselButtonOptions = 1;
optional OnBoardLedOptions onBoardLedOptions = 2;
optional AnalogOptions analogOptions = 3;
optional TurboOptions turboOptions = 4;
optional SliderOptions sliderOptions = 5;
optional SliderOptions deprecatedSliderOptions = 5;
optional ReverseOptions reverseOptions = 6;
optional AnalogADS1219Options analogADS1219Options = 7;
optional DualDirectionalOptions dualDirectionalOptions = 8;
@ -763,6 +815,8 @@ message AddonOptions
optional AnalogADS1256Options analogADS1256Options = 23;
optional RotaryOptions rotaryOptions = 24;
optional PCF8575Options pcf8575Options = 25;
optional DRV8833RumbleOptions drv8833RumbleOptions = 26;
optional ReactiveLEDOptions reactiveLEDOptions = 27;
}
message MigrationHistory
@ -770,6 +824,7 @@ message MigrationHistory
optional bool hotkeysMigrated = 1 [default = false];
optional bool gpioMappingsMigrated = 2 [default = false];
optional bool buttonProfilesMigrated = 3 [default = false];
optional bool profileEnabledFlagsMigrated = 4 [default = false];
}
message Config

File diff suppressed because one or more lines are too long

View File

@ -39,6 +39,7 @@ enum ButtonLayout
BUTTON_LAYOUT_6GAWD_A = 30;
BUTTON_LAYOUT_6GAWD_ALLBUTTON_A = 31;
BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_A = 32;
BUTTON_LAYOUT_STICKLESS_R16 = 33;
}
enum ButtonLayoutRight
@ -82,6 +83,7 @@ enum ButtonLayoutRight
BUTTON_LAYOUT_6GAWD_B = 34;
BUTTON_LAYOUT_6GAWD_ALLBUTTON_B = 35;
BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_B = 36;
BUTTON_LAYOUT_STICKLESS_R16B = 37;
}
enum SplashMode
@ -122,7 +124,7 @@ enum InputMode
INPUT_MODE_XINPUT = 0;
INPUT_MODE_SWITCH = 1;
INPUT_MODE_HID = 2;
INPUT_MODE_PS3 = 2;
INPUT_MODE_KEYBOARD = 3;
INPUT_MODE_PS4 = 4;
INPUT_MODE_XBONE = 5;
@ -134,6 +136,7 @@ enum InputMode
INPUT_MODE_PSCLASSIC = 11;
INPUT_MODE_XBOXORIGINAL = 12;
INPUT_MODE_PS5 = 13;
INPUT_MODE_GENERIC = 14;
INPUT_MODE_CONFIG = 255;
}
@ -225,6 +228,21 @@ enum GpioAction
BUTTON_PRESS_MACRO_4 = 37;
BUTTON_PRESS_MACRO_5 = 38;
BUTTON_PRESS_MACRO_6 = 39;
CUSTOM_BUTTON_COMBO = 40;
BUTTON_PRESS_A3 = 41;
BUTTON_PRESS_A4 = 42;
BUTTON_PRESS_E1 = 43;
BUTTON_PRESS_E2 = 44;
BUTTON_PRESS_E3 = 45;
BUTTON_PRESS_E4 = 46;
BUTTON_PRESS_E5 = 47;
BUTTON_PRESS_E6 = 48;
BUTTON_PRESS_E7 = 49;
BUTTON_PRESS_E8 = 50;
BUTTON_PRESS_E9 = 51;
BUTTON_PRESS_E10 = 52;
BUTTON_PRESS_E11 = 53;
BUTTON_PRESS_E12 = 54;
}
enum GpioDirection
@ -275,6 +293,13 @@ enum GamepadHotkey
HOTKEY_A1_BUTTON = 33;
HOTKEY_A2_BUTTON = 34;
HOTKEY_NEXT_PROFILE = 35;
HOTKEY_A3_BUTTON = 36;
HOTKEY_A4_BUTTON = 37;
HOTKEY_DPAD_UP = 38;
HOTKEY_DPAD_DOWN = 39;
HOTKEY_DPAD_LEFT = 40;
HOTKEY_DPAD_RIGHT = 41;
HOTKEY_PREVIOUS_PROFILE = 42;
}
// This has to be kept in sync with LEDFormat in NeoPico.hpp
@ -380,3 +405,21 @@ enum RotaryEncoderPinMode
ENCODER_MODE_DPAD_X = 7;
ENCODER_MODE_DPAD_Y = 8;
};
enum ReactiveLEDMode
{
option (nanopb_enumopt).long_names = false;
REACTIVE_LED_STATIC_OFF = 0;
REACTIVE_LED_STATIC_ON = 1;
REACTIVE_LED_FADE_IN = 2;
REACTIVE_LED_FADE_OUT = 3;
};
enum PS4ControllerIDMode
{
option (nanopb_enumopt).long_names = false;
PS4_ID_CONSOLE = 0;
PS4_ID_EMULATION = 1;
};

File diff suppressed because one or more lines are too long

View File

@ -1,39 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: nanopb.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnanopb.proto\x1a google/protobuf/descriptor.proto\"\xc4\x07\n\rNanoPBOptions\x12\x10\n\x08max_size\x18\x01 \x01(\x05\x12\x12\n\nmax_length\x18\x0e \x01(\x05\x12\x11\n\tmax_count\x18\x02 \x01(\x05\x12&\n\x08int_size\x18\x07 \x01(\x0e\x32\x08.IntSize:\nIS_DEFAULT\x12$\n\x04type\x18\x03 \x01(\x0e\x32\n.FieldType:\nFT_DEFAULT\x12\x18\n\nlong_names\x18\x04 \x01(\x08:\x04true\x12\x1c\n\rpacked_struct\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0bpacked_enum\x18\n \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0cskip_message\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x18\n\tno_unions\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\r\n\x05msgid\x18\t \x01(\r\x12\x1e\n\x0f\x61nonymous_oneof\x18\x0b \x01(\x08:\x05\x66\x61lse\x12\x15\n\x06proto3\x18\x0c \x01(\x08:\x05\x66\x61lse\x12#\n\x14proto3_singular_msgs\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x65num_to_string\x18\r \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0c\x66ixed_length\x18\x0f \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0b\x66ixed_count\x18\x10 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x0fsubmsg_callback\x18\x16 \x01(\x08:\x05\x66\x61lse\x12/\n\x0cmangle_names\x18\x11 \x01(\x0e\x32\x11.TypenameMangling:\x06M_NONE\x12(\n\x11\x63\x61llback_datatype\x18\x12 \x01(\t:\rpb_callback_t\x12\x34\n\x11\x63\x61llback_function\x18\x13 \x01(\t:\x19pb_default_field_callback\x12\x30\n\x0e\x64\x65scriptorsize\x18\x14 \x01(\x0e\x32\x0f.DescriptorSize:\x07\x44S_AUTO\x12\x1a\n\x0b\x64\x65\x66\x61ult_has\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x0f\n\x07include\x18\x18 \x03(\t\x12\x0f\n\x07\x65xclude\x18\x1a \x03(\t\x12\x0f\n\x07package\x18\x19 \x01(\t\x12\x41\n\rtype_override\x18\x1b \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.Type\x12\x19\n\x0bsort_by_tag\x18\x1c \x01(\x08:\x04true\x12.\n\rfallback_type\x18\x1d \x01(\x0e\x32\n.FieldType:\x0b\x46T_CALLBACK\x12\x1e\n\x0f\x64isallow_export\x18\x1e \x01(\x08:\x05\x66\x61lse*i\n\tFieldType\x12\x0e\n\nFT_DEFAULT\x10\x00\x12\x0f\n\x0b\x46T_CALLBACK\x10\x01\x12\x0e\n\nFT_POINTER\x10\x04\x12\r\n\tFT_STATIC\x10\x02\x12\r\n\tFT_IGNORE\x10\x03\x12\r\n\tFT_INLINE\x10\x05*D\n\x07IntSize\x12\x0e\n\nIS_DEFAULT\x10\x00\x12\x08\n\x04IS_8\x10\x08\x12\t\n\x05IS_16\x10\x10\x12\t\n\x05IS_32\x10 \x12\t\n\x05IS_64\x10@*Z\n\x10TypenameMangling\x12\n\n\x06M_NONE\x10\x00\x12\x13\n\x0fM_STRIP_PACKAGE\x10\x01\x12\r\n\tM_FLATTEN\x10\x02\x12\x16\n\x12M_PACKAGE_INITIALS\x10\x03*E\n\x0e\x44\x65scriptorSize\x12\x0b\n\x07\x44S_AUTO\x10\x00\x12\x08\n\x04\x44S_1\x10\x01\x12\x08\n\x04\x44S_2\x10\x02\x12\x08\n\x04\x44S_4\x10\x04\x12\x08\n\x04\x44S_8\x10\x08:E\n\x0enanopb_fileopt\x12\x1c.google.protobuf.FileOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:G\n\rnanopb_msgopt\x12\x1f.google.protobuf.MessageOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:E\n\x0enanopb_enumopt\x12\x1c.google.protobuf.EnumOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:>\n\x06nanopb\x12\x1d.google.protobuf.FieldOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptionsB\x1a\n\x18\x66i.kapsi.koti.jpa.nanopb')
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nanopb_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:
google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(nanopb_fileopt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(nanopb_msgopt)
google_dot_protobuf_dot_descriptor__pb2.EnumOptions.RegisterExtension(nanopb_enumopt)
google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(nanopb)
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\030fi.kapsi.koti.jpa.nanopb'
_FIELDTYPE._serialized_start=1017
_FIELDTYPE._serialized_end=1122
_INTSIZE._serialized_start=1124
_INTSIZE._serialized_end=1192
_TYPENAMEMANGLING._serialized_start=1194
_TYPENAMEMANGLING._serialized_end=1284
_DESCRIPTORSIZE._serialized_start=1286
_DESCRIPTORSIZE._serialized_end=1355
_NANOPBOPTIONS._serialized_start=51
_NANOPBOPTIONS._serialized_end=1015
# @@protoc_insertion_point(module_scope)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,39 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: nanopb.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cnanopb.proto\x1a google/protobuf/descriptor.proto\"\xc4\x07\n\rNanoPBOptions\x12\x10\n\x08max_size\x18\x01 \x01(\x05\x12\x12\n\nmax_length\x18\x0e \x01(\x05\x12\x11\n\tmax_count\x18\x02 \x01(\x05\x12&\n\x08int_size\x18\x07 \x01(\x0e\x32\x08.IntSize:\nIS_DEFAULT\x12$\n\x04type\x18\x03 \x01(\x0e\x32\n.FieldType:\nFT_DEFAULT\x12\x18\n\nlong_names\x18\x04 \x01(\x08:\x04true\x12\x1c\n\rpacked_struct\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0bpacked_enum\x18\n \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0cskip_message\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x18\n\tno_unions\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\r\n\x05msgid\x18\t \x01(\r\x12\x1e\n\x0f\x61nonymous_oneof\x18\x0b \x01(\x08:\x05\x66\x61lse\x12\x15\n\x06proto3\x18\x0c \x01(\x08:\x05\x66\x61lse\x12#\n\x14proto3_singular_msgs\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x65num_to_string\x18\r \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x0c\x66ixed_length\x18\x0f \x01(\x08:\x05\x66\x61lse\x12\x1a\n\x0b\x66ixed_count\x18\x10 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x0fsubmsg_callback\x18\x16 \x01(\x08:\x05\x66\x61lse\x12/\n\x0cmangle_names\x18\x11 \x01(\x0e\x32\x11.TypenameMangling:\x06M_NONE\x12(\n\x11\x63\x61llback_datatype\x18\x12 \x01(\t:\rpb_callback_t\x12\x34\n\x11\x63\x61llback_function\x18\x13 \x01(\t:\x19pb_default_field_callback\x12\x30\n\x0e\x64\x65scriptorsize\x18\x14 \x01(\x0e\x32\x0f.DescriptorSize:\x07\x44S_AUTO\x12\x1a\n\x0b\x64\x65\x66\x61ult_has\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x0f\n\x07include\x18\x18 \x03(\t\x12\x0f\n\x07\x65xclude\x18\x1a \x03(\t\x12\x0f\n\x07package\x18\x19 \x01(\t\x12\x41\n\rtype_override\x18\x1b \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.Type\x12\x19\n\x0bsort_by_tag\x18\x1c \x01(\x08:\x04true\x12.\n\rfallback_type\x18\x1d \x01(\x0e\x32\n.FieldType:\x0b\x46T_CALLBACK\x12\x1e\n\x0f\x64isallow_export\x18\x1e \x01(\x08:\x05\x66\x61lse*i\n\tFieldType\x12\x0e\n\nFT_DEFAULT\x10\x00\x12\x0f\n\x0b\x46T_CALLBACK\x10\x01\x12\x0e\n\nFT_POINTER\x10\x04\x12\r\n\tFT_STATIC\x10\x02\x12\r\n\tFT_IGNORE\x10\x03\x12\r\n\tFT_INLINE\x10\x05*D\n\x07IntSize\x12\x0e\n\nIS_DEFAULT\x10\x00\x12\x08\n\x04IS_8\x10\x08\x12\t\n\x05IS_16\x10\x10\x12\t\n\x05IS_32\x10 \x12\t\n\x05IS_64\x10@*Z\n\x10TypenameMangling\x12\n\n\x06M_NONE\x10\x00\x12\x13\n\x0fM_STRIP_PACKAGE\x10\x01\x12\r\n\tM_FLATTEN\x10\x02\x12\x16\n\x12M_PACKAGE_INITIALS\x10\x03*E\n\x0e\x44\x65scriptorSize\x12\x0b\n\x07\x44S_AUTO\x10\x00\x12\x08\n\x04\x44S_1\x10\x01\x12\x08\n\x04\x44S_2\x10\x02\x12\x08\n\x04\x44S_4\x10\x04\x12\x08\n\x04\x44S_8\x10\x08:E\n\x0enanopb_fileopt\x12\x1c.google.protobuf.FileOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:G\n\rnanopb_msgopt\x12\x1f.google.protobuf.MessageOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:E\n\x0enanopb_enumopt\x12\x1c.google.protobuf.EnumOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptions:>\n\x06nanopb\x12\x1d.google.protobuf.FieldOptions\x18\xf2\x07 \x01(\x0b\x32\x0e.NanoPBOptionsB\x1a\n\x18\x66i.kapsi.koti.jpa.nanopb')
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'nanopb_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:
google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(nanopb_fileopt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(nanopb_msgopt)
google_dot_protobuf_dot_descriptor__pb2.EnumOptions.RegisterExtension(nanopb_enumopt)
google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(nanopb)
DESCRIPTOR._options = None
DESCRIPTOR._serialized_options = b'\n\030fi.kapsi.koti.jpa.nanopb'
_FIELDTYPE._serialized_start=1017
_FIELDTYPE._serialized_end=1122
_INTSIZE._serialized_start=1124
_INTSIZE._serialized_end=1192
_TYPENAMEMANGLING._serialized_start=1194
_TYPENAMEMANGLING._serialized_end=1284
_DESCRIPTORSIZE._serialized_start=1286
_DESCRIPTORSIZE._serialized_end=1355
_NANOPBOPTIONS._serialized_start=51
_NANOPBOPTIONS._serialized_end=1015
# @@protoc_insertion_point(module_scope)

View File

@ -28,6 +28,7 @@ message GamepadOptions
optional InputModeAuthType ps4AuthType = 21;
optional InputModeAuthType ps5AuthType = 22;
optional InputModeAuthType xinputAuthType = 23;
optional PS4ControllerIDMode ps4ControllerIDMode = 24;
}
message KeyboardMapping
@ -50,6 +51,21 @@ message KeyboardMapping
optional uint32 keyButtonR3 = 16;
optional uint32 keyButtonA1 = 17;
optional uint32 keyButtonA2 = 18;
optional uint32 keyButtonA3 = 19;
optional uint32 keyButtonA4 = 20;
optional uint32 keyButtonE1 = 21;
optional uint32 keyButtonE2 = 22;
optional uint32 keyButtonE3 = 23;
optional uint32 keyButtonE4 = 24;
optional uint32 keyButtonE5 = 25;
optional uint32 keyButtonE6 = 26;
optional uint32 keyButtonE7 = 27;
optional uint32 keyButtonE8 = 28;
optional uint32 keyButtonE9 = 29;
optional uint32 keyButtonE10 = 30;
optional uint32 keyButtonE11 = 31;
optional uint32 keyButtonE12 = 32;
}
message HotkeyEntry
@ -169,11 +185,15 @@ message GpioMappingInfo
{
optional GpioAction action = 1;
optional GpioDirection direction = 2;
optional uint32 customDpadMask = 3;
optional uint32 customButtonMask = 4;
}
message GpioMappings
{
repeated GpioMappingInfo pins = 1 [(nanopb).max_count = 30];
optional string profileLabel = 2 [(nanopb).max_length = 16];
optional bool enabled = 3 [default = false];
}
@ -204,10 +224,10 @@ message DisplayOptions
{
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
optional int32 deprecatedI2cSDAPin = 3 [deprecated = true];
optional int32 deprecatedI2cSCLPin = 4 [deprecated = true];
optional int32 i2cAddress = 5;
optional int32 deprecatedI2cAddress = 5 [deprecated = true];
optional int32 deprecatedI2cSpeed = 6 [deprecated = true];
optional ButtonLayout buttonLayout = 7;
@ -349,6 +369,9 @@ message AnalogOptions
optional InvertMode analogAdc2Invert = 11;
optional bool auto_calibrate = 12;
optional uint32 outer_deadzone = 13;
optional bool analog_smoothing = 14;
optional float smoothing_factor = 15;
optional uint32 analog_error = 16;
}
message TurboOptions
@ -384,7 +407,7 @@ message SliderOptions
optional int32 deprecatedPinSliderTwo = 3 [deprecated = true];
optional DpadMode deprecatedModeOne = 4 [deprecated = true];
optional DpadMode deprecatedModeTwo = 5 [deprecated = true];
optional DpadMode modeDefault = 6;
optional DpadMode deprecatedModeDefault = 6;
}
message SOCDSliderOptions
@ -416,10 +439,10 @@ message AnalogADS1219Options
{
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
optional int32 deprecatedI2cSDAPin = 3 [deprecated = true];
optional int32 deprecatedI2cSCLPin = 4 [deprecated = true];
optional int32 i2cAddress = 5;
optional int32 deprecatedI2cAddress = 5 [deprecated = true];
optional int32 deprecatedI2cSpeed = 6 [deprecated = true];
}
@ -638,7 +661,7 @@ message WiiOptions
}
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
optional int32 deprecatedI2cSDAPin = 3 [deprecated = true];
optional int32 deprecatedI2cSCLPin = 4 [deprecated = true];
optional int32 deprecatedI2cSpeed = 5 [deprecated = true];
@ -660,6 +683,9 @@ message KeyboardHostOptions
optional int32 deprecatedPinDplus = 2 [deprecated = true];
optional KeyboardMapping mapping = 3;
optional int32 deprecatedPin5V = 4 [deprecated = true];
optional uint32 mouseLeft = 5;
optional uint32 mouseMiddle = 6;
optional uint32 mouseRight = 7;
}
message FocusModeOptions
@ -732,17 +758,43 @@ message RotaryOptions
message PCF8575Options
{
optional bool enabled = 1;
optional int32 i2cBlock = 2;
optional int32 deprecatedI2cBlock = 2 [deprecated = true];
repeated GpioMappingInfo pins = 3 [(nanopb).max_count = 16];
}
message DRV8833RumbleOptions
{
optional bool enabled = 1;
optional int32 leftMotorPin = 2;
optional int32 rightMotorPin = 3;
optional int32 motorSleepPin = 4;
optional uint32 pwmFrequency = 5;
optional float dutyMin = 6;
optional float dutyMax = 7;
}
message ReactiveLEDInfo
{
optional int32 pin = 1;
optional GpioAction action = 2;
optional ReactiveLEDMode modeDown = 3;
optional ReactiveLEDMode modeUp = 4;
}
message ReactiveLEDOptions
{
optional bool enabled = 1;
repeated ReactiveLEDInfo leds = 2 [(nanopb).max_count = 10];
}
message AddonOptions
{
optional BootselButtonOptions bootselButtonOptions = 1;
optional OnBoardLedOptions onBoardLedOptions = 2;
optional AnalogOptions analogOptions = 3;
optional TurboOptions turboOptions = 4;
optional SliderOptions sliderOptions = 5;
optional SliderOptions deprecatedSliderOptions = 5;
optional ReverseOptions reverseOptions = 6;
optional AnalogADS1219Options analogADS1219Options = 7;
optional DualDirectionalOptions dualDirectionalOptions = 8;
@ -763,6 +815,8 @@ message AddonOptions
optional AnalogADS1256Options analogADS1256Options = 23;
optional RotaryOptions rotaryOptions = 24;
optional PCF8575Options pcf8575Options = 25;
optional DRV8833RumbleOptions drv8833RumbleOptions = 26;
optional ReactiveLEDOptions reactiveLEDOptions = 27;
}
message MigrationHistory
@ -770,6 +824,7 @@ message MigrationHistory
optional bool hotkeysMigrated = 1 [default = false];
optional bool gpioMappingsMigrated = 2 [default = false];
optional bool buttonProfilesMigrated = 3 [default = false];
optional bool profileEnabledFlagsMigrated = 4 [default = false];
}
message Config

View File

@ -39,6 +39,7 @@ enum ButtonLayout
BUTTON_LAYOUT_6GAWD_A = 30;
BUTTON_LAYOUT_6GAWD_ALLBUTTON_A = 31;
BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_A = 32;
BUTTON_LAYOUT_STICKLESS_R16 = 33;
}
enum ButtonLayoutRight
@ -82,6 +83,7 @@ enum ButtonLayoutRight
BUTTON_LAYOUT_6GAWD_B = 34;
BUTTON_LAYOUT_6GAWD_ALLBUTTON_B = 35;
BUTTON_LAYOUT_6GAWD_ALLBUTTONPLUS_B = 36;
BUTTON_LAYOUT_STICKLESS_R16B = 37;
}
enum SplashMode
@ -122,7 +124,7 @@ enum InputMode
INPUT_MODE_XINPUT = 0;
INPUT_MODE_SWITCH = 1;
INPUT_MODE_HID = 2;
INPUT_MODE_PS3 = 2;
INPUT_MODE_KEYBOARD = 3;
INPUT_MODE_PS4 = 4;
INPUT_MODE_XBONE = 5;
@ -134,6 +136,7 @@ enum InputMode
INPUT_MODE_PSCLASSIC = 11;
INPUT_MODE_XBOXORIGINAL = 12;
INPUT_MODE_PS5 = 13;
INPUT_MODE_GENERIC = 14;
INPUT_MODE_CONFIG = 255;
}
@ -225,6 +228,21 @@ enum GpioAction
BUTTON_PRESS_MACRO_4 = 37;
BUTTON_PRESS_MACRO_5 = 38;
BUTTON_PRESS_MACRO_6 = 39;
CUSTOM_BUTTON_COMBO = 40;
BUTTON_PRESS_A3 = 41;
BUTTON_PRESS_A4 = 42;
BUTTON_PRESS_E1 = 43;
BUTTON_PRESS_E2 = 44;
BUTTON_PRESS_E3 = 45;
BUTTON_PRESS_E4 = 46;
BUTTON_PRESS_E5 = 47;
BUTTON_PRESS_E6 = 48;
BUTTON_PRESS_E7 = 49;
BUTTON_PRESS_E8 = 50;
BUTTON_PRESS_E9 = 51;
BUTTON_PRESS_E10 = 52;
BUTTON_PRESS_E11 = 53;
BUTTON_PRESS_E12 = 54;
}
enum GpioDirection
@ -275,6 +293,13 @@ enum GamepadHotkey
HOTKEY_A1_BUTTON = 33;
HOTKEY_A2_BUTTON = 34;
HOTKEY_NEXT_PROFILE = 35;
HOTKEY_A3_BUTTON = 36;
HOTKEY_A4_BUTTON = 37;
HOTKEY_DPAD_UP = 38;
HOTKEY_DPAD_DOWN = 39;
HOTKEY_DPAD_LEFT = 40;
HOTKEY_DPAD_RIGHT = 41;
HOTKEY_PREVIOUS_PROFILE = 42;
}
// This has to be kept in sync with LEDFormat in NeoPico.hpp
@ -380,3 +405,21 @@ enum RotaryEncoderPinMode
ENCODER_MODE_DPAD_X = 7;
ENCODER_MODE_DPAD_Y = 8;
};
enum ReactiveLEDMode
{
option (nanopb_enumopt).long_names = false;
REACTIVE_LED_STATIC_OFF = 0;
REACTIVE_LED_STATIC_ON = 1;
REACTIVE_LED_FADE_IN = 2;
REACTIVE_LED_FADE_OUT = 3;
};
enum PS4ControllerIDMode
{
option (nanopb_enumopt).long_names = false;
PS4_ID_CONSOLE = 0;
PS4_ID_EMULATION = 1;
};

View File

@ -1,7 +1,7 @@
{
"boardVersion": "v0.7.6-15-g71f4512",
"gamepadOptions": {
"inputMode": "INPUT_MODE_HID",
"inputMode": "INPUT_MODE_PS3",
"dpadMode": "DPAD_MODE_DIGITAL",
"socdMode": "SOCD_MODE_SECOND_INPUT_PRIORITY",
"invertXAxis": false,
@ -163,10 +163,10 @@
},
"displayOptions": {
"enabled": false,
"i2cBlock": 0,
"deprecatedI2cBlock": 0,
"deprecatedI2cSDAPin": 0,
"deprecatedI2cSCLPin": 1,
"i2cAddress": 60,
"deprecatedI2cAddress": 60,
"deprecatedI2cSpeed": 400000,
"buttonLayout": "BUTTON_LAYOUT_STICK",
"buttonLayoutRight": "BUTTON_LAYOUT_VEWLIX",
@ -327,13 +327,13 @@
"shmupBtnMask4": 0,
"shmupMixMode": "SHMUP_MIX_MODE_TURBO_PRIORITY"
},
"sliderOptions": {
"deprecatedSliderOptions": {
"enabled": false,
"deprecatedPinSliderOne": 0,
"deprecatedPinSliderTwo": 0,
"deprecatedModeOne": "DPAD_MODE_DIGITAL",
"deprecatedModeTwo": "DPAD_MODE_DIGITAL",
"modeDefault": "DPAD_MODE_DIGITAL"
"deprecatedModeDefault": "DPAD_MODE_DIGITAL"
},
"reverseOptions": {
"enabled": false,
@ -346,10 +346,10 @@
},
"analogADS1219Options": {
"enabled": false,
"i2cBlock": 0,
"deprecatedI2cBlock": 0,
"deprecatedI2cSDAPin": -1,
"deprecatedI2cSCLPin": -1,
"i2cAddress": 64,
"deprecatedI2cAddress": 64,
"deprecatedI2cSpeed": 400000
},
"dualDirectionalOptions": {
@ -392,7 +392,7 @@
},
"wiiOptions": {
"enabled": false,
"i2cBlock": 0,
"deprecatedI2cBlock": 0,
"deprecatedI2cSDAPin": -1,
"deprecatedI2cSCLPin": -1,
"deprecatedI2cSpeed": 400000,

View File

@ -25,7 +25,7 @@ logger = logging.getLogger(__name__)
@decorator
def with_pb2s(test, *args, **kwargs):
"""Wrap a test with precompiled pb2 files on the path."""
proto_path = os.path.join(HERE, 'test-files', 'pb2-files')
proto_path = os.path.join(HERE, 'test-files')
sys.path.append(proto_path)
test(*args, **kwargs)

View File

@ -18,7 +18,7 @@ HERE = os.path.dirname(os.path.abspath(__file__))
@decorator
def with_pb2s(test, *args, **kwargs):
"""Wrap a test with precompiled pb2 files on the path."""
proto_path = os.path.join(HERE, 'test-files', 'pb2-files')
proto_path = os.path.join(HERE, 'test-files')
sys.path.append(proto_path)
test(*args, **kwargs)

View File

@ -21,7 +21,7 @@ HERE = os.path.dirname(os.path.abspath(__file__))
@decorator
async def with_pb2s(test, *args, **kwargs):
"""Wrap a test with precompiled pb2 files on the path."""
proto_path = os.path.join(HERE, 'test-files', 'pb2-files')
proto_path = os.path.join(HERE, 'test-files')
sys.path.append(proto_path)
await test(*args, **kwargs)
@ -109,7 +109,7 @@ async def test_simple_edit_via_input_field():
async with app.run_test() as pilot:
tree = pilot.app.query_one(Tree)
display_node = tree.root.children[5]
i2cspeed_node = display_node.children[4]
i2cspeed_node = display_node.children[6]
assert pilot.app.config.displayOptions.deprecatedI2cSpeed == 400000
tree.root.expand_all()

View File

@ -36,7 +36,7 @@ def test_get_config_pb2_exception():
def test_get_config_pb2_precompile():
"""Test we can import precompiled protobuf files."""
proto_path = os.path.join(HERE, 'test-files', 'pb2-files')
proto_path = os.path.join(HERE, 'test-files')
sys.path.append(proto_path)
# let grpc tools import the proto files normally

View File

@ -20,7 +20,7 @@ HERE = os.path.dirname(os.path.abspath(__file__))
@decorator
def with_pb2s(test, *args, **kwargs):
"""Wrap a test with precompiled pb2 files on the path."""
proto_path = os.path.join(HERE, 'test-files', 'pb2-files')
proto_path = os.path.join(HERE, 'test-files')
sys.path.append(proto_path)
test(*args, **kwargs)

View File

@ -20,7 +20,7 @@ HERE = os.path.dirname(os.path.abspath(__file__))
@decorator
def with_pb2s(test, *args, **kwargs):
"""Wrap a test with precompiled pb2 files on the path."""
proto_path = os.path.join(HERE, 'test-files', 'pb2-files')
proto_path = os.path.join(HERE, 'test-files')
sys.path.append(proto_path)
test(*args, **kwargs)