diff --git a/lib/utils/keymap/apps/biketerra.dart b/lib/utils/keymap/apps/biketerra.dart new file mode 100644 index 0000000..98cab0e --- /dev/null +++ b/lib/utils/keymap/apps/biketerra.dart @@ -0,0 +1,49 @@ +import 'package:accessibility/accessibility.dart'; +import 'package:dartx/dartx.dart'; +import 'package:flutter/services.dart'; +import 'package:swift_control/utils/keymap/apps/supported_app.dart'; + +import '../buttons.dart'; +import '../keymap.dart'; + +class Biketerra extends SupportedApp { + Biketerra() + : super( + name: 'Biketerra', + packageName: "biketerra", + keymap: Keymap( + keyPairs: [ + KeyPair( + buttons: ZwiftButton.values.filter((e) => e.action == InGameAction.shiftDown).toList(), + physicalKey: PhysicalKeyboardKey.keyS, + logicalKey: LogicalKeyboardKey.keyS, + ), + KeyPair( + buttons: ZwiftButton.values.filter((e) => e.action == InGameAction.shiftUp).toList(), + physicalKey: PhysicalKeyboardKey.keyW, + logicalKey: LogicalKeyboardKey.keyW, + ), + KeyPair( + buttons: ZwiftButton.values.filter((e) => e.action == InGameAction.navigateRight).toList(), + physicalKey: PhysicalKeyboardKey.arrowRight, + logicalKey: LogicalKeyboardKey.arrowRight, + ), + KeyPair( + buttons: ZwiftButton.values.filter((e) => e.action == InGameAction.navigateLeft).toList(), + physicalKey: PhysicalKeyboardKey.arrowLeft, + logicalKey: LogicalKeyboardKey.arrowLeft, + ), + KeyPair( + buttons: ZwiftButton.values.filter((e) => e.action == InGameAction.toggleUi).toList(), + physicalKey: PhysicalKeyboardKey.keyU, + logicalKey: LogicalKeyboardKey.keyU, + ), + ], + ), + ); +} + +extension WindowSize on WindowEvent { + int get width => right - left; + int get height => bottom - top; +} diff --git a/lib/utils/keymap/apps/supported_app.dart b/lib/utils/keymap/apps/supported_app.dart index 383ca0e..41fd70d 100644 --- a/lib/utils/keymap/apps/supported_app.dart +++ b/lib/utils/keymap/apps/supported_app.dart @@ -1,6 +1,7 @@ import 'dart:ui'; import 'package:accessibility/accessibility.dart'; +import 'package:swift_control/utils/keymap/apps/biketerra.dart'; import 'package:swift_control/utils/keymap/apps/training_peaks.dart'; import '../../single_line_exception.dart'; @@ -27,7 +28,7 @@ abstract class SupportedApp { const SupportedApp({required this.name, required this.packageName, required this.keymap}); - static final List supportedApps = [MyWhoosh(), TrainingPeaks(), CustomApp()]; + static final List supportedApps = [MyWhoosh(), TrainingPeaks(), Biketerra(), CustomApp()]; @override String toString() {