Initial commit

This commit is contained in:
admin1
2026-07-14 11:11:36 +08:00
commit 656499cf94
604 changed files with 119518 additions and 0 deletions
@@ -0,0 +1,42 @@
import '../../../core/contracts/player_gestures.dart';
export '../../../core/contracts/player_gestures.dart' show GestureAction;
String gestureActionLabel(GestureAction a) => switch (a) {
GestureAction.none => '无操作',
GestureAction.playPause => '播放/暂停',
GestureAction.fullscreen => '全屏',
GestureAction.toggleControls => '显示/隐藏控制栏',
GestureAction.seekBackward => '后退',
GestureAction.seekForward => '前进',
GestureAction.previousItem => '上一个',
GestureAction.nextItem => '下一个',
GestureAction.exit => '退出',
};
enum GestureKind { leftClick, leftDoubleClick, rightClick, rightDoubleClick }
List<GestureAction> allowedActionsFor(GestureKind kind) {
switch (kind) {
case GestureKind.leftClick:
case GestureKind.rightClick:
return const [
GestureAction.playPause,
GestureAction.toggleControls,
GestureAction.none,
];
case GestureKind.leftDoubleClick:
case GestureKind.rightDoubleClick:
return const [
GestureAction.playPause,
GestureAction.fullscreen,
GestureAction.seekBackward,
GestureAction.seekForward,
GestureAction.previousItem,
GestureAction.nextItem,
GestureAction.exit,
GestureAction.none,
];
}
}
@@ -0,0 +1,35 @@
import 'gesture_action.dart';
class GestureBindings {
final double keyboardHoldLeftSpeed;
final double keyboardHoldRightSpeed;
final GestureAction mouseLeftClickAction;
final GestureAction mouseLeftDoubleClickAction;
final GestureAction mouseRightClickAction;
final GestureAction mouseRightDoubleClickAction;
const GestureBindings({
required this.keyboardHoldLeftSpeed,
required this.keyboardHoldRightSpeed,
required this.mouseLeftClickAction,
required this.mouseLeftDoubleClickAction,
required this.mouseRightClickAction,
required this.mouseRightDoubleClickAction,
});
static const defaults = GestureBindings(
keyboardHoldLeftSpeed: 0.5,
keyboardHoldRightSpeed: 3.0,
mouseLeftClickAction: GestureAction.playPause,
mouseLeftDoubleClickAction: GestureAction.fullscreen,
mouseRightClickAction: GestureAction.toggleControls,
mouseRightDoubleClickAction: GestureAction.none,
);
GestureAction actionFor(GestureKind kind) => switch (kind) {
GestureKind.leftClick => mouseLeftClickAction,
GestureKind.leftDoubleClick => mouseLeftDoubleClickAction,
GestureKind.rightClick => mouseRightClickAction,
GestureKind.rightDoubleClick => mouseRightDoubleClickAction,
};
}