From b8eca61e2012a03d417f4a6d9daa6766a165881c Mon Sep 17 00:00:00 2001 From: niklascfw Date: Sun, 7 Jun 2026 00:35:25 +0200 Subject: [PATCH] Initial commit --- CMakeLists.txt | 145 +++++++ LICENSE | 21 + README.md | 163 +++++++ assets/AppIcon.png | Bin 0 -> 462307 bytes build.sh | 75 ++++ cmake/Info.plist.in | 36 ++ cmake/generate_icns.sh | 34 ++ cmake/libusb_config.h | 39 ++ heziMTP.png | Bin 0 -> 263554 bytes src/main.mm | 14 + src/mtp/MTPOperations.cpp | 333 ++++++++++++++ src/mtp/MTPOperations.hpp | 70 +++ src/mtp/MTPProtocol.hpp | 226 ++++++++++ src/mtp/MTPSession.cpp | 603 ++++++++++++++++++++++++++ src/mtp/MTPSession.hpp | 125 ++++++ src/transfer/TransferEngine.cpp | 180 ++++++++ src/transfer/TransferEngine.hpp | 115 +++++ src/ui/App.hpp | 158 +++++++ src/ui/App.mm | 537 +++++++++++++++++++++++ src/ui/WebUI.hpp | 15 + src/ui/WebUI.mm | 741 ++++++++++++++++++++++++++++++++ src/ui/webroot/app.css | 573 ++++++++++++++++++++++++ src/ui/webroot/app.js | 682 +++++++++++++++++++++++++++++ src/ui/webroot/index.html | 106 +++++ 24 files changed, 4991 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 README.md create mode 100644 assets/AppIcon.png create mode 100755 build.sh create mode 100644 cmake/Info.plist.in create mode 100755 cmake/generate_icns.sh create mode 100644 cmake/libusb_config.h create mode 100644 heziMTP.png create mode 100644 src/main.mm create mode 100644 src/mtp/MTPOperations.cpp create mode 100644 src/mtp/MTPOperations.hpp create mode 100644 src/mtp/MTPProtocol.hpp create mode 100644 src/mtp/MTPSession.cpp create mode 100644 src/mtp/MTPSession.hpp create mode 100644 src/transfer/TransferEngine.cpp create mode 100644 src/transfer/TransferEngine.hpp create mode 100644 src/ui/App.hpp create mode 100644 src/ui/App.mm create mode 100644 src/ui/WebUI.hpp create mode 100644 src/ui/WebUI.mm create mode 100644 src/ui/webroot/app.css create mode 100644 src/ui/webroot/app.js create mode 100644 src/ui/webroot/index.html diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b758826 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,145 @@ +cmake_minimum_required(VERSION 3.25) +project(OmniMTP VERSION 1.0.0 + DESCRIPTION "Nintendo Switch MTP Client for macOS" + LANGUAGES CXX OBJCXX OBJC C +) + +# ─── Language standards ─────────────────────────────────────────────────────── +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_OBJCXX_STANDARD 20) +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + +# ─── macOS targeting ────────────────────────────────────────────────────────── +set(CMAKE_OSX_DEPLOYMENT_TARGET "12.0" CACHE STRING "Minimum macOS version") + +if(NOT CMAKE_OSX_ARCHITECTURES) + set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "Target CPU architectures" FORCE) +endif() + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type" FORCE) +endif() + +include(FetchContent) +set(FETCHCONTENT_QUIET FALSE) + +# ─── libusb (built from source, fully static) ───────────────────────────────── +cmake_policy(PUSH) +cmake_policy(SET CMP0169 OLD) # allow FetchContent_Populate (deprecated in 3.30 but fine) +FetchContent_Declare(libusb_src + GIT_REPOSITORY https://github.com/libusb/libusb.git + GIT_TAG v1.0.27 + GIT_SHALLOW TRUE +) +FetchContent_GetProperties(libusb_src) +if(NOT libusb_src_POPULATED) + FetchContent_Populate(libusb_src) +endif() +cmake_policy(POP) + +# Provide a pre-configured config.h for macOS (avoids autoconf requirement) +configure_file( + "${CMAKE_SOURCE_DIR}/cmake/libusb_config.h" + "${libusb_src_SOURCE_DIR}/config.h" + COPYONLY +) + +add_library(usb_static STATIC + ${libusb_src_SOURCE_DIR}/libusb/core.c + ${libusb_src_SOURCE_DIR}/libusb/descriptor.c + ${libusb_src_SOURCE_DIR}/libusb/hotplug.c + ${libusb_src_SOURCE_DIR}/libusb/io.c + ${libusb_src_SOURCE_DIR}/libusb/sync.c + ${libusb_src_SOURCE_DIR}/libusb/strerror.c + ${libusb_src_SOURCE_DIR}/libusb/os/darwin_usb.c + ${libusb_src_SOURCE_DIR}/libusb/os/events_posix.c + ${libusb_src_SOURCE_DIR}/libusb/os/threads_posix.c +) +target_include_directories(usb_static PUBLIC ${libusb_src_SOURCE_DIR}/libusb) +target_include_directories(usb_static PRIVATE + ${libusb_src_SOURCE_DIR} # config.h lives here + ${libusb_src_SOURCE_DIR}/libusb/os +) +target_compile_definitions(usb_static PRIVATE HAVE_CONFIG_H) +target_compile_options(usb_static PRIVATE -Wno-deprecated-declarations -Wno-error) + +find_library(FW_IOKIT IOKit REQUIRED) +find_library(FW_COREFOUNDATION CoreFoundation REQUIRED) +find_library(FW_SECURITY Security REQUIRED) +target_link_libraries(usb_static PUBLIC + ${FW_IOKIT} ${FW_COREFOUNDATION} ${FW_SECURITY} +) + +# ─── System frameworks ──────────────────────────────────────────────────────── +find_library(FW_METAL Metal REQUIRED) +find_library(FW_APPKIT AppKit REQUIRED) +find_library(FW_FOUNDATION Foundation REQUIRED) +find_library(FW_WEBKIT WebKit REQUIRED) +find_library(FW_CORETEXT CoreText REQUIRED) + +# ─── Application ───────────────────────────────────────────────────────────── +file(GLOB_RECURSE APP_SOURCES CONFIGURE_DEPENDS + "${CMAKE_SOURCE_DIR}/src/*.cpp" + "${CMAKE_SOURCE_DIR}/src/*.mm" +) + +# webroot resource files — copied into the bundle at Resources/webroot/ +file(GLOB WEBROOT_FILES "src/ui/webroot/*") +foreach(WF ${WEBROOT_FILES}) + set_source_files_properties(${WF} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/webroot) +endforeach() + +# App icon — generated from assets/AppIcon.png at build time +set(APP_ICON_SOURCE "${CMAKE_SOURCE_DIR}/assets/AppIcon.png") +set(APP_ICON_ICNS "${CMAKE_CURRENT_BINARY_DIR}/AppIcon.icns") +add_custom_command( + OUTPUT ${APP_ICON_ICNS} + COMMAND "${CMAKE_SOURCE_DIR}/cmake/generate_icns.sh" + "${APP_ICON_SOURCE}" "${APP_ICON_ICNS}" + DEPENDS "${APP_ICON_SOURCE}" "${CMAKE_SOURCE_DIR}/cmake/generate_icns.sh" + COMMENT "Generating AppIcon.icns" + VERBATIM +) + +add_executable(OmniMTP MACOSX_BUNDLE ${APP_SOURCES} ${WEBROOT_FILES} ${APP_ICON_ICNS}) + +target_include_directories(OmniMTP PRIVATE + ${CMAKE_SOURCE_DIR}/src + ${libusb_src_SOURCE_DIR}/libusb +) +target_link_libraries(OmniMTP PRIVATE + usb_static + ${FW_APPKIT} ${FW_FOUNDATION} ${FW_METAL} ${FW_WEBKIT} ${FW_CORETEXT} +) + +target_compile_options(OmniMTP PRIVATE + -Wall -Wextra + $<$:-Wpedantic> + $<$:-fobjc-arc -Wpedantic> +) + +set_target_properties(OmniMTP PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER "com.omni.OmniMTP" + MACOSX_BUNDLE_BUNDLE_NAME "OmniMTP" + MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}" + MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}" + MACOSX_BUNDLE_COPYRIGHT "Copyright © 2025 OmniMTP" + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/cmake/Info.plist.in" + MACOSX_BUNDLE_ICON_FILE AppIcon +) + +set_source_files_properties(${APP_ICON_ICNS} PROPERTIES + MACOSX_PACKAGE_LOCATION Resources + GENERATED TRUE +) + +# ─── Status ─────────────────────────────────────────────────────────────────── +message(STATUS "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") +message(STATUS " OmniMTP — Nintendo Switch MTP Client") +message(STATUS " macOS target : ${CMAKE_OSX_DEPLOYMENT_TARGET}+") +message(STATUS " Architectures: ${CMAKE_OSX_ARCHITECTURES}") +message(STATUS " Build type : ${CMAKE_BUILD_TYPE}") +message(STATUS "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") +message(STATUS "Build: cmake -B build && cmake --build build -j$(sysctl -n hw.logicalcpu)") diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c283c9f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 helzeiah + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..fa91679 --- /dev/null +++ b/README.md @@ -0,0 +1,163 @@ +
+ +

OmniMTP

+ +

Ein schneller (3–4× schneller als direkter microSD-Zugriff), nativer macOS-MTP-Client für die Nintendo Switch.
+Übertrage NSP-, XCI- und NRO-Dateien per USB-C, ohne die microSD-Karte auszubauen.

+ +[![macOS](https://img.shields.io/badge/macOS-12%2B-blue?style=flat-square&logo=apple&logoColor=white)](https://www.apple.com/macos/) +[![License](https://img.shields.io/badge/license-MIT-brightgreen?style=flat-square)](LICENSE) +[![C++20](https://img.shields.io/badge/C%2B%2B-20-orange?style=flat-square&logo=cplusplus&logoColor=white)]() +[![Universal](https://img.shields.io/badge/arch-Apple%20Silicon%20%2B%20Intel-lightgrey?style=flat-square)]() + +
+ +OmniMTP Screenshot + +
+ +--- + +> **Herkunft:** OmniMTP ist eine Weiterentwicklung von [heziMTP](https://github.com/helzeiah/heziMTP), dem ursprünglichen Projekt-Repository. + +## Funktionen + +- **Direkter USB-C-Transfer** — kommuniziert mit DBI oder Sphaira im MTP-Modus über USB, ohne SD-Kartenwechsel +- **Schnell** — USB-3.0-Unterstützung mit adaptiver Chunk-Größe; realistisch 60–150+ MB/s, abhängig von Switch und Kabel +- **Zwei-Panel-Dateibrowser** — Mac-Dateisystem links, Switch rechts; Dateien per Drag & Drop zwischen beiden Seiten verschieben +- **Mehrfachübertragung** — mehrere Dateien mit Cmd+Klick oder Shift+Klick auswählen und gemeinsam ziehen +- **Große Dateien** — Dateien >4 GB werden korrekt unterstützt +- **Automatische Geräteerkennung** — einstecken und loslegen, kein manuelles Scannen nötig +- **Modernes macOS-UI** — natives Dark Mode, SF Pro, macOS-12+-Fensterdesign +- **Keine Abhängigkeiten** — libusb ist statisch eingebunden; nichts extra installieren + +## Voraussetzungen + +- **Mac:** macOS 12 Monterey oder neuer (Universal Binary — Apple Silicon + Intel) +- **Switch:** Custom Firmware mit [DBI](https://github.com/rashevskyv/dbi) oder [Sphaira](https://github.com/ITotalJustice/sphaira) +- **Kabel:** ein Kabel mit Datenübertragung (kein reines Ladekabel) + +## Erste Schritte + +### 1. Switch vorbereiten + +In DBI: **Tools → MTP Responder** + +In Sphaira: **Tools → MTP** + +USB-C-Kabel anschließen und den Bildschirm offen lassen + +### 2. Aus dem Quellcode bauen + +```bash +git clone https://github.com/helzeiah/OmniMTP.git +cd OmniMTP +./build.sh # Release-Build +./build.sh run # bauen + starten +``` + +Oder manuell: + +```bash +cmake -B build -DCMAKE_BUILD_TYPE=Release +cmake --build build -j$(sysctl -n hw.logicalcpu) +open build/OmniMTP.app +``` + +**Build-Abhängigkeiten** (werden von CMake automatisch geladen): + +- libusb 1.0.27 +- keine weiteren externen Abhängigkeiten + +### 3. Dateien übertragen + +- **Links** den Mac durchsuchen, **rechts** die Switch +- **Ziehen:** links → rechts = hochladen, rechts → links = herunterladen +- **Doppelklick** auf eine lokale Datei lädt sie bei aktiver Verbindung direkt hoch +- **Rechtsklick** für Kontextmenü (Auf Switch hochladen / Auf Mac laden / Löschen) +- **Add Files** öffnet einen nativen Datei-Dialog für Mehrfach-Uploads + +## Wie schnell ist es? + +| Verbindung | Typische Geschwindigkeit | +| ---------------------------------------- | ------------------------ | +| USB 2.0 | 25–45 MB/s | +| USB 3.0 (Switch OLED / direktes USB-C 3.x) | 60–150+ MB/s | + +Die Geschwindigkeit hängt von der microSD-Schreibgeschwindigkeit (Uploads) und der USB-Verbindung ab. Eine schnelle UHS-I-Karte plus USB-3.0-Kabel bringt das meiste raus. + +## Hinweis zur Installation (macOS Gatekeeper) + +Da OmniMTP nicht mit einem Apple-Developer-Zertifikat notarisiert ist, zeigt macOS beim ersten Start eine Warnung **„Unbekannter Entwickler“**. Das ist bei Open-Source-Apps außerhalb des App Store normal. + +**So öffnest du die App:** + +**Option A — Rechtsklick (am einfachsten)** +Rechtsklick (oder Control-Klick) auf `OmniMTP.app` → **Öffnen** → im Dialog erneut **Öffnen**. Das musst du nur einmal machen. + +**Option B — Terminal** +```bash +xattr -r -d com.apple.quarantine /Applications/OmniMTP.app +# oder wo auch immer du die App abgelegt hast: +xattr -r -d com.apple.quarantine ~/Downloads/OmniMTP.app +``` + +**Option C — Systemeinstellungen** +Systemeinstellungen → Datenschutz & Sicherheit → Bereich Sicherheit → **Trotzdem öffnen**. + +--- + +## Fehlerbehebung + +**Die App erkennt meine Switch nicht** + +- Prüfe, ob DBI oder Sphaira im MTP-Modus läuft (nicht nur im Home-Menü) +- Probiere ein anderes USB-C-Kabel — viele Ladekabel haben keine Datenleitungen +- Klicke in der App auf **Scan** + +**Fehler „Operation not supported“** + +- DBI/Sphaira auf eine aktuelle Version aktualisieren +- Sphaira: sicherstellen, dass du im Menü **MTP Install** bist + +## Geplante Erweiterungen + +- **Breitere MTP-Geräteunterstützung** — die MTP/USB-Schicht ist geräteunabhängig. Android-Handys, Kameras und andere MTP-Geräte sollten mit kleinen Anpassungen an Erkennung und Protokoll funktionieren +- Ordner-Upload (rekursiv) +- Unterbrochene Übertragungen fortsetzen +- Warteschlange umsortieren +- Dateien auf dem Gerät umbenennen + +## Bauen + +``` +./build.sh # Release (Standard) +./build.sh debug # Debug-Build +./build.sh run # Release + starten +./build.sh clean # Build-Verzeichnisse löschen +``` + +Das Build-System lädt libusb aus dem Quellcode und kompiliert es statisch — kein Homebrew oder Systempakete nötig. + +## Architektur + +``` +src/ +├── main.mm Einstiegspunkt (NSApp + WKWebView) +├── ui/ +│ ├── App.hpp/.mm Backend: Geräteüberwachung, lokale/remote Dateien, Transfers +│ ├── WebUI.hpp/.mm Bridge: WKWebView-Setup + JS↔C++ Message Handler +│ └── webroot/ Frontend: HTML/CSS/JS (ohne Build-Schritt, ohne Frameworks) +├── mtp/ +│ ├── MTPProtocol.hpp MTP-Konstanten, Container-Format, Datenstrukturen +│ ├── MTPSession.* USB/libusb-Transport, Chunked Transfers +│ └── MTPOperations.* High-Level-MTP-Operationen (GetObject, SendObject, …) +└── transfer/ + └── TransferEngine.* Hintergrund-Warteschlange mit Fortschrittsanzeige +``` + +Die UI ist eine WKWebView-basierte HTML/CSS/JS-App, die über native Message Passing mit einem C++20-MTP-Backend spricht. Kein Electron, kein Node, keine externe Runtime — nur AppKit + WebKit + libusb. + +## Lizenz + +MIT — siehe [LICENSE](LICENSE). diff --git a/assets/AppIcon.png b/assets/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5d99e82989ceeb56c428fcf0ee0b7603cd7044d8 GIT binary patch literal 462307 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
-Gg{-Ew9dj3RBr-Uq*UaI_X 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%0Dj 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�Ba@t5ZdpoX@`jLSa`~DA+tnVX`naCry8^MVS@s# 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⪼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 literal 0 HcmV?d00001 diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..2ae70a5 --- /dev/null +++ b/build.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +set -euo pipefail + +# ── OmniMTP build script ────────────────────────────────────────────────────── +# Usage: +# ./build.sh → release build (default) +# ./build.sh debug → debug build +# ./build.sh release → release build +# ./build.sh clean → wipe all build dirs +# ./build.sh run → release build + open the app +# ./build.sh run debug → debug build + open the app + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +JOBS=$(sysctl -n hw.logicalcpu) + +# ── Parse args ──────────────────────────────────────────────────────────────── +MODE="release" +RUN=false + +for arg in "$@"; do + case "$arg" in + debug) MODE="debug" ;; + release) MODE="release" ;; + run) RUN=true ;; + clean) + echo "Cleaning build directories..." + rm -rf "$SCRIPT_DIR/build" "$SCRIPT_DIR/build_debug" "$SCRIPT_DIR/build_release" + echo "Done." + exit 0 + ;; + *) + echo "Unknown argument: $arg" + echo "Usage: $0 [debug|release|clean|run]" + exit 1 + ;; + esac +done + +# ── Resolve build dir and CMake config ─────────────────────────────────────── +if [[ "$MODE" == "debug" ]]; then + BUILD_DIR="$SCRIPT_DIR/build_debug" + CMAKE_TYPE="Debug" + LABEL="Debug" +else + BUILD_DIR="$SCRIPT_DIR/build_release" + CMAKE_TYPE="Release" + LABEL="Release" +fi + +APP_PATH="$BUILD_DIR/OmniMTP.app" + +# ── Configure (only if CMakeCache.txt is missing) ──────────────────────────── +if [[ ! -f "$BUILD_DIR/CMakeCache.txt" ]]; then + echo "── Configuring ($LABEL) ─────────────────────────────────────────" + cmake -B "$BUILD_DIR" \ + -DCMAKE_BUILD_TYPE="$CMAKE_TYPE" \ + -S "$SCRIPT_DIR" +fi + +# ── Build ──────────────────────────────────────────────────────────────────── +echo "── Building ($LABEL, $JOBS threads) ────────────────────────────────" +cmake --build "$BUILD_DIR" -j"$JOBS" + +# ── Result ─────────────────────────────────────────────────────────────────── +BINARY="$APP_PATH/Contents/MacOS/OmniMTP" +SIZE=$(du -sh "$BINARY" 2>/dev/null | cut -f1) +ARCH=$(file "$BINARY" | grep -o "arm64\|x86_64" | tr '\n' '+' | sed 's/+$//') +echo "" +echo "── Built: $APP_PATH" +echo " Binary: $SIZE ($ARCH universal)" + +if $RUN; then + echo "── Launching..." + open "$APP_PATH" +fi diff --git a/cmake/Info.plist.in b/cmake/Info.plist.in new file mode 100644 index 0000000..7ac0349 --- /dev/null +++ b/cmake/Info.plist.in @@ -0,0 +1,36 @@ + + + + + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleIdentifier + ${MACOSX_BUNDLE_GUI_IDENTIFIER} + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} + CFBundleDisplayName + OmniMTP + CFBundleIconFile + AppIcon + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundlePackageType + APPL + CFBundleSignature + ???? + LSMinimumSystemVersion + ${CMAKE_OSX_DEPLOYMENT_TARGET} + NSHighResolutionCapable + + NSSupportsAutomaticGraphicsSwitching + + + com.apple.security.app-sandbox + + NSPrincipalClass + NSApplication + + diff --git a/cmake/generate_icns.sh b/cmake/generate_icns.sh new file mode 100755 index 0000000..b9c17a2 --- /dev/null +++ b/cmake/generate_icns.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ $# -ne 2 ]]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +SRC="$1" +OUT="$2" +WORKDIR="$(mktemp -d)" +trap 'rm -rf "$WORKDIR"' EXIT + +ICONSET="$WORKDIR/AppIcon.iconset" +mkdir -p "$ICONSET" + +make_icon() { + local name="$1" + local size="$2" + sips -z "$size" "$size" "$SRC" --out "$ICONSET/$name" >/dev/null +} + +make_icon icon_16x16.png 16 +make_icon icon_16x16@2x.png 32 +make_icon icon_32x32.png 32 +make_icon icon_32x32@2x.png 64 +make_icon icon_128x128.png 128 +make_icon icon_128x128@2x.png 256 +make_icon icon_256x256.png 256 +make_icon icon_256x256@2x.png 512 +make_icon icon_512x512.png 512 +make_icon icon_512x512@2x.png 1024 + +iconutil -c icns "$ICONSET" -o "$OUT" diff --git a/cmake/libusb_config.h b/cmake/libusb_config.h new file mode 100644 index 0000000..09f5099 --- /dev/null +++ b/cmake/libusb_config.h @@ -0,0 +1,39 @@ +/* libusb config.h for macOS (Darwin) — arm64 + x86_64, macOS 12+ */ +#pragma once + +/* clock_gettime available since macOS 10.12 */ +#define HAVE_CLOCK_GETTIME 1 + +/* pthread_condattr_setclock(CLOCK_MONOTONIC) is NOT available on macOS. + Must be undefined (not 0) so #ifdef checks are false. */ +#undef HAVE_PTHREAD_CONDATTR_SETCLOCK + +/* timerfd is Linux-only — must be undefined, not 0 */ +#undef HAVE_TIMERFD + +/* Standard POSIX headers present on macOS */ +#define HAVE_SYS_TIME_H 1 +#define HAVE_DLFCN_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_UNISTD_H 1 +#define STDC_HEADERS 1 + +#define PLATFORM_POSIX 1 + +/* Visibility / printf format attributes */ +#define DEFAULT_VISIBILITY __attribute__((visibility("default"))) +#define PRINTF_FORMAT(a, b) __attribute__((__format__(__printf__, a, b))) + +/* 64-bit */ +#define SIZEOF_VOID_P 8 + +/* Logging enabled (not debug) */ +#define ENABLE_LOGGING 1 +#undef ENABLE_DEBUG_LOGGING diff --git a/heziMTP.png b/heziMTP.png new file mode 100644 index 0000000000000000000000000000000000000000..edc1a1cf87275aca3e1591021adab45b7b5cbe3b GIT binary patch literal 263554 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%0AWpSZ~yeP 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%0A5VWz9B--K z-^%?j*9RMImIah4I4!}_C{YF3!zyqy@sn_v zL$8szRdeyd>4Q_^kF1|x@Rk|9jh;xE*xiM5+j$nrFuo6cPy&vumtNH7)Au{gi!3^o z9g~3b9DGz&WD%3f@mH zaK8+&1oxHLQ%j{+_0#oV0 z1-3t6l;B5b&~tRd3PQ;NkOnvxB>^57yCI}^g;OP?Q%dyn?4%6?y9VlFq`4&?p@<&m zxopBXQ1;joKSf|aJ4M2MG~lK7STC`FxP*POj@&$VLsFb^G9`@{^no!SzA`tLTysIN zDE9H=enwuI!Kz(rqnYS}w-NW>y!-TAsKdFxeU{m3mxx^oMR7s%At?i}4y#lqaM@b(p&e3kD zZd<#q`2bs0=#DGK(l=Q3#OWlAdkE>~W)AN@LIGyJJWX%;=DC|XbkPwVjY=^qcX&t{ zCJJfc@{wXwlb*%PjS4|W9jpy!NC#K~RBrH0sZ1PhOYy$#U=yJuDk#|L?2opO8vxGo zmOwMuJlw~Zbn#-&qz^@OUU{9B+RHLu5V{#lOzGy%s51$bHg0N8mT?22ft0{K(rzD0 z;t~8x*YYL0#|!AsrfdtMlwgs-W7i&YN}PoG7u5=0B_0fNjEg>R+l(Qj7=&q-SRXWgE&&4#ri35B06L*Qgd2t4<%M+B0-LYJ3P0Ln|Y_+wK;)_UP z;!5#~tVIG16~3|pwy^*=QhlLyp6aNrlhtokS5E+nU>N68xKG;7n^yt+7m0D&EMd-|yHqn!kMa=b{s zoiEt>@VHwNuCzZT==DoC2;@P24G)rb;nBLWjcmF71x&0 zUH-Xj5r6X0F^_!{TZn4R+WJOnrD_%iK?R=nZ8Ootp|G~|wzZ?}0OKSzqC>5s-@SXs zk&kgbFOtlPMUqaJhN?xLSL=RX;kP`_LiX_8cgmhew5SH%zaLfJ2wRznX0i?2tvA{j zAI3g}kXCzuq4+?U$7%)gB81Uj81WLkG@oL<2xqLH-Z}}~(Xevt_&Mxbt5E!> zk{bg=)T1A121UrAK9Jv-O3qke6}q?b2Tlr$DCujFVfYJHQGn}+n+wrd&_R+fuyIrj)<_i@O?ek5Pxf{ zafA6~s%?*OY)Xib-`BGv_w=&P)hSVnM97L3ZBug1eFFCB44dTmpXoQl6V+2%7bpTE z`rojwrRjZf77^&2JwcpIE4nthVHS|j_+MA}wPnBcb1ku_7(Y*})NhPeymamKntaj@ zPqjj|ZoQNDo+sKFHm+6?*V4N3LV_qfi&84gH&pVCqhjlKo<-%!Nr3O3Ms3|#k^bok za4C?+ID30(`$iiV|NI`R5~RbSkB2>G-PnEp$0ytsfP2ftFvjlv&+_q_capO(hp*k* z_aDyREJ!7+YU(?=aU_4^SlF*Y`EY@Ie@iO$E-7#M_2&QN6<-X7Mr4YM=atW; IpEdIRf8cQm1ONa4 literal 0 HcmV?d00001 diff --git a/src/main.mm b/src/main.mm new file mode 100644 index 0000000..db1d6e6 --- /dev/null +++ b/src/main.mm @@ -0,0 +1,14 @@ +#include "ui/App.hpp" +#include "ui/WebUI.hpp" +#import + +int main(int, char**) { + @autoreleasepool { + omniMTP::App app; + app.init(); + omniMTP::WebUI ui(app); + ui.run(); + app.shutdown(); + } + return 0; +} diff --git a/src/mtp/MTPOperations.cpp b/src/mtp/MTPOperations.cpp new file mode 100644 index 0000000..87bf38a --- /dev/null +++ b/src/mtp/MTPOperations.cpp @@ -0,0 +1,333 @@ +#include "MTPOperations.hpp" +#include +#include +#include + +namespace mtp { + +// ─── Encoding helpers ───────────────────────────────────────────────────────── +void MTPOperations::put_le16(std::vector& b, uint16_t v) { + b.push_back(v & 0xFF); + b.push_back(v >> 8); +} +void MTPOperations::put_le32(std::vector& b, uint32_t v) { + b.push_back(v & 0xFF); b.push_back((v>>8)&0xFF); + b.push_back((v>>16)&0xFF); b.push_back(v>>24); +} +void MTPOperations::put_le64(std::vector& b, uint64_t v) { + put_le32(b, static_cast(v)); + put_le32(b, static_cast(v >> 32)); +} + +// UTF-8 → MTP UTF-16LE string: [1-byte len][len × 2-byte UTF-16LE chars] +void MTPOperations::encode_mtp_string(std::vector& buf, const std::string& utf8) { + if (utf8.empty()) { buf.push_back(0); return; } + // Simple ASCII-only encoding (sufficient for filenames in practice) + size_t len = std::min(utf8.size(), size_t(255)) + 1; // +1 for null terminator + buf.push_back(static_cast(len)); + for (size_t i = 0; i < len - 1; ++i) { + uint8_t c = static_cast(utf8[i]); + buf.push_back(c); + buf.push_back(0); + } + // Null terminator + buf.push_back(0); + buf.push_back(0); +} + +// ─── Parsing helpers ────────────────────────────────────────────────────────── +static uint16_t u16(const uint8_t* p) { + return static_cast(p[0]) | (static_cast(p[1]) << 8); +} +static uint32_t u32(const uint8_t* p) { + return p[0] | (p[1]<<8) | (p[2]<<16) | (p[3]<<24); +} +static uint64_t u64(const uint8_t* p) { + uint64_t lo = u32(p), hi = u32(p+4); + return lo | (hi << 32); +} +static std::string mtp_str(const uint8_t*& p, const uint8_t* end) { + if (p >= end) return {}; + uint8_t n = *p++; + if (!n) return {}; + std::string s; s.reserve(n); + for (uint8_t i = 0; i < n && p+1 < end; ++i) { + uint16_t c = static_cast(p[0]) | (static_cast(p[1])<<8); + p += 2; + if (!c) break; + if (c < 0x80) s += static_cast(c); + else if (c < 0x800) { s += static_cast(0xC0|(c>>6)); s += static_cast(0x80|(c&0x3F)); } + else { s += static_cast(0xE0|(c>>12)); s += static_cast(0x80|((c>>6)&0x3F)); s += static_cast(0x80|(c&0x3F)); } + } + return s; +} + +std::vector MTPOperations::parse_u32_array(const std::vector& data) { + const uint8_t* p = data.data() + CONTAINER_HEADER_SIZE; + const uint8_t* end = data.data() + data.size(); + if (p + 4 > end) return {}; + uint32_t n = u32(p); p += 4; + std::vector v; v.reserve(n); + for (uint32_t i = 0; i < n && p + 4 <= end; ++i) { + v.push_back(u32(p)); p += 4; + } + return v; +} + +ObjectInfo MTPOperations::parse_object_info(const std::vector& data) { + const uint8_t* p = data.data() + CONTAINER_HEADER_SIZE; + const uint8_t* end = data.data() + data.size(); + + ObjectInfo oi{}; + if (p + 4 <= end) { oi.storage_id = u32(p); p += 4; } + if (p + 2 <= end) { oi.object_format = u16(p); p += 2; } + if (p + 2 <= end) { oi.protection_status = u16(p); p += 2; } + // MTP spec defines compressed_size as uint32_t in the ObjectInfo struct, + // but DBI/Sphaira follow the standard. For files > 4 GiB use GetObjectPropValue. + uint32_t wire_size = 0; + if (p + 4 <= end) { wire_size = u32(p); p += 4; } + oi.compressed_size = wire_size; // extended size handled via GetObjectPropValue + + if (p + 2 <= end) { /* thumb format */ p += 2; } + if (p + 4 <= end) { /* thumb size */ p += 4; } + if (p + 4 <= end) { /* thumb w */ p += 4; } + if (p + 4 <= end) { /* thumb h */ p += 4; } + if (p + 4 <= end) { /* img w */ p += 4; } + if (p + 4 <= end) { /* img h */ p += 4; } + if (p + 4 <= end) { /* img depth */ p += 4; } + if (p + 4 <= end) { oi.parent_object = u32(p); p += 4; } + if (p + 2 <= end) { oi.association_type = u16(p); p += 2; } + if (p + 4 <= end) { oi.association_desc = u32(p); p += 4; } + if (p + 4 <= end) { oi.sequence_number = u32(p); p += 4; } + oi.filename = mtp_str(p, end); + oi.date_created = mtp_str(p, end); + oi.date_modified = mtp_str(p, end); + /* keywords = */ mtp_str(p, end); + + return oi; +} + +// ─── MTPOperations implementation ───────────────────────────────────────────── +MTPOperations::MTPOperations(MTPSession& session) : session_(session) {} + +std::vector MTPOperations::get_storage_ids() { + std::lock_guard lock(session_.mutex()); + session_.send_command(OpCode::GetStorageIDs); + auto data = session_.receive_data(); + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + return parse_u32_array(data); +} + +StorageInfo MTPOperations::get_storage_info(uint32_t storage_id) { + std::lock_guard lock(session_.mutex()); + std::array p{storage_id}; + session_.send_command(OpCode::GetStorageInfo, p); + auto data = session_.receive_data(); + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + + const uint8_t* ptr = data.data() + CONTAINER_HEADER_SIZE; + const uint8_t* end = data.data() + data.size(); + StorageInfo si{}; + if (ptr+2<=end){si.storage_type = u16(ptr); ptr+=2;} + if (ptr+2<=end){si.filesystem_type = u16(ptr); ptr+=2;} + if (ptr+2<=end){si.access_capability = u16(ptr); ptr+=2;} + if (ptr+8<=end){si.max_capacity = u64(ptr); ptr+=8;} + if (ptr+8<=end){si.free_space_bytes = u64(ptr); ptr+=8;} + if (ptr+4<=end){si.free_space_objects= u32(ptr); ptr+=4;} + si.description = mtp_str(ptr, end); + si.volume_id = mtp_str(ptr, end); + return si; +} + +std::vector MTPOperations::get_object_handles(uint32_t storage_id, + uint32_t parent_handle) { + std::lock_guard lock(session_.mutex()); + std::array params{ storage_id, ALL_FORMATS, parent_handle }; + session_.send_command(OpCode::GetObjectHandles, params); + auto data = session_.receive_data(); + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + return parse_u32_array(data); +} + +ObjectInfo MTPOperations::get_object_info(uint32_t handle) { + std::lock_guard lock(session_.mutex()); + std::array p{handle}; + session_.send_command(OpCode::GetObjectInfo, p); + auto data = session_.receive_data(); + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + return parse_object_info(data); +} + +void MTPOperations::get_object(uint32_t handle, + const std::string& dest_path, + uint64_t expected_size, + const ProgressFn& progress, + std::atomic& cancel) { + std::lock_guard lock(session_.mutex()); + std::array p{handle}; + session_.send_command(OpCode::GetObject, p); + session_.receive_data_to_file(dest_path, expected_size, progress, cancel); + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK && resp.code != ResponseCode::TransactionCancelled) + throw MTPException(resp.code, MTPException::code_name(resp.code)); +} + +std::vector MTPOperations::build_object_info(uint32_t storage_id, + uint32_t parent_handle, + const std::string& filename, + uint64_t file_size, + uint16_t format) { + std::vector b; + b.reserve(128); + + // Container header placeholder (will be filled in by session) + // Actual wire bytes are handled by send_data(), so we just build the payload here. + put_le32(b, storage_id); + put_le16(b, format); + put_le16(b, 0); // protection_status = none + // compressed_size as uint32 (0 = unknown, or truncated for large files) + put_le32(b, file_size > 0xFFFFFFFFu ? 0xFFFFFFFFu : static_cast(file_size)); + put_le16(b, 0); // thumb_format + put_le32(b, 0); // thumb_compressed_size + put_le32(b, 0); // thumb_pix_w + put_le32(b, 0); // thumb_pix_h + put_le32(b, 0); // image_pix_w + put_le32(b, 0); // image_pix_h + put_le32(b, 0); // image_bit_depth + put_le32(b, parent_handle); + put_le16(b, 0); // association_type + put_le32(b, 0); // association_desc + put_le32(b, 0); // sequence_number + encode_mtp_string(b, filename); + b.push_back(0); // date_created (empty string) + b.push_back(0); // date_modified (empty string) + b.push_back(0); // keywords (empty string) + return b; +} + +// Build the SendObjectPropList data payload — just the filename property. +// The actual 64-bit file size is passed in the command parameters, not here. +static std::vector build_prop_list(const std::string& filename) { + std::vector b; + // number of properties = 1 + b.push_back(1); b.push_back(0); b.push_back(0); b.push_back(0); + // object handle = 0 (new object) + b.push_back(0); b.push_back(0); b.push_back(0); b.push_back(0); + // property code = ObjectFilename (0xDC07) + b.push_back(static_cast(PROP_OBJECT_FILENAME & 0xFF)); + b.push_back(static_cast(PROP_OBJECT_FILENAME >> 8)); + // data type = String (0xFFFF) + b.push_back(static_cast(DTYPE_STRING & 0xFF)); + b.push_back(static_cast(DTYPE_STRING >> 8)); + // MTP string value + if (filename.empty()) { + b.push_back(0); + } else { + size_t len = std::min(filename.size(), size_t(255)) + 1; + b.push_back(static_cast(len)); + for (size_t i = 0; i < len - 1; ++i) { + b.push_back(static_cast(filename[i])); + b.push_back(0); + } + b.push_back(0); b.push_back(0); // null terminator + } + return b; +} + +uint32_t MTPOperations::send_object(uint32_t storage_id, + uint32_t parent_handle, + const std::string& src_path, + const std::string& filename, + uint64_t file_size, + const ProgressFn& progress, + std::atomic& cancel) { + // Always use Undefined (0x3000) for game files. + // DBI/Sphaira reject vendor-specific format codes like 0xB005 for NSP/XCI + // and return OperationNotSupported. Undefined is universally accepted. + uint16_t fmt = static_cast(ObjectFormat::Undefined); + + // All of SendObjectInfo/SendObjectPropList + SendObject must be atomic. + std::lock_guard lock(session_.mutex()); + + // Step 1: announce the object to the device. + // + // Prefer SendObjectPropList (0x9808) when supported — it passes the actual + // 64-bit file size in the command parameters (size_hi, size_lo), so the + // device knows the real byte count for files >4 GiB instead of receiving + // 0xFFFFFFFF and stopping at ~4.29 GB. + // + // Fall back to SendObjectInfo (0x100C) for devices that don't support it. + if (session_.supports_op(OpCode::SendObjectPropList)) { + // params: [storage_id, parent_handle, format, size_hi, size_lo] + uint32_t size_hi = static_cast(file_size >> 32); + uint32_t size_lo = static_cast(file_size & 0xFFFFFFFFu); + std::array params{ + storage_id, parent_handle, + static_cast(fmt), + size_hi, size_lo + }; + session_.send_command(OpCode::SendObjectPropList, params); + auto prop_list = build_prop_list(filename); + session_.send_data(prop_list); + } else { + std::array params{ storage_id, parent_handle }; + session_.send_command(OpCode::SendObjectInfo, params); + auto obj_info = build_object_info(storage_id, parent_handle, filename, file_size, fmt); + session_.send_data(obj_info); + } + { + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + } + + // Step 2: SendObject — immediately follows, no gap for foreign commands + session_.send_command(OpCode::SendObject); + session_.send_data_from_file(src_path, file_size, OpCode::SendObject, progress, cancel); + + // Use TIMEOUT_INSTALL_MS: after the last byte DBI/Sphaira verify NCAs and + // update the content database, which can take well over 5 s on slow microSD. + { + auto resp = session_.receive_response(TIMEOUT_INSTALL_MS); + if (resp.code != ResponseCode::OK && resp.code != ResponseCode::TransactionCancelled) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + } + + return 0; +} + +void MTPOperations::delete_object(uint32_t handle) { + std::lock_guard lock(session_.mutex()); + std::array params{ handle, ALL_FORMATS }; + session_.send_command(OpCode::DeleteObject, params); + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); +} + +uint32_t MTPOperations::create_directory(uint32_t storage_id, + uint32_t parent_handle, + const std::string& name) { + std::lock_guard lock(session_.mutex()); + std::array params{ storage_id, parent_handle }; + session_.send_command(OpCode::SendObjectInfo, params); + + auto info = build_object_info(storage_id, parent_handle, name, 0, + static_cast(ObjectFormat::Association)); + session_.send_data(info); + + auto resp = session_.receive_response(); + if (resp.code != ResponseCode::OK) + throw MTPException(resp.code, MTPException::code_name(resp.code)); + return resp.params.size() >= 3 ? resp.params[2] : 0; +} + +} // namespace mtp diff --git a/src/mtp/MTPOperations.hpp b/src/mtp/MTPOperations.hpp new file mode 100644 index 0000000..7b2928f --- /dev/null +++ b/src/mtp/MTPOperations.hpp @@ -0,0 +1,70 @@ +#pragma once +#include "MTPSession.hpp" +#include "MTPProtocol.hpp" +#include +#include +#include + +namespace mtp { + +// Stateless MTP operations that run on top of an MTPSession. +// Every public function acquires the session mutex. +class MTPOperations { +public: + explicit MTPOperations(MTPSession& session); + + // ── Storage ─────────────────────────────────────────────────────────────── + std::vector get_storage_ids(); + StorageInfo get_storage_info(uint32_t storage_id); + + // ── Object enumeration ──────────────────────────────────────────────────── + // parent_handle = ROOT_PARENT for root of a storage + std::vector get_object_handles(uint32_t storage_id, + uint32_t parent_handle = ROOT_PARENT); + ObjectInfo get_object_info(uint32_t handle); + + // ── Transfer ────────────────────────────────────────────────────────────── + // Download object to a local file path. + void get_object(uint32_t handle, + const std::string& dest_path, + uint64_t expected_size, + const ProgressFn& progress, + std::atomic& cancel); + + // Upload a local file, returns new object handle on the device. + uint32_t send_object(uint32_t storage_id, + uint32_t parent_handle, + const std::string& src_path, + const std::string& filename, + uint64_t file_size, + const ProgressFn& progress, + std::atomic& cancel); + + // ── Management ──────────────────────────────────────────────────────────── + void delete_object(uint32_t handle); + + // Create a directory (association object). + uint32_t create_directory(uint32_t storage_id, + uint32_t parent_handle, + const std::string& name); + +private: + MTPSession& session_; + + // Build a packed ObjectInfo blob for SendObjectInfo + static std::vector build_object_info(uint32_t storage_id, + uint32_t parent_handle, + const std::string& filename, + uint64_t file_size, + uint16_t format); + + static void encode_mtp_string(std::vector& buf, const std::string& utf8); + static void put_le16(std::vector& b, uint16_t v); + static void put_le32(std::vector& b, uint32_t v); + static void put_le64(std::vector& b, uint64_t v); + + static std::vector parse_u32_array(const std::vector& data); + static ObjectInfo parse_object_info(const std::vector& data); +}; + +} // namespace mtp diff --git a/src/mtp/MTPProtocol.hpp b/src/mtp/MTPProtocol.hpp new file mode 100644 index 0000000..7267c8b --- /dev/null +++ b/src/mtp/MTPProtocol.hpp @@ -0,0 +1,226 @@ +#pragma once +#include +#include +#include + +namespace mtp { + +// ─── Container types ────────────────────────────────────────────────────────── +enum class ContainerType : uint16_t { + Command = 0x0001, + Data = 0x0002, + Response = 0x0003, + Event = 0x0004, +}; + +// ─── MTP Operation codes ────────────────────────────────────────────────────── +enum class OpCode : uint16_t { + GetDeviceInfo = 0x1001, + OpenSession = 0x1002, + CloseSession = 0x1003, + GetStorageIDs = 0x1004, + GetStorageInfo = 0x1005, + GetNumObjects = 0x1006, + GetObjectHandles = 0x1007, + GetObjectInfo = 0x1008, + GetObject = 0x1009, + GetThumb = 0x100A, + DeleteObject = 0x100B, + SendObjectInfo = 0x100C, + SendObject = 0x100D, + GetDevicePropDesc = 0x1014, + GetDevicePropValue = 0x1015, + SetDevicePropValue = 0x1016, + MoveObject = 0x1019, + CopyObject = 0x101A, + GetPartialObject = 0x101B, + GetObjectPropsSupported = 0x9801, + GetObjectPropDesc = 0x9802, + GetObjectPropValue = 0x9803, + SetObjectPropValue = 0x9804, + // Modern object creation — passes full 64-bit size in command params + // so devices know the real size even for files > 4 GiB. + SendObjectPropList = 0x9808, +}; + +// ─── Response codes ─────────────────────────────────────────────────────────── +enum class ResponseCode : uint16_t { + OK = 0x2001, + GeneralError = 0x2002, + SessionNotOpen = 0x2003, + InvalidTransactionID = 0x2004, + OperationNotSupported = 0x2005, + ParameterNotSupported = 0x2006, + IncompleteTransfer = 0x2007, + InvalidStorageID = 0x2008, + InvalidObjectHandle = 0x2009, + DevicePropNotSupported = 0x200A, + StoreFull = 0x200C, + ObjectWriteProtected = 0x200D, + StoreReadOnly = 0x200E, + AccessDenied = 0x200F, + DeviceBusy = 0x2019, + InvalidParentObject = 0x201A, + InvalidParameter = 0x201D, + SessionAlreadyOpen = 0x201E, + TransactionCancelled = 0x201F, +}; + +// ─── Object format codes ────────────────────────────────────────────────────── +enum class ObjectFormat : uint16_t { + Undefined = 0x3000, + Association = 0x3001, // Directory/folder + Script = 0x3002, + Text = 0x3004, + HTML = 0x3005, + MP3 = 0x3009, + AVI = 0x300A, + MPEG = 0x300B, + JPEG = 0x3801, + BMP = 0x3804, + GIF = 0x3807, + PNG = 0x380B, + TIFF = 0x380D, + NSP = 0xB005, // Nintendo Switch Package + XCI = 0xB006, // Nintendo Switch Cartridge Image +}; + +// ─── Wire-format container header (little-endian, packed) ──────────────────── +#pragma pack(push, 1) +struct ContainerHeader { + uint32_t length; // total bytes including this header + uint16_t type; + uint16_t code; + uint32_t transaction_id; +}; +static_assert(sizeof(ContainerHeader) == 12); +#pragma pack(pop) + +// ─── Object property codes (for SendObjectPropList payload) ────────────────── +static constexpr uint16_t PROP_OBJECT_FILENAME = 0xDC07; +static constexpr uint16_t PROP_OBJECT_SIZE = 0xDC04; +static constexpr uint16_t DTYPE_STRING = 0xFFFF; +static constexpr uint16_t DTYPE_UINT64 = 0x0008; + +// ─── Constants ──────────────────────────────────────────────────────────────── +static constexpr uint32_t CONTAINER_HEADER_SIZE = 12; +static constexpr uint32_t ROOT_PARENT = 0xFFFFFFFF; +static constexpr uint32_t ALL_STORAGE = 0xFFFFFFFF; +static constexpr uint32_t ALL_FORMATS = 0x00000000; +static constexpr uint32_t SESSION_ID = 1; + +// Nintendo Switch USB identifiers +static constexpr uint16_t NINTENDO_VID = 0x057e; +static constexpr uint16_t SWITCH_PID_V1 = 0x2000; +static constexpr uint16_t SWITCH_PID_V2 = 0x3000; // Switch V2/Lite/OLED + +// USB MTP class/subclass/protocol +static constexpr uint8_t MTP_CLASS = 6; +static constexpr uint8_t MTP_SUBCLASS = 1; +static constexpr uint8_t MTP_PROTOCOL = 1; + +// Transfer sizing +// 512 KiB per bulk transfer — safe across all macOS USB controllers and Switch firmware. +// 1 MiB can hit IOUSBLib scatter-gather limits on some hosts. +// USB 2.0 HS: max_pkt = 512 → use go-mtpfs's rwBufSize = 16 KiB +// USB 3.0 SS: max_pkt = 1024 → scale up; each syscall has ~100 µs overhead, +// so 16 KiB chunks cap throughput at ~164 MB/s even with USB 3.0 bandwidth. +// 512 KiB chunks drop syscall count 32× and saturate USB 3.0 properly. +static constexpr size_t CHUNK_SIZE = 0x4000; // 16 KiB (USB 2.0 HS baseline) +static constexpr size_t CHUNK_SIZE_USB3 = 512u << 10; // 512 KiB (USB 3.0 SS) +static constexpr size_t SMALL_CHUNK_SIZE = 0x1000; // 4 KiB + +// Timeouts +static constexpr int TIMEOUT_CMD_MS = 5000; // command / response containers +static constexpr int TIMEOUT_READ_MS = 10000; // bulk read per chunk +// go-mtpfs uses d.Timeout = 2000 ms for every bulk transfer. +// 2 s at 1 MB/s = 2 GB/s worth of leeway; generous but not infinitely blocking. +static constexpr int TIMEOUT_WRITE_MS = 2000; // bulk write per chunk +// After the last byte of a file is sent, DBI/Sphaira verify NCAs, write to +// the content database, update storage info, etc. On a slow microSD this can +// take well over 10 seconds, so we give it 3 minutes before calling it dead. +static constexpr int TIMEOUT_INSTALL_MS = 180000; +static constexpr int CONNECT_TIMEOUT_MS = 10000; +static constexpr int TIMEOUT_MS = TIMEOUT_CMD_MS; + +// ─── High-level data structures ─────────────────────────────────────────────── +struct StorageInfo { + uint16_t storage_type; + uint16_t filesystem_type; + uint16_t access_capability; + uint64_t max_capacity; + uint64_t free_space_bytes; + uint32_t free_space_objects; + std::string description; + std::string volume_id; +}; + +struct ObjectInfo { + uint32_t storage_id; + uint16_t object_format; + uint16_t protection_status; + uint64_t compressed_size; // 64-bit to handle files > 4 GiB + uint32_t parent_object; + uint16_t association_type; + uint32_t association_desc; + uint32_t sequence_number; + std::string filename; + std::string date_created; + std::string date_modified; + + bool is_directory() const { + return object_format == static_cast(ObjectFormat::Association); + } +}; + +struct DeviceInfo { + uint16_t standard_version; + uint32_t vendor_extension_id; + uint16_t vendor_extension_version; + std::string vendor_extension_desc; + uint16_t functional_mode; + std::vector operations_supported; + std::vector events_supported; + std::vector device_props_supported; + std::vector capture_formats; + std::vector playback_formats; + std::string manufacturer; + std::string model; + std::string device_version; + std::string serial_number; +}; + +// ─── Exception ──────────────────────────────────────────────────────────────── +class MTPException : public std::runtime_error { +public: + MTPException(ResponseCode code, std::string msg) + : std::runtime_error(std::move(msg)), code_(code) {} + + ResponseCode code() const { return code_; } + + static const char* code_name(ResponseCode c) { + switch (c) { + case ResponseCode::OK: return "OK"; + case ResponseCode::GeneralError: return "General Error"; + case ResponseCode::SessionNotOpen: return "Session Not Open"; + case ResponseCode::OperationNotSupported: return "Operation Not Supported"; + case ResponseCode::ParameterNotSupported: return "Parameter Not Supported"; + case ResponseCode::IncompleteTransfer: return "Incomplete Transfer"; + case ResponseCode::InvalidStorageID: return "Invalid Storage ID"; + case ResponseCode::InvalidObjectHandle: return "Invalid Object Handle"; + case ResponseCode::StoreFull: return "Store Full"; + case ResponseCode::AccessDenied: return "Access Denied"; + case ResponseCode::DeviceBusy: return "Device Busy"; + case ResponseCode::InvalidParentObject: return "Invalid Parent Object"; + case ResponseCode::InvalidParameter: return "Invalid Parameter"; + case ResponseCode::SessionAlreadyOpen: return "Session Already Open"; + case ResponseCode::TransactionCancelled: return "Transaction Cancelled"; + default: return "Unknown Error"; + } + } + +private: + ResponseCode code_; +}; + +} // namespace mtp diff --git a/src/mtp/MTPSession.cpp b/src/mtp/MTPSession.cpp new file mode 100644 index 0000000..c130549 --- /dev/null +++ b/src/mtp/MTPSession.cpp @@ -0,0 +1,603 @@ +#include "MTPSession.hpp" +#include +#include +#include +#include +#include + +#include + +namespace mtp { + +// ─── UTF-16LE MTP string → UTF-8 ───────────────────────────────────────────── +// MTP strings: 1 byte length (chars including null), then length×2 bytes UTF-16LE. +static std::string decode_mtp_string(const uint8_t*& p, const uint8_t* end) { + if (p >= end) return {}; + uint8_t nchars = *p++; + if (nchars == 0) return {}; + std::string out; + out.reserve(nchars); + for (uint8_t i = 0; i < nchars && p + 1 < end; ++i) { + uint16_t c = static_cast(p[0]) | (static_cast(p[1]) << 8); + p += 2; + if (c == 0) break; + if (c < 0x80) { + out += static_cast(c); + } else if (c < 0x800) { + out += static_cast(0xC0 | (c >> 6)); + out += static_cast(0x80 | (c & 0x3F)); + } else { + out += static_cast(0xE0 | (c >> 12)); + out += static_cast(0x80 | ((c >> 6) & 0x3F)); + out += static_cast(0x80 | (c & 0x3F)); + } + } + return out; +} + +// ─── Read a uint16 array: [4-byte count][count × uint16] ───────────────────── +static std::vector decode_u16_array(const uint8_t*& p, const uint8_t* end) { + if (p + 4 > end) return {}; + uint32_t n = p[0] | (p[1]<<8) | (p[2]<<16) | (p[3]<<24); + p += 4; + std::vector v(n); + for (auto& x : v) { + if (p + 2 > end) break; + x = static_cast(p[0]) | (static_cast(p[1]) << 8); + p += 2; + } + return v; +} + +// ─── Read a uint32 array ────────────────────────────────────────────────────── +static std::vector decode_u32_array(const uint8_t*& p, const uint8_t* end) { + if (p + 4 > end) return {}; + uint32_t n = p[0] | (p[1]<<8) | (p[2]<<16) | (p[3]<<24); + p += 4; + std::vector v(n); + for (auto& x : v) { + if (p + 4 > end) break; + x = p[0] | (p[1]<<8) | (p[2]<<16) | (p[3]<<24); + p += 4; + } + return v; +} + +// ─── Little-endian helpers ──────────────────────────────────────────────────── +static void put_le32(uint8_t* dst, uint32_t v) { + dst[0] = v; dst[1] = v>>8; dst[2] = v>>16; dst[3] = v>>24; +} +static uint32_t get_le32(const uint8_t* p) { + return p[0] | (p[1]<<8) | (p[2]<<16) | (p[3]<<24); +} +static uint16_t get_le16(const uint8_t* p) { + return static_cast(p[0]) | (static_cast(p[1])<<8); +} +static uint64_t get_le64(const uint8_t* p) { + uint64_t lo = get_le32(p), hi = get_le32(p+4); + return lo | (hi << 32); +} + +// ─── MTPSession ─────────────────────────────────────────────────────────────── +MTPSession::MTPSession() { + if (libusb_init(&ctx_) != LIBUSB_SUCCESS) + throw std::runtime_error("libusb_init failed"); +#ifdef NDEBUG + libusb_set_option(ctx_, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_WARNING); +#else + libusb_set_option(ctx_, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_INFO); +#endif +} + +MTPSession::~MTPSession() { + if (connected_) disconnect(); + if (ctx_) libusb_exit(ctx_); +} + +// ─── Device detection ───────────────────────────────────────────────────────── +bool MTPSession::find_device() { + libusb_device** list = nullptr; + ssize_t cnt = libusb_get_device_list(ctx_, &list); + if (cnt < 0) return false; + + libusb_device* found = nullptr; + + for (ssize_t i = 0; i < cnt; ++i) { + libusb_device* dev = list[i]; + libusb_device_descriptor desc{}; + if (libusb_get_device_descriptor(dev, &desc) != LIBUSB_SUCCESS) continue; + + // Match by Nintendo VID + known Switch PIDs first + bool is_switch = (desc.idVendor == NINTENDO_VID) + && (desc.idProduct == SWITCH_PID_V1 + || desc.idProduct == SWITCH_PID_V2); + + // Also accept any device advertising MTP class/subclass/protocol + bool is_mtp_class = false; + if (!is_switch) { + for (uint8_t c = 0; c < desc.bNumConfigurations; ++c) { + libusb_config_descriptor* cfg = nullptr; + if (libusb_get_config_descriptor(dev, c, &cfg) != LIBUSB_SUCCESS) continue; + for (uint8_t i2 = 0; i2 < cfg->bNumInterfaces; ++i2) { + for (int a = 0; a < cfg->interface[i2].num_altsetting; ++a) { + const auto& alt = cfg->interface[i2].altsetting[a]; + if (alt.bInterfaceClass == MTP_CLASS + && alt.bInterfaceSubClass == MTP_SUBCLASS + && alt.bInterfaceProtocol == MTP_PROTOCOL) { + is_mtp_class = true; + } + } + } + libusb_free_config_descriptor(cfg); + if (is_mtp_class) break; + } + } + + if (is_switch || is_mtp_class) { + found = dev; + libusb_ref_device(found); + vendor_id_ = desc.idVendor; + product_id_ = desc.idProduct; + break; + } + } + libusb_free_device_list(list, 1); + + if (!found) return false; + + // Try to get a string descriptor for a friendly name + libusb_device_handle* h = nullptr; + if (libusb_open(found, &h) == LIBUSB_SUCCESS) { + char buf[256]{}; + libusb_device_descriptor desc{}; + libusb_get_device_descriptor(found, &desc); + if (desc.iProduct) + libusb_get_string_descriptor_ascii(h, desc.iProduct, + reinterpret_cast(buf), sizeof(buf)); + device_name_ = buf[0] ? buf : "Nintendo Switch"; + libusb_close(h); + } + libusb_unref_device(found); + return true; +} + +USBEndpoints MTPSession::find_endpoints(libusb_device* dev) { + libusb_config_descriptor* cfg = nullptr; + if (libusb_get_active_config_descriptor(dev, &cfg) != LIBUSB_SUCCESS) + throw MTPException(ResponseCode::GeneralError, "Cannot read USB config descriptor"); + + USBEndpoints ep{}; + bool ok = false; + + for (uint8_t i = 0; i < cfg->bNumInterfaces && !ok; ++i) { + for (int a = 0; a < cfg->interface[i].num_altsetting && !ok; ++a) { + const auto& alt = cfg->interface[i].altsetting[a]; + if (alt.bInterfaceClass != MTP_CLASS || + alt.bInterfaceSubClass != MTP_SUBCLASS || + alt.bInterfaceProtocol != MTP_PROTOCOL) continue; + + ep.interface_num = alt.bInterfaceNumber; + for (uint8_t e = 0; e < alt.bNumEndpoints; ++e) { + const auto& ed = alt.endpoint[e]; + uint8_t type = ed.bmAttributes & LIBUSB_TRANSFER_TYPE_MASK; + bool in = (ed.bEndpointAddress & LIBUSB_ENDPOINT_DIR_MASK) == LIBUSB_ENDPOINT_IN; + + if (type == LIBUSB_TRANSFER_TYPE_BULK && in && !ep.bulk_in) + ep.bulk_in = ed.bEndpointAddress; + if (type == LIBUSB_TRANSFER_TYPE_BULK && !in && !ep.bulk_out) { + ep.bulk_out = ed.bEndpointAddress; + ep.bulk_out_max_pkt = ed.wMaxPacketSize; + } + if (type == LIBUSB_TRANSFER_TYPE_INTERRUPT && in) + ep.interrupt_in = ed.bEndpointAddress; + } + ok = (ep.bulk_in && ep.bulk_out); + } + } + libusb_free_config_descriptor(cfg); + + if (!ok) + throw MTPException(ResponseCode::GeneralError, "Could not locate MTP bulk endpoints"); + return ep; +} + +// ─── Connect ────────────────────────────────────────────────────────────────── +DeviceInfo MTPSession::connect() { + if (!find_device()) + throw MTPException(ResponseCode::GeneralError, "Nintendo Switch not found on USB bus"); + + libusb_device** list = nullptr; + ssize_t cnt = libusb_get_device_list(ctx_, &list); + if (cnt < 0) + throw MTPException(ResponseCode::GeneralError, "libusb_get_device_list failed"); + + libusb_device* dev = nullptr; + for (ssize_t i = 0; i < cnt; ++i) { + libusb_device_descriptor desc{}; + libusb_get_device_descriptor(list[i], &desc); + if (desc.idVendor == vendor_id_ && desc.idProduct == product_id_) { + dev = list[i]; + break; + } + } + + if (!dev) { + libusb_free_device_list(list, 1); + throw MTPException(ResponseCode::GeneralError, "Device disappeared after detection"); + } + + ep_ = find_endpoints(dev); + + if (libusb_open(dev, &handle_) != LIBUSB_SUCCESS) { + libusb_free_device_list(list, 1); + throw MTPException(ResponseCode::GeneralError, "Cannot open USB device"); + } + libusb_free_device_list(list, 1); + + // Detach kernel driver if attached (macOS shouldn't need this but be defensive) + if (libusb_kernel_driver_active(handle_, ep_.interface_num) == 1) + libusb_detach_kernel_driver(handle_, ep_.interface_num); + + int r = libusb_claim_interface(handle_, ep_.interface_num); + if (r != LIBUSB_SUCCESS) + throw MTPException(ResponseCode::GeneralError, + std::format("Cannot claim USB interface: {}", libusb_error_name(r))); + + // Clear any stale halt/stall state left over from a previous session or + // failed transfer — android-file-transfer-linux always does this before use. + libusb_clear_halt(handle_, ep_.bulk_in); + libusb_clear_halt(handle_, ep_.bulk_out); + + connected_.store(true); + + // ── MTP Session open ────────────────────────────────────────────────────── + // GetDeviceInfo doesn't require an open session + send_command(OpCode::GetDeviceInfo); + auto raw_info = receive_data(); + auto cmd_resp = receive_response(); + if (cmd_resp.code != ResponseCode::OK) + throw MTPException(cmd_resp.code, "GetDeviceInfo failed"); + + // OpenSession + uint32_t sid = SESSION_ID; + send_command(OpCode::OpenSession, std::span{&sid, 1}); + auto open_resp = receive_response(); + if (open_resp.code != ResponseCode::OK + && open_resp.code != ResponseCode::SessionAlreadyOpen) + throw MTPException(open_resp.code, "OpenSession failed"); + + // Parse DeviceInfo blob + const uint8_t* p = raw_info.data(); + const uint8_t* end = p + raw_info.size(); + // Skip the 12-byte container header that receive_data includes + if (raw_info.size() > CONTAINER_HEADER_SIZE) p += CONTAINER_HEADER_SIZE; + + DeviceInfo di{}; + if (p + 2 <= end) { di.standard_version = get_le16(p); p += 2; } + if (p + 4 <= end) { di.vendor_extension_id = get_le32(p); p += 4; } + if (p + 2 <= end) { di.vendor_extension_version = get_le16(p); p += 2; } + di.vendor_extension_desc = decode_mtp_string(p, end); + if (p + 2 <= end) { di.functional_mode = get_le16(p); p += 2; } + di.operations_supported = decode_u16_array(p, end); + di.events_supported = decode_u16_array(p, end); + di.device_props_supported = decode_u16_array(p, end); + di.capture_formats = decode_u16_array(p, end); + di.playback_formats = decode_u16_array(p, end); + di.manufacturer = decode_mtp_string(p, end); + di.model = decode_mtp_string(p, end); + di.device_version = decode_mtp_string(p, end); + di.serial_number = decode_mtp_string(p, end); + + device_info_ = di; // cache so MTPOperations can query supported ops + return di; +} + +// ─── Disconnect ─────────────────────────────────────────────────────────────── +void MTPSession::disconnect() { + if (!connected_.load()) return; + connected_.store(false); + + try { + send_command(OpCode::CloseSession); + receive_response(); // best-effort; ignore result + } catch (...) {} + + if (handle_) { + libusb_release_interface(handle_, ep_.interface_num); + libusb_close(handle_); + handle_ = nullptr; + } +} + +// ─── Raw USB I/O ────────────────────────────────────────────────────────────── +// Returns true if the libusb error code means the device is physically gone +static bool is_disconnect_error(int r) { + return r == LIBUSB_ERROR_NO_DEVICE + || r == LIBUSB_ERROR_IO + || r == LIBUSB_ERROR_PIPE + || r == LIBUSB_ERROR_OTHER; +} + +void MTPSession::bulk_write(std::span data, int timeout_ms) { + // One libusb_bulk_transfer per call — never split a transfer across multiple + // calls. If a call times out mid-transfer, calling bulk_transfer again on the + // remaining bytes starts a new USB bulk transaction; the device sees a broken + // packet boundary and the endpoint enters an inconsistent state. + // With 64 KiB chunks each call completes in ~1 ms at USB 2.0 speeds, so + // the timeout is a genuine error signal, not a flow-control retry trigger. + int transferred = 0; + int r = libusb_bulk_transfer( + handle_, ep_.bulk_out, + const_cast(data.data()), + static_cast(data.size()), + &transferred, timeout_ms); + + if (r != LIBUSB_SUCCESS) { + if (is_disconnect_error(r)) { + connected_.store(false); + throw MTPException(ResponseCode::GeneralError, + "Switch disconnected during transfer — the app may have cancelled " + "the install (e.g. wrong file format) or the USB cable was unplugged"); + } + if (r == LIBUSB_ERROR_TIMEOUT) + throw MTPException(ResponseCode::GeneralError, + std::format("USB write timeout ({}ms, {} bytes) — " + "Switch may be busy writing to storage", timeout_ms, + static_cast(data.size()))); + throw MTPException(ResponseCode::GeneralError, + std::format("USB write error: {}", libusb_error_name(r))); + } + if (transferred != static_cast(data.size())) + throw MTPException(ResponseCode::IncompleteTransfer, + std::format("USB write: sent {} of {} bytes", transferred, data.size())); +} + +std::vector MTPSession::bulk_read(size_t max_bytes, int timeout_ms) { + std::vector buf(max_bytes); + int transferred = 0; + int r = libusb_bulk_transfer( + handle_, ep_.bulk_in, + buf.data(), static_cast(max_bytes), + &transferred, timeout_ms); + + if (r != LIBUSB_SUCCESS && r != LIBUSB_ERROR_OVERFLOW) { + if (is_disconnect_error(r)) { + connected_.store(false); + throw MTPException(ResponseCode::GeneralError, + "Switch disconnected during read"); + } + if (r == LIBUSB_ERROR_TIMEOUT) + throw MTPException(ResponseCode::GeneralError, + std::format("USB read timeout after {}ms", timeout_ms)); + throw MTPException(ResponseCode::GeneralError, + std::format("USB read error: {}", libusb_error_name(r))); + } + buf.resize(static_cast(transferred)); + return buf; +} + +// ─── MTP container I/O ──────────────────────────────────────────────────────── +void MTPSession::send_command(OpCode op, std::span params, uint32_t* out_tid) { + last_op_code_ = static_cast(op); // echo in subsequent data container + uint32_t tid = next_transaction_id(); + if (out_tid) *out_tid = tid; + + size_t total = CONTAINER_HEADER_SIZE + params.size() * 4; + std::vector buf(total, 0); + + // Container layout: [0..3]=length [4..5]=type [6..7]=code [8..11]=tid [12+]=params + put_le32(buf.data() + 0, static_cast(total)); + buf[4] = static_cast(static_cast(ContainerType::Command) & 0xFF); + buf[5] = static_cast(static_cast(ContainerType::Command) >> 8); + buf[6] = static_cast(static_cast(op) & 0xFF); + buf[7] = static_cast(static_cast(op) >> 8); + put_le32(buf.data() + 8, tid); + + for (size_t i = 0; i < params.size(); ++i) + put_le32(buf.data() + CONTAINER_HEADER_SIZE + i * 4, params[i]); + + bulk_write(buf, TIMEOUT_CMD_MS); +} + +void MTPSession::send_data(std::span payload) { + // MTP spec §6.4: data container code field must echo the initiating command's opcode. + // DBI and some other implementations validate this and return OperationNotSupported + // if it's wrong (they use it to route the payload to the right handler). + uint32_t tid = transaction_id_; + size_t total = CONTAINER_HEADER_SIZE + payload.size(); + + std::vector buf(total); + put_le32(buf.data(), static_cast(total)); + buf[4] = static_cast(static_cast(ContainerType::Data) & 0xFF); + buf[5] = static_cast(static_cast(ContainerType::Data) >> 8); + buf[6] = static_cast(last_op_code_ & 0xFF); + buf[7] = static_cast(last_op_code_ >> 8); + put_le32(buf.data() + 8, tid); + std::memcpy(buf.data() + CONTAINER_HEADER_SIZE, payload.data(), payload.size()); + + bulk_write(buf, TIMEOUT_WRITE_MS); +} + +std::vector MTPSession::receive_data() { + // First read: get container header + however much data fits in one transfer + auto first = bulk_read(CHUNK_SIZE, TIMEOUT_READ_MS); + if (first.size() < CONTAINER_HEADER_SIZE) + throw MTPException(ResponseCode::GeneralError, "Truncated MTP container header"); + + uint32_t total_length = get_le32(first.data()); + uint16_t type = get_le16(first.data() + 4); + + if (static_cast(type) == ContainerType::Response) { + // Device sent a response instead of data — parse and throw + ResponseCode rc = static_cast(get_le16(first.data() + 6)); + if (rc != ResponseCode::OK) + throw MTPException(rc, MTPException::code_name(rc)); + return first; + } + + std::vector data = std::move(first); + // Read remaining chunks if total_length > what we received + while (data.size() < total_length) { + size_t remaining = total_length - data.size(); + auto chunk = bulk_read(std::min(remaining, CHUNK_SIZE), TIMEOUT_READ_MS); + if (chunk.empty()) break; + data.insert(data.end(), chunk.begin(), chunk.end()); + } + return data; +} + +CommandResponse MTPSession::receive_response(int timeout_ms) { + auto buf = bulk_read(SMALL_CHUNK_SIZE, timeout_ms); + if (buf.size() < CONTAINER_HEADER_SIZE) + throw MTPException(ResponseCode::GeneralError, "Truncated MTP response"); + + CommandResponse resp{}; + resp.code = static_cast(get_le16(buf.data() + 6)); + uint32_t length = get_le32(buf.data()); + size_t n_params = (length > CONTAINER_HEADER_SIZE) + ? (length - CONTAINER_HEADER_SIZE) / 4 : 0; + for (size_t i = 0; i < n_params && CONTAINER_HEADER_SIZE + i*4+4 <= buf.size(); ++i) + resp.params.push_back(get_le32(buf.data() + CONTAINER_HEADER_SIZE + i*4)); + return resp; +} + +CommandResponse MTPSession::command(OpCode op, std::span params) { + send_command(op, params); + return receive_response(); +} + +// ─── Chunked file receive (GetObject) ───────────────────────────────────────── +void MTPSession::receive_data_to_file(const std::string& dest_path, + uint64_t expected_size, + const ProgressFn& progress, + std::atomic& cancel) { + std::ofstream ofs(dest_path, std::ios::binary | std::ios::trunc); + if (!ofs) throw MTPException(ResponseCode::GeneralError, + std::format("Cannot open destination file: {}", dest_path)); + + // Read the header chunk + auto header_chunk = bulk_read(CHUNK_SIZE, TIMEOUT_READ_MS); + if (header_chunk.size() < CONTAINER_HEADER_SIZE) + throw MTPException(ResponseCode::GeneralError, "Truncated data container header"); + + uint32_t total_length = get_le32(header_chunk.data()); + uint64_t payload_size = (total_length > CONTAINER_HEADER_SIZE) + ? total_length - CONTAINER_HEADER_SIZE : 0; + + // Write payload portion of first chunk + size_t first_payload = header_chunk.size() > CONTAINER_HEADER_SIZE + ? header_chunk.size() - CONTAINER_HEADER_SIZE : 0; + if (first_payload) + ofs.write(reinterpret_cast(header_chunk.data() + CONTAINER_HEADER_SIZE), + static_cast(first_payload)); + + uint64_t written = first_payload; + if (progress) progress(written, expected_size ? expected_size : payload_size); + + while (written < payload_size) { + if (cancel.load()) { + ofs.close(); + std::remove(dest_path.c_str()); + throw MTPException(ResponseCode::TransactionCancelled, "Transfer cancelled"); + } + size_t want = std::min(CHUNK_SIZE, payload_size - written); + auto chunk = bulk_read(want, TIMEOUT_READ_MS); + if (chunk.empty()) break; + ofs.write(reinterpret_cast(chunk.data()), + static_cast(chunk.size())); + written += chunk.size(); + if (progress) progress(written, expected_size ? expected_size : payload_size); + } + ofs.close(); +} + +// ─── Chunked file send (SendObject) ─────────────────────────────────────────── +void MTPSession::send_data_from_file(const std::string& src_path, + uint64_t file_size, + OpCode op, + const ProgressFn& progress, + std::atomic& cancel) { + std::ifstream ifs(src_path, std::ios::binary); + if (!ifs) throw MTPException(ResponseCode::GeneralError, + std::format("Cannot open source file: {}", src_path)); + + uint32_t tid = transaction_id_; + uint64_t total = CONTAINER_HEADER_SIZE + file_size; + uint32_t wire_len = (total > 0xFFFFFFFFu) ? 0xFFFFFFFFu + : static_cast(total); + + // Build 12-byte container header + std::array hdr{}; + put_le32(hdr.data(), wire_len); + hdr[4] = static_cast(static_cast(ContainerType::Data) & 0xFF); + hdr[5] = static_cast(static_cast(ContainerType::Data) >> 8); + hdr[6] = static_cast(static_cast(op) & 0xFF); + hdr[7] = static_cast(static_cast(op) >> 8); + put_le32(hdr.data() + 8, tid); + + // ── First USB packet ──────────────────────────────────────────────────── + // go-mtpfs sends exactly ONE USB max-packet as the first write: + // header (12 bytes) + first (max_packet_size - 12) bytes of file data. + // This gives the device a clean full USB packet containing the MTP header + // followed immediately by data, matching how every real MTP client behaves. + // Sending a 12-byte-only short packet (previous approach) causes DBI/Sphaira + // to think the data phase ended before any file bytes were delivered. + const size_t max_pkt = static_cast(ep_.bulk_out_max_pkt); // 512 HS / 1024 SS + size_t first_data_want = max_pkt > CONTAINER_HEADER_SIZE + ? max_pkt - CONTAINER_HEADER_SIZE : 0; + first_data_want = static_cast( + std::min(first_data_want, file_size)); + + std::vector first_pkt(CONTAINER_HEADER_SIZE + first_data_want); + std::memcpy(first_pkt.data(), hdr.data(), CONTAINER_HEADER_SIZE); + if (first_data_want > 0) + ifs.read(reinterpret_cast(first_pkt.data() + CONTAINER_HEADER_SIZE), + static_cast(first_data_want)); + size_t first_got = static_cast(ifs.gcount()); + first_pkt.resize(CONTAINER_HEADER_SIZE + first_got); + + bulk_write(first_pkt, TIMEOUT_WRITE_MS); + uint64_t sent = first_got; + if (progress) progress(sent, file_size); + + // ── Subsequent chunks ──────────────────────────────────────────────────── + // USB 3.0 SuperSpeed (max_pkt = 1024): use 512 KiB chunks — 32× larger than + // the go-mtpfs 16 KiB baseline. Each libusb_bulk_transfer call costs ~100 µs + // of host-side overhead; fewer, larger calls are needed to saturate USB 3.0. + // USB 2.0 High Speed (max_pkt = 512): keep 16 KiB per go-mtpfs. + const size_t xfer_chunk = (max_pkt >= 1024) ? CHUNK_SIZE_USB3 : CHUNK_SIZE; + + size_t last_write_size = first_pkt.size(); + std::vector buf(xfer_chunk); + while (sent < file_size) { + if (cancel.load()) + throw MTPException(ResponseCode::TransactionCancelled, "Transfer cancelled"); + + size_t want = static_cast(std::min(xfer_chunk, file_size - sent)); + ifs.read(reinterpret_cast(buf.data()), static_cast(want)); + auto got = static_cast(ifs.gcount()); + if (got == 0) break; + + // Use a longer per-chunk timeout for USB 3.0 large chunks: + // 512 KiB at even 1 MB/s = 512 ms; 10 s gives plenty of margin. + const int chunk_timeout = (max_pkt >= 1024) ? 10000 : TIMEOUT_WRITE_MS; + bulk_write(std::span(buf.data(), got), chunk_timeout); + last_write_size = got; + sent += got; + if (progress) progress(sent, file_size); + + if (cancel.load()) + throw MTPException(ResponseCode::TransactionCancelled, "Transfer cancelled"); + } + + // ── Zero-length packet ───────────────────────────────────────────────── + // go-mtpfs: "if lastTransfer % packetSize == 0, write a short packet just + // to be sure." Without it, a packet-size-aligned last chunk has no natural + // short-packet terminator and the device may hang waiting for more data. + if (last_write_size % max_pkt == 0) { + int dummy_tr = 0; + libusb_bulk_transfer(handle_, ep_.bulk_out, nullptr, 0, &dummy_tr, 250); + } +} + +} // namespace mtp diff --git a/src/mtp/MTPSession.hpp b/src/mtp/MTPSession.hpp new file mode 100644 index 0000000..c1ab9f5 --- /dev/null +++ b/src/mtp/MTPSession.hpp @@ -0,0 +1,125 @@ +#pragma once +#include "MTPProtocol.hpp" +#include +#include +#include +#include +#include +#include + +namespace mtp { + +struct CommandResponse { + ResponseCode code; + std::vector params; +}; + +struct USBEndpoints { + uint8_t bulk_in = 0; + uint8_t bulk_out = 0; + uint8_t interrupt_in = 0; + int interface_num = 0; + int bulk_out_max_pkt = 512; // wMaxPacketSize: 512 for USB 2.0 HS, 1024 for SS +}; + +using ProgressFn = std::function; + +// MTPSession owns the libusb handle, USB endpoints, and MTP session state. +// All operations are serialized through the session mutex — MTP is strictly +// single-threaded from the device's perspective. +class MTPSession { +public: + MTPSession(); + ~MTPSession(); + + MTPSession(const MTPSession&) = delete; + MTPSession& operator=(const MTPSession&) = delete; + + // Scan USB bus, open the Switch, negotiate MTP session. + // Returns DeviceInfo on success; throws MTPException on failure. + DeviceInfo connect(); + + // Close MTP session and release USB resources. + void disconnect(); + + bool is_connected() const { return connected_.load(); } + + // ── Low-level MTP API (called by MTPOperations) ────────────────────────── + + // Send a command container with up to 5 parameters. + // Returns the assigned transaction_id via the optional out-param. + void send_command(OpCode op, + std::span params = {}, + uint32_t* out_tid = nullptr); + + // Send a data container following a command. + void send_data(std::span data); + + // Receive a data container into a heap buffer. + std::vector receive_data(); + + // Chunked receive directly into a file — avoids buffering whole file in RAM. + void receive_data_to_file(const std::string& dest_path, + uint64_t expected_size, + const ProgressFn& progress, + std::atomic& cancel); + + // Chunked send of a file as a data container. + // op must be the OpCode from the preceding send_command() call so the + // data container echoes the correct operation code (MTP spec §6.4). + void send_data_from_file(const std::string& src_path, + uint64_t file_size, + OpCode op, + const ProgressFn& progress, + std::atomic& cancel); + + // Receive the response container after a command (+optional data exchange). + // Pass TIMEOUT_INSTALL_MS after large file transfers so post-install DB work + // on the Switch side has time to complete before we declare a timeout error. + CommandResponse receive_response(int timeout_ms = TIMEOUT_CMD_MS); + + // Convenience: send command then immediately receive response (no data phase). + CommandResponse command(OpCode op, std::span params = {}); + + uint32_t next_transaction_id() { return ++transaction_id_; } + + // Accessors for device metadata + uint16_t vendor_id() const { return vendor_id_; } + uint16_t product_id() const { return product_id_; } + std::string device_name() const { return device_name_; } + const DeviceInfo& device_info() const { return device_info_; } + + bool supports_op(OpCode op) const { + auto code = static_cast(op); + for (auto c : device_info_.operations_supported) + if (c == code) return true; + return false; + } + + // Serialize all MTP access through this mutex (TransferEngine uses it) + std::mutex& mutex() { return mtx_; } + +private: + bool find_device(); + USBEndpoints find_endpoints(libusb_device* dev); + + // Raw USB bulk I/O + std::vector bulk_read(size_t max_bytes, int timeout_ms = TIMEOUT_MS); + void bulk_write(std::span data, int timeout_ms = TIMEOUT_MS); + + libusb_context* ctx_ = nullptr; + libusb_device_handle* handle_ = nullptr; + USBEndpoints ep_; + + uint32_t transaction_id_ = 0; + uint16_t last_op_code_ = 0; + uint16_t vendor_id_ = 0; + uint16_t product_id_ = 0; + DeviceInfo device_info_; + std::string device_name_; + + std::atomic connected_{false}; + mutable std::mutex mtx_; +}; + +} // namespace mtp diff --git a/src/transfer/TransferEngine.cpp b/src/transfer/TransferEngine.cpp new file mode 100644 index 0000000..2bab5e2 --- /dev/null +++ b/src/transfer/TransferEngine.cpp @@ -0,0 +1,180 @@ +#include "TransferEngine.hpp" +#include +#include +#include +#include +#include + +namespace fs = std::filesystem; + +namespace transfer { + +std::string TransferEngine::make_id() { + static std::mt19937_64 rng{std::random_device{}()}; + static std::uniform_int_distribution dist; + std::ostringstream ss; + ss << std::hex << std::setw(16) << std::setfill('0') << dist(rng); + return ss.str(); +} + +TransferEngine::TransferEngine(mtp::MTPSession& session) + : session_(session), ops_(session) +{ + worker_ = std::jthread([this](std::stop_token) { worker_loop(); }); +} + +TransferEngine::~TransferEngine() { + shutdown_.store(true); + cv_.notify_all(); + // std::jthread destructor requests stop and joins automatically +} + +std::shared_ptr +TransferEngine::enqueue_download(uint32_t handle, uint32_t storage_id, + const std::string& dest_path, + const std::string& filename, + uint64_t expected_size) { + auto item = std::make_shared(); + item->id = make_id(); + item->direction = Direction::Download; + item->filename = filename; + item->total_bytes = expected_size; + item->object_handle = handle; + item->storage_id = storage_id; + item->dest_path = dest_path; + + std::lock_guard lock(mtx_); + history_.push_back(item); + pending_.push(item); + cv_.notify_one(); + return item; +} + +std::shared_ptr +TransferEngine::enqueue_upload(const std::string& src_path, + uint32_t parent_handle, uint32_t storage_id, + const std::string& filename, + uint64_t file_size) { + auto item = std::make_shared(); + item->id = make_id(); + item->direction = Direction::Upload; + item->filename = filename; + item->total_bytes = file_size; + item->src_path = src_path; + item->parent_handle = parent_handle; + item->storage_id = storage_id; + + std::lock_guard lock(mtx_); + history_.push_back(item); + pending_.push(item); + cv_.notify_one(); + return item; +} + +void TransferEngine::cancel(const std::string& transfer_id) { + std::lock_guard lock(mtx_); + for (auto& item : history_) { + if (item->id == transfer_id) { + item->cancel.store(true); + break; + } + } +} + +void TransferEngine::cancel_all() { + std::lock_guard lock(mtx_); + for (auto& item : history_) + item->cancel.store(true); +} + +std::vector> TransferEngine::all_transfers() const { + std::lock_guard lock(mtx_); + return history_; +} + +bool TransferEngine::has_active() const { + std::lock_guard lock(mtx_); + for (auto& item : history_) + if (item->state.load() == State::Active) return true; + return false; +} + +void TransferEngine::set_completion_handler(CompletionFn fn) { + std::lock_guard lock(mtx_); + completion_ = std::move(fn); +} + +void TransferEngine::worker_loop() { + while (!shutdown_.load()) { + std::shared_ptr item; + { + std::unique_lock lock(mtx_); + cv_.wait(lock, [&]{ return shutdown_.load() || !pending_.empty(); }); + if (shutdown_.load()) break; + if (pending_.empty()) continue; + item = pending_.front(); + pending_.pop(); + } + + if (item->cancel.load()) { + item->state.store(State::Cancelled); + continue; + } + + item->state.store(State::Active); + item->started_at = std::chrono::steady_clock::now(); + + try { + if (item->direction == Direction::Download) + run_download(*item); + else + run_upload(*item); + + if (item->cancel.load()) + item->state.store(State::Cancelled); + else + item->state.store(State::Done); + } catch (const mtp::MTPException& e) { + item->error_msg = e.what(); + item->state.store(State::Failed); + } catch (const std::exception& e) { + item->error_msg = e.what(); + item->state.store(State::Failed); + } + + item->finished_at = std::chrono::steady_clock::now(); + + CompletionFn cb; + { + std::lock_guard lock(mtx_); + cb = completion_; + } + if (cb) cb(*item); + } +} + +void TransferEngine::run_download(TransferItem& item) { + // Ensure destination directory exists + if (auto parent = fs::path(item.dest_path).parent_path(); !parent.empty()) + fs::create_directories(parent); + + mtp::ProgressFn progress = [&](uint64_t done, uint64_t total) { + item.bytes_done.store(done); + if (total && !item.total_bytes) item.total_bytes = total; + }; + + ops_.get_object(item.object_handle, item.dest_path, item.total_bytes, + progress, item.cancel); +} + +void TransferEngine::run_upload(TransferItem& item) { + mtp::ProgressFn progress = [&](uint64_t done, uint64_t /*total*/) { + item.bytes_done.store(done); + }; + + ops_.send_object(item.storage_id, item.parent_handle, + item.src_path, item.filename, item.total_bytes, + progress, item.cancel); +} + +} // namespace transfer diff --git a/src/transfer/TransferEngine.hpp b/src/transfer/TransferEngine.hpp new file mode 100644 index 0000000..26df72b --- /dev/null +++ b/src/transfer/TransferEngine.hpp @@ -0,0 +1,115 @@ +#pragma once +#include "mtp/MTPSession.hpp" +#include "mtp/MTPOperations.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace transfer { + +enum class Direction { Download, Upload }; +enum class State { Queued, Active, Done, Failed, Cancelled }; + +struct TransferItem { + std::string id; + std::string filename; + Direction direction; + uint64_t total_bytes = 0; + std::string error_msg; + + std::atomic bytes_done{0}; + std::atomic state{State::Queued}; + std::atomic cancel{false}; + + std::chrono::steady_clock::time_point started_at; + std::chrono::steady_clock::time_point finished_at; + + float progress() const { + if (total_bytes == 0) return 0.f; + return static_cast(bytes_done.load()) / static_cast(total_bytes); + } + + // Bytes per second since transfer started + double speed_bps() const { + if (state.load() != State::Active) return 0.0; + auto elapsed = std::chrono::duration( + std::chrono::steady_clock::now() - started_at).count(); + return elapsed > 0.0 ? static_cast(bytes_done.load()) / elapsed : 0.0; + } + + double eta_seconds() const { + double sp = speed_bps(); + if (sp <= 0) return -1.0; + uint64_t remaining = total_bytes > bytes_done.load() + ? total_bytes - bytes_done.load() : 0; + return static_cast(remaining) / sp; + } + + // Download-specific fields + uint32_t object_handle = 0; + uint32_t storage_id = 0; + std::string dest_path; + + // Upload-specific fields + std::string src_path; + uint32_t parent_handle = 0; +}; + +// Single-worker transfer engine. MTP is inherently serial so one worker is +// correct; the worker uses dedicated operations to keep the mutex clean. +class TransferEngine { +public: + explicit TransferEngine(mtp::MTPSession& session); + ~TransferEngine(); + + // Returns a shared_ptr to the queued item (so the UI can observe progress). + std::shared_ptr + enqueue_download(uint32_t handle, uint32_t storage_id, + const std::string& dest_path, + const std::string& filename, + uint64_t expected_size); + + std::shared_ptr + enqueue_upload(const std::string& src_path, + uint32_t parent_handle, uint32_t storage_id, + const std::string& filename, + uint64_t file_size); + + void cancel(const std::string& transfer_id); + void cancel_all(); + + // Thread-safe snapshot for the UI to display + std::vector> all_transfers() const; + bool has_active() const; + + using CompletionFn = std::function; + void set_completion_handler(CompletionFn fn); + +private: + void worker_loop(); + void run_download(TransferItem& item); + void run_upload(TransferItem& item); + + mtp::MTPSession& session_; + mtp::MTPOperations ops_; + + mutable std::mutex mtx_; + std::condition_variable cv_; + std::queue> pending_; + std::vector> history_; // all items ever queued + + CompletionFn completion_; + + std::jthread worker_; + std::atomic shutdown_{false}; + static std::string make_id(); +}; + +} // namespace transfer diff --git a/src/ui/App.hpp b/src/ui/App.hpp new file mode 100644 index 0000000..89c73c0 --- /dev/null +++ b/src/ui/App.hpp @@ -0,0 +1,158 @@ +#pragma once +#include "mtp/MTPSession.hpp" +#include "mtp/MTPOperations.hpp" +#include "mtp/MTPProtocol.hpp" +#include "transfer/TransferEngine.hpp" +#include +#include +#include +#include +#include +#include +#include +#include + +namespace omniMTP { + +namespace fs = std::filesystem; + +// ── Entry in a file browser panel ──────────────────────────────────────────── +struct LocalEntry { + fs::path path; + std::string name; + bool is_dir = false; + uint64_t size = 0; + std::string size_str; + std::string date_str; +}; + +struct LocalDrive { + std::string path; + std::string name; + bool removable = false; +}; + +struct RemoteEntry { + uint32_t handle = 0; + uint32_t storage_id = 0; + std::string name; + bool is_dir = false; + uint64_t size = 0; + std::string size_str; + std::string date_str; +}; + +// Breadcrumb stack item +struct NavEntry { + uint32_t handle = 0; // mtp::ROOT_PARENT = root of storage + uint32_t storage_id = 0; + std::string label; +}; + +// ── Main application ────────────────────────────────────────────────────────── +class App { +public: + App(); + ~App(); + + void init(); + void shutdown(); + + // ── Web bridge API ──────────────────────────────────────────────────────── + std::string state_json() const; + std::string current_local_path() const; + void navigate_local(const std::string& path); + void navigate_local_up(); + void navigate_remote(uint32_t handle, uint32_t storage_id, const std::string& name); + void navigate_remote_up(); + void navigate_remote_to(size_t idx); + void set_active_storage(uint32_t storage_id); + void request_refresh_remote(); + void do_upload(const std::string& src_path); + void do_download(uint32_t handle, uint32_t storage_id, const std::string& filename, uint64_t size); + // Blocking download used by Finder drag-export (NSFilePromiseProvider). + void download_remote_to_path(uint32_t handle, uint32_t storage_id, + const std::string& dest_path, uint64_t size); + void do_cancel(const std::string& id); + void do_cancel_all(); + void do_delete(uint32_t handle); + void do_create_folder(const std::string& name); + void reconnect(); + + bool connected() const { return connected_.load(); } + + // Drop-zone rects (CSS pixels, origin top-left) updated by the web UI. + void update_drop_zones(double rx, double ry, double rw, double rh, + double lx, double ly, double lw, double lh); + // Returns "remote", "local", or "none". + std::string drop_target_at(double x, double y) const; + + // Called from the OS drag-and-drop callback (may be on a different thread). + void enqueue_finder_drop(const std::string& path); + +private: + // ── Local filesystem ────────────────────────────────────────────────────── + void refresh_local(const fs::path& path); + void refresh_local_drives(); + std::string active_local_drive_path() const; + + // ── Remote filesystem ───────────────────────────────────────────────────── + void refresh_remote(); + + // ── Transfer helpers ────────────────────────────────────────────────────── + void start_download(uint32_t handle, uint32_t storage_id, + const std::string& filename, uint64_t size); + void start_upload(const fs::path& src_path, uint64_t file_size); + + // ── Device connection loop (runs on background thread) ──────────────────── + void device_monitor_loop(std::stop_token st); + void on_device_connected(mtp::DeviceInfo di); + void on_device_disconnected(); + + // ── Status bar ──────────────────────────────────────────────────────────── + void set_status(const std::string& msg, float duration_sec = 5.f); + + // ── Finder drop processing (called from state_json) ─────────────────────── + void process_finder_drops(); + + // ── State: connection ───────────────────────────────────────────────────── + std::unique_ptr session_; + std::unique_ptr ops_; + std::unique_ptr engine_; + + std::atomic connected_{false}; + std::jthread monitor_thread_; + mutable std::mutex device_mtx_; + mtp::DeviceInfo device_info_; + + std::vector> storages_; + uint32_t active_storage_ = 0; + + // ── State: local panel ──────────────────────────────────────────────────── + fs::path local_path_; + std::vector local_entries_; + std::vector local_drives_; + mutable std::atomic local_needs_refresh_{false}; + + // ── State: remote panel ─────────────────────────────────────────────────── + std::vector remote_nav_stack_; + std::vector remote_entries_; + mutable bool remote_needs_refresh_ = true; + bool remote_refreshing_ = false; + + // Status bar message with timeout + std::string status_msg_; + float status_msg_timer_ = 0.f; + + // Files/folders dropped from macOS Finder. + // Written from the drop callback thread, read + cleared elsewhere. + std::vector finder_drops_; + std::mutex finder_drops_mtx_; + + struct DropZone { double x = 0, y = 0, w = 0, h = 0; }; + DropZone remote_drop_zone_; + DropZone local_drop_zone_; + bool drop_zones_valid_ = false; +}; + +} // namespace omniMTP diff --git a/src/ui/App.mm b/src/ui/App.mm new file mode 100644 index 0000000..8772fdd --- /dev/null +++ b/src/ui/App.mm @@ -0,0 +1,537 @@ +#include "App.hpp" +#import +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace fs = std::filesystem; +namespace omniMTP { + +// ─── Static helpers ─────────────────────────────────────────────────────────── + +static std::string date_str_from_fs(const fs::directory_entry& e) { + struct ::stat st{}; + if (::stat(e.path().c_str(), &st) == 0) { + char buf[32]; + std::strftime(buf, sizeof(buf), "%b %e, %Y", std::localtime(&st.st_mtime)); + return buf; + } + return ""; +} + +using CrumbList = std::vector>; +static CrumbList build_crumbs(const fs::path& path) { + std::vector> segs; + fs::path p = path; + while (true) { + auto par = p.parent_path(); + if (par == p) break; // reached root — skip it + segs.insert(segs.begin(), {p.filename().string(), p}); + p = par; + } + return segs; +} + +static std::string jstr(const std::string& s) { + std::string r; r.reserve(s.size()+4); + for (char c : s) { + if (c=='"') r+="\\\""; + else if (c=='\\') r+="\\\\"; + else if (c=='\n') r+="\\n"; + else if (c=='\r') r+="\\r"; + else if (c=='\t') r+="\\t"; + else r+=c; + } + return r; +} + +static std::string fmt_size(uint64_t b) { + if (!b) return "0 B"; + if (b<1024) return std::to_string(b)+" B"; + if (b<(1u<<20)) return std::to_string(b/1024)+" KB"; + if (b<(1ull<<30)) { char x[24]; snprintf(x,sizeof(x),"%.1f MB",b/1048576.0); return x; } + char x[24]; snprintf(x,sizeof(x),"%.2f GB",b/1073741824.0); return x; +} + +static std::string fmt_speed(double bps) { + char b[32]; + if (bps>1048576) snprintf(b,sizeof(b),"%.0f MB/s",bps/1048576.0); + else snprintf(b,sizeof(b),"%.0f KB/s",bps/1024.0); + return b; +} + +static std::string fmt_eta(double s) { + if (s<0) return "--:--"; + int si = (int)s; + if (si<60) { char b[16]; snprintf(b,sizeof(b),"0:%02d",si); return b; } + if (si<3600) { char b[16]; snprintf(b,sizeof(b),"%d:%02d",si/60,si%60); return b; } + char b[16]; snprintf(b,sizeof(b),"%dh%02dm",si/3600,(si%3600)/60); return b; +} + +// ─── App lifecycle ──────────────────────────────────────────────────────────── +App::App() : local_path_(fs::path(std::getenv("HOME") ? std::getenv("HOME") : "/")) {} +App::~App() { shutdown(); } + +void App::init() { + local_path_ = fs::path(std::getenv("HOME") ? std::getenv("HOME") : "/"); + refresh_local(local_path_); + monitor_thread_ = std::jthread([this](std::stop_token st) { device_monitor_loop(st); }); +} + +void App::shutdown() { + monitor_thread_.request_stop(); + engine_.reset(); + if (connected_.load()) + try { if (session_) session_->disconnect(); } catch (...) {} +} + +// ─── Device monitor ─────────────────────────────────────────────────────────── +void App::device_monitor_loop(std::stop_token st) { + while (!st.stop_requested()) { + if (!connected_.load()) { + try { + auto sess = std::make_unique(); + auto di = sess->connect(); + { + std::lock_guard lock(device_mtx_); + session_ = std::move(sess); + ops_ = std::make_unique(*session_); + engine_ = std::make_unique(*session_); + engine_->set_completion_handler([this](const transfer::TransferItem& item) { + if (item.state.load() != transfer::State::Done) return; + if (item.direction == transfer::Direction::Download) + local_needs_refresh_.store(true); + else + remote_needs_refresh_ = true; + }); + } + on_device_connected(std::move(di)); + } catch (...) {} + } else { + bool transfer_active = false; + { + std::lock_guard lock(device_mtx_); + transfer_active = engine_ && engine_->has_active(); + } + if (!transfer_active) { + mtp::MTPOperations* ops_raw = nullptr; + { + std::lock_guard lock(device_mtx_); + ops_raw = ops_.get(); + } + if (ops_raw) { + try { ops_raw->get_storage_ids(); } + catch (...) { on_device_disconnected(); } + } + } + } + for (int i = 0; i < 8 && !st.stop_requested(); ++i) + std::this_thread::sleep_for(std::chrono::milliseconds(250)); + } +} + +void App::on_device_connected(mtp::DeviceInfo di) { + { + std::lock_guard lock(device_mtx_); + device_info_ = std::move(di); + storages_.clear(); + remote_nav_stack_.clear(); + remote_entries_.clear(); + try { + auto ids = ops_->get_storage_ids(); + for (auto id : ids) { + auto si = ops_->get_storage_info(id); + storages_.emplace_back(id, std::move(si)); + } + if (!storages_.empty()) { + active_storage_ = storages_.front().first; + const auto& si = storages_.front().second; + std::string label = si.description.empty() + ? std::format("Storage {:04X}", active_storage_) + : si.description; + remote_nav_stack_.push_back({mtp::ROOT_PARENT, active_storage_, label}); + } + } catch (...) {} + } + connected_.store(true); + remote_needs_refresh_ = true; + set_status(std::format("Connected {}", device_info_.model)); + refresh_remote(); +} + +void App::on_device_disconnected() { + { + std::lock_guard lock(device_mtx_); + if (engine_) { engine_->cancel_all(); engine_.reset(); } + ops_.reset(); + if (session_) { try { session_->disconnect(); } catch (...) {} session_.reset(); } + storages_.clear(); + remote_entries_.clear(); + remote_nav_stack_.clear(); + } + connected_.store(false); + remote_needs_refresh_ = false; + set_status("Switch disconnected"); +} + +// ─── Local filesystem ───────────────────────────────────────────────────────── +void App::refresh_local(const fs::path& path) { + local_entries_.clear(); + try { + for (auto& e : fs::directory_iterator(path, + fs::directory_options::skip_permission_denied)) { + LocalEntry le{}; + le.path = e.path(); + le.name = e.path().filename().string(); + le.is_dir = e.is_directory(); + if (!le.is_dir) { le.size = e.file_size(); le.size_str = fmt_size(le.size); } + le.date_str = date_str_from_fs(e); + local_entries_.push_back(std::move(le)); + } + std::sort(local_entries_.begin(), local_entries_.end(), [](auto& a, auto& b) { + if (a.is_dir != b.is_dir) return a.is_dir > b.is_dir; + return a.name < b.name; + }); + } catch (...) {} + local_path_ = path; +} + +void App::refresh_local_drives() { + local_drives_.clear(); + @autoreleasepool { + NSFileManager* fm = NSFileManager.defaultManager; + NSArray* keys = @[ + NSURLVolumeNameKey, + NSURLVolumeIsRemovableKey, + ]; + NSArray* urls = + [fm mountedVolumeURLsIncludingResourceValuesForKeys:keys + options:NSVolumeEnumerationSkipHiddenVolumes]; + + bool has_data_volume = false; + for (NSURL* url in urls) { + if ([url.path isEqualToString:@"/System/Volumes/Data"]) + has_data_volume = true; + } + + for (NSURL* url in urls) { + NSString* path = url.path; + if (!path || path.length == 0) continue; + std::string mount = path.UTF8String; + + if (mount == "/dev" || mount == "/home" || mount == "/net") continue; + if (mount.rfind("/private/", 0) == 0) continue; + if (mount.rfind("/System/Volumes/", 0) == 0 && mount != "/System/Volumes/Data") continue; + if (mount == "/" && has_data_volume) continue; + + NSString* vol_name = nil; + NSNumber* removable = nil; + [url getResourceValue:&vol_name forKey:NSURLVolumeNameKey error:nil]; + [url getResourceValue:&removable forKey:NSURLVolumeIsRemovableKey error:nil]; + + LocalDrive drive{}; + drive.path = mount; + drive.name = vol_name.length ? vol_name.UTF8String : fs::path(mount).filename().string(); + if (drive.name.empty()) drive.name = mount; + drive.removable = removable.boolValue; + local_drives_.push_back(std::move(drive)); + } + } + + std::sort(local_drives_.begin(), local_drives_.end(), + [](const LocalDrive& a, const LocalDrive& b) { + if (a.removable != b.removable) return a.removable < b.removable; + return a.name < b.name; + }); +} + +std::string App::active_local_drive_path() const { + std::error_code ec; + fs::path current = fs::weakly_canonical(local_path_, ec); + if (ec) current = local_path_; + const std::string current_str = current.string(); + + std::string best; + size_t best_len = 0; + for (const auto& drive : local_drives_) { + fs::path root = fs::path(drive.path); + fs::path root_canonical = fs::weakly_canonical(root, ec); + if (ec) root_canonical = root; + const std::string root_str = root_canonical.string(); + + const bool under = + current == root_canonical || + current_str.rfind(root_str + "/", 0) == 0; + if (under && root_str.size() >= best_len) { + best = drive.path; + best_len = root_str.size(); + } + } + if (!best.empty()) return best; + return local_drives_.empty() ? "" : local_drives_.front().path; +} + +// ─── Remote filesystem ──────────────────────────────────────────────────────── +void App::refresh_remote() { + if (!connected_.load() || remote_refreshing_) return; + remote_refreshing_ = true; + remote_entries_.clear(); + try { + std::lock_guard lock(device_mtx_); + if (!ops_ || remote_nav_stack_.empty()) { remote_refreshing_ = false; return; } + const auto& top = remote_nav_stack_.back(); + auto handles = ops_->get_object_handles(top.storage_id, top.handle); + for (auto h : handles) { + auto oi = ops_->get_object_info(h); + RemoteEntry re{}; + re.handle = h; + re.storage_id = oi.storage_id; + re.name = oi.filename; + re.is_dir = oi.is_directory(); + re.size = oi.compressed_size; + re.size_str = re.is_dir ? "" : fmt_size(re.size); + re.date_str = oi.date_modified.empty() ? oi.date_created : oi.date_modified; + remote_entries_.push_back(std::move(re)); + } + std::sort(remote_entries_.begin(), remote_entries_.end(), [](auto& a, auto& b) { + if (a.is_dir != b.is_dir) return a.is_dir > b.is_dir; + return a.name < b.name; + }); + } catch (const mtp::MTPException& e) { + set_status(std::format("Error listing: {}", e.what())); + } + remote_refreshing_ = false; + remote_needs_refresh_ = false; +} + +// ─── Transfers / misc ───────────────────────────────────────────────────────── +void App::start_download(uint32_t handle, uint32_t storage_id, + const std::string& filename, uint64_t size) { + if (!engine_) return; + engine_->enqueue_download(handle, storage_id, + (local_path_ / filename).string(), filename, size); + set_status(std::format("Downloading {}", filename)); +} +void App::start_upload(const fs::path& src, uint64_t sz) { + if (!engine_ || remote_nav_stack_.empty()) return; + const auto& top = remote_nav_stack_.back(); + engine_->enqueue_upload(src.string(), top.handle, top.storage_id, + src.filename().string(), sz); + set_status(std::format("Uploading {}", src.filename().string())); +} +void App::set_status(const std::string& msg, float dur) { + status_msg_ = msg; status_msg_timer_ = dur; +} +void App::enqueue_finder_drop(const std::string& path) { + std::lock_guard lock(finder_drops_mtx_); + finder_drops_.push_back(path); +} + +void App::update_drop_zones(double rx, double ry, double rw, double rh, + double lx, double ly, double lw, double lh) { + remote_drop_zone_ = {rx, ry, rw, rh}; + local_drop_zone_ = {lx, ly, lw, lh}; + drop_zones_valid_ = rw > 0 && rh > 0 && lw > 0 && lh > 0; +} + +std::string App::drop_target_at(double x, double y) const { + if (!drop_zones_valid_) return "none"; + auto inside = [](const DropZone& z, double px, double py) { + return px >= z.x && px <= z.x + z.w && py >= z.y && py <= z.y + z.h; + }; + if (inside(remote_drop_zone_, x, y)) return "remote"; + if (inside(local_drop_zone_, x, y)) return "local"; + return "none"; +} + +// ─── Web bridge API ─────────────────────────────────────────────────────────── + +std::string App::current_local_path() const { return local_path_.string(); } + +std::string App::state_json() const { + // Process any pending finder drops + { + const_cast(this)->process_finder_drops(); + } + if (local_needs_refresh_.load()) { + local_needs_refresh_.store(false); + const_cast(this)->refresh_local(local_path_); + } + if (remote_needs_refresh_ && connected_.load()) { + remote_needs_refresh_ = false; + const_cast(this)->refresh_remote(); + } + const_cast(this)->refresh_local_drives(); + const std::string active_drive = active_local_drive_path(); + + bool conn = connected_.load(); + std::string dn; + std::vector> stor; + uint32_t astor; + std::vector nav; + bool refreshing; + { + std::lock_guard lock(device_mtx_); + dn = device_info_.model; + stor = storages_; + astor = active_storage_; + nav = remote_nav_stack_; + refreshing = remote_refreshing_; + } + + std::string j = "{"; + j += "\"connected\":" + std::string(conn?"true":"false") + ","; + j += "\"deviceName\":\"" + jstr(dn) + "\","; + j += "\"storages\":["; + for (size_t i=0;iall_transfers(); + for (size_t i=0;istate.load(); + char pr[16]; snprintf(pr,sizeof(pr),"%.4f",t->progress()); + j+="{\"id\":\""+jstr(t->id)+"\",\"filename\":\""+jstr(t->filename)+"\","; + j+="\"direction\":"+std::to_string((int)t->direction)+",\"state\":"+std::to_string((int)st)+","; + j+="\"bytesDone\":"+std::to_string(t->bytes_done.load())+",\"totalBytes\":"+std::to_string(t->total_bytes)+","; + j+="\"progress\":"+std::string(pr)+",\"speedStr\":\""+fmt_speed(t->speed_bps())+"\","; + j+="\"speedBps\":"+std::to_string((uint64_t)t->speed_bps())+","; + j+="\"etaStr\":\""+fmt_eta(t->eta_seconds())+"\",\"error\":\""+jstr(t->error_msg)+"\"}"; + if (i+1 drops; + { + std::lock_guard lock(finder_drops_mtx_); + drops.swap(finder_drops_); + } + for (auto& dropped : drops) { + fs::path p(dropped); + std::error_code ec; + if (fs::is_directory(p, ec)) { + refresh_local(p); + } else if (!ec && connected_.load()) { + auto sz = fs::file_size(p, ec); + if (!ec) start_upload(p, sz); + } + } +} + +void App::navigate_local(const std::string& p) { + refresh_local(fs::path(p == "~" ? (std::getenv("HOME") ? std::getenv("HOME") : "/") : p)); +} +void App::navigate_local_up() { + if (local_path_.has_parent_path() && local_path_ != local_path_.parent_path()) + refresh_local(local_path_.parent_path()); +} +void App::navigate_remote(uint32_t h, uint32_t s, const std::string& name) { + remote_nav_stack_.push_back({h, s, name}); + refresh_remote(); +} +void App::navigate_remote_up() { + if (remote_nav_stack_.size() > 1) { + remote_nav_stack_.pop_back(); + refresh_remote(); + } +} +void App::navigate_remote_to(size_t idx) { + if (idx < remote_nav_stack_.size()) { + remote_nav_stack_.resize(idx+1); + refresh_remote(); + } +} +void App::set_active_storage(uint32_t id) { + std::string label; + { + std::lock_guard lock(device_mtx_); + for (auto& [sid,si]: storages_) if (sid==id) { label=si.description; break; } + active_storage_ = id; + } + remote_nav_stack_ = {{mtp::ROOT_PARENT, id, label.empty()?std::format("{:04X}",id):label}}; + refresh_remote(); +} +void App::request_refresh_remote() { refresh_remote(); } +void App::do_upload(const std::string& src) { + fs::path p(src); + std::error_code ec; + auto sz = fs::file_size(p, ec); + if (!ec) start_upload(p, sz); +} +void App::do_download(uint32_t h, uint32_t s, const std::string& fn, uint64_t sz) { + start_download(h, s, fn, sz); +} +void App::download_remote_to_path(uint32_t handle, uint32_t storage_id, + const std::string& dest_path, uint64_t size) { + std::lock_guard lock(device_mtx_); + if (!ops_) throw std::runtime_error("Not connected"); + std::atomic cancel{false}; + mtp::ProgressFn noop = [](uint64_t, uint64_t) {}; + ops_->get_object(handle, dest_path, size, noop, cancel); +} +void App::do_cancel(const std::string& id) { if (engine_) engine_->cancel(id); } +void App::do_cancel_all() { if (engine_) engine_->cancel_all(); } +void App::do_delete(uint32_t h) { + try { std::lock_guard lock(device_mtx_); if (ops_) ops_->delete_object(h); } + catch (...) {} + refresh_remote(); +} +void App::do_create_folder(const std::string& name) { + if (remote_nav_stack_.empty()) return; + const auto& top = remote_nav_stack_.back(); + try { std::lock_guard lock(device_mtx_); if (ops_) ops_->create_directory(top.storage_id, top.handle, name); } + catch (...) {} + refresh_remote(); +} +void App::reconnect() { on_device_disconnected(); } + +} // namespace omniMTP diff --git a/src/ui/WebUI.hpp b/src/ui/WebUI.hpp new file mode 100644 index 0000000..609fbc4 --- /dev/null +++ b/src/ui/WebUI.hpp @@ -0,0 +1,15 @@ +#pragma once +#include "App.hpp" + +namespace omniMTP { + +class WebUI { +public: + explicit WebUI(App& app); + ~WebUI(); + void run(); +private: + App& app_; +}; + +} // namespace omniMTP diff --git a/src/ui/WebUI.mm b/src/ui/WebUI.mm new file mode 100644 index 0000000..b106d15 --- /dev/null +++ b/src/ui/WebUI.mm @@ -0,0 +1,741 @@ +#include "WebUI.hpp" +#import +#import +#include +#include + +// ─── Forward declarations ───────────────────────────────────────────────────── +@class OmniBridge; +@class OmniAppDelegate; + +// ─── OmniBridge: JS → C++ message handler ───────────────────────────────────── +@interface OmniBridge : NSObject +- (instancetype)initWithApp:(omniMTP::App*)app webView:(WKWebView*)webView; +@end + +@implementation OmniBridge { + omniMTP::App* _app; + WKWebView* _webView; +} + +- (instancetype)initWithApp:(omniMTP::App*)app webView:(WKWebView*)webView { + if ((self = [super init])) { + _app = app; + _webView = webView; + } + return self; +} + +- (void)userContentController:(WKUserContentController*)ucc + didReceiveScriptMessage:(WKScriptMessage*)message { + (void)ucc; + if (![message.name isEqualToString:@"bridge"]) return; + NSDictionary* body = message.body; + if (![body isKindOfClass:[NSDictionary class]]) return; + + NSNumber* msgId = body[@"id"]; + NSString* action = body[@"action"]; + if (!msgId || !action) return; + + long long rid = msgId.longLongValue; + + // All dispatched on main thread already (WKWebView guarantee), but we + // use dispatch_async to avoid blocking the JS engine during heavy ops. + dispatch_async(dispatch_get_main_queue(), ^{ + [self handleAction:action body:body responseId:rid]; + }); +} + +- (void)handleAction:(NSString*)action body:(NSDictionary*)body responseId:(long long)rid { + NSString* result = nil; + + if ([action isEqualToString:@"get_state"]) { + std::string json = _app->state_json(); + result = [NSString stringWithUTF8String:json.c_str()]; + // result is raw JSON object, send directly + [self sendRawResult:result responseId:rid]; + return; + + } else if ([action isEqualToString:@"navigate_local"]) { + NSString* path = body[@"path"]; + if (path) _app->navigate_local(path.UTF8String); + + } else if ([action isEqualToString:@"navigate_local_up"]) { + _app->navigate_local_up(); + + } else if ([action isEqualToString:@"refresh_local"]) { + _app->navigate_local(_app->current_local_path()); + + } else if ([action isEqualToString:@"navigate_remote"]) { + NSNumber* handle = body[@"handle"]; + NSNumber* storageId = body[@"storageId"]; + NSString* name = body[@"name"]; + if (handle && storageId && name) + _app->navigate_remote(handle.unsignedIntValue, + storageId.unsignedIntValue, + name.UTF8String); + + } else if ([action isEqualToString:@"navigate_remote_up"]) { + _app->navigate_remote_up(); + + } else if ([action isEqualToString:@"navigate_remote_to"]) { + NSNumber* index = body[@"index"]; + if (index) _app->navigate_remote_to((size_t)index.unsignedIntegerValue); + + } else if ([action isEqualToString:@"refresh_remote"]) { + _app->request_refresh_remote(); + + } else if ([action isEqualToString:@"set_storage"]) { + NSNumber* storageId = body[@"storageId"]; + if (storageId) _app->set_active_storage(storageId.unsignedIntValue); + + } else if ([action isEqualToString:@"start_upload"]) { + NSString* srcPath = body[@"srcPath"]; + if (srcPath && srcPath.length > 0) _app->do_upload(srcPath.UTF8String); + + } else if ([action isEqualToString:@"start_download"]) { + NSNumber* handle = body[@"handle"]; + NSNumber* storageId = body[@"storageId"]; + NSString* filename = body[@"filename"]; + NSNumber* size = body[@"size"]; + if (handle && storageId && filename && size) + _app->do_download(handle.unsignedIntValue, + storageId.unsignedIntValue, + filename.UTF8String, + size.unsignedLongLongValue); + + } else if ([action isEqualToString:@"cancel_transfer"]) { + NSString* tid = body[@"id"]; + if (tid) _app->do_cancel(tid.UTF8String); + + } else if ([action isEqualToString:@"cancel_all"]) { + _app->do_cancel_all(); + + } else if ([action isEqualToString:@"delete_remote"]) { + NSNumber* handle = body[@"handle"]; + if (handle) _app->do_delete(handle.unsignedIntValue); + + } else if ([action isEqualToString:@"create_folder"]) { + NSString* name = body[@"name"]; + if (name && name.length > 0) _app->do_create_folder(name.UTF8String); + + } else if ([action isEqualToString:@"reconnect"]) { + _app->reconnect(); + + } else if ([action isEqualToString:@"open_file_picker"]) { + // Open NSOpenPanel to pick files for upload + dispatch_async(dispatch_get_main_queue(), ^{ + NSOpenPanel* panel = [NSOpenPanel openPanel]; + panel.canChooseFiles = YES; + panel.canChooseDirectories = NO; + panel.allowsMultipleSelection = YES; + [panel beginWithCompletionHandler:^(NSModalResponse r) { + if (r == NSModalResponseOK) { + for (NSURL* url in panel.URLs) { + NSString* path = url.path; + if (path) self->_app->do_upload(path.UTF8String); + } + } + }]; + }); + + } else if ([action isEqualToString:@"update_drop_zones"]) { + NSDictionary* remote = body[@"remote"]; + NSDictionary* local = body[@"local"]; + if ([remote isKindOfClass:[NSDictionary class]] && [local isKindOfClass:[NSDictionary class]]) { + _app->update_drop_zones( + [remote[@"x"] doubleValue], [remote[@"y"] doubleValue], + [remote[@"w"] doubleValue], [remote[@"h"] doubleValue], + [local[@"x"] doubleValue], [local[@"y"] doubleValue], + [local[@"w"] doubleValue], [local[@"h"] doubleValue]); + } + } + + // Send null result for void actions + [self sendNullResult:rid]; +} + +- (void)sendRawResult:(NSString*)json responseId:(long long)rid { + NSString* js = [NSString stringWithFormat:@"window.bridgeResponse(%lld,%@)", rid, json]; + [_webView evaluateJavaScript:js completionHandler:nil]; +} + +- (void)sendNullResult:(long long)rid { + NSString* js = [NSString stringWithFormat:@"window.bridgeResponse(%lld,null)", rid]; + [_webView evaluateJavaScript:js completionHandler:nil]; +} + +// WKNavigationDelegate — log errors +- (void)webView:(WKWebView*)wv didFailNavigation:(WKNavigation*)nav withError:(NSError*)err { + (void)wv; (void)nav; + NSLog(@"[OmniMTP] WebView navigation failed: %@", err.localizedDescription); +} +- (void)webView:(WKWebView*)wv didFailProvisionalNavigation:(WKNavigation*)nav withError:(NSError*)err { + (void)wv; (void)nav; + NSLog(@"[OmniMTP] WebView provisional navigation failed: %@", err.localizedDescription); +} + +// WKUIDelegate — required for window.alert/confirm/prompt in WKWebView +- (void)webView:(WKWebView*)webView +runJavaScriptAlertPanelWithMessage:(NSString*)message + initiatedByFrame:(WKFrameInfo*)frame + completionHandler:(void (^)(void))completionHandler { + (void)webView; (void)frame; + NSAlert* alert = [[NSAlert alloc] init]; + alert.messageText = message; + [alert addButtonWithTitle:@"OK"]; + [alert runModal]; + completionHandler(); +} + +- (void)webView:(WKWebView*)webView +runJavaScriptConfirmPanelWithMessage:(NSString*)message + initiatedByFrame:(WKFrameInfo*)frame + completionHandler:(void (^)(BOOL result))completionHandler { + (void)webView; (void)frame; + NSAlert* alert = [[NSAlert alloc] init]; + alert.messageText = message; + [alert addButtonWithTitle:@"Delete"]; + [alert addButtonWithTitle:@"Cancel"]; + NSModalResponse response = [alert runModal]; + completionHandler(response == NSAlertFirstButtonReturn); +} + +@end + +// ─── Titlebar drag strip (WKWebView ignores -webkit-app-region) ─────────────── +static const CGFloat kTitlebarDragHeight = 38.0; +static const CGFloat kTrafficLightInset = 72.0; + +@interface OmniTitlebarDragView : NSView +@end + +@implementation OmniTitlebarDragView { + NSPoint _dragStartScreen; + NSPoint _windowStartOrigin; +} + +- (BOOL)mouseDownCanMoveWindow { + return YES; +} + +- (void)mouseDown:(NSEvent*)event { + (void)event; + _dragStartScreen = NSEvent.mouseLocation; + _windowStartOrigin = self.window.frame.origin; + + while (YES) { + NSEvent* next = [self.window nextEventMatchingMask: + NSEventMaskLeftMouseDragged | NSEventMaskLeftMouseUp + untilDate:[NSDate distantFuture] + inMode:NSEventTrackingRunLoopMode + dequeue:YES]; + if (!next || next.type == NSEventTypeLeftMouseUp) break; + + NSPoint current = NSEvent.mouseLocation; + [self.window setFrameOrigin:NSMakePoint( + _windowStartOrigin.x + (current.x - _dragStartScreen.x), + _windowStartOrigin.y + (current.y - _dragStartScreen.y))]; + } +} + +- (BOOL)acceptsFirstMouse:(NSEvent*)event { + (void)event; + return YES; +} + +@end + +// ─── Finder drag-export for remote MTP files ─────────────────────────────────── +@interface OmniExportPromiseDelegate : NSObject +@property (nonatomic, assign) omniMTP::App* app; +@property (nonatomic, assign) uint32_t handle; +@property (nonatomic, assign) uint32_t storageId; +@property (nonatomic, assign) uint64_t size; +@property (nonatomic, copy) NSString* filename; +@end + +@implementation OmniExportPromiseDelegate + +- (void)filePromiseProvider:(NSFilePromiseProvider*)provider + writePromiseToURL:(NSURL*)url + completionHandler:(void (^)(NSError* _Nullable))completionHandler { + (void)provider; + @try { + if (_app) _app->download_remote_to_path(_handle, _storageId, url.path.UTF8String, _size); + completionHandler(nil); + } @catch (NSException* ex) { + completionHandler([NSError errorWithDomain:@"OmniMTP" code:1 + userInfo:@{NSLocalizedDescriptionKey: ex.reason ?: @"Download failed"}]); + } +} + +- (NSString*)filePromiseProvider:(NSFilePromiseProvider*)provider + fileNameForType:(NSString*)fileType { + (void)provider; (void)fileType; + return _filename; +} + +- (void)filePromiseProvider:(NSFilePromiseProvider*)provider + didFinishWritingToURL:(NSURL*)url { + (void)provider; (void)url; +} + +@end + +// ─── OmniWebView: native drag-and-drop ──────────────────────────────────────── +@interface OmniWebView : WKWebView +- (instancetype)initWithFrame:(NSRect)frame + configuration:(WKWebViewConfiguration*)config + app:(omniMTP::App*)app; +@end + +@implementation OmniWebView { + omniMTP::App* _app; + BOOL _remoteDragHighlighted; + BOOL _localDragHighlighted; + NSPoint _mouseDownWebPoint; + NSString* _pendingDragJSON; + BOOL _nativeDragStarted; + NSArray* _exportDragEntries; +} + +- (instancetype)initWithFrame:(NSRect)frame + configuration:(WKWebViewConfiguration*)config + app:(omniMTP::App*)app { + if ((self = [super initWithFrame:frame configuration:config])) { + _app = app; + _remoteDragHighlighted = NO; + _localDragHighlighted = NO; + [self registerForDraggedTypes:@[NSPasteboardTypeFileURL]]; + } + return self; +} + +- (NSPoint)webPointFromEvent:(NSEvent*)event { + NSPoint loc = [self convertPoint:event.locationInWindow fromView:nil]; + return NSMakePoint(loc.x, self.bounds.size.height - loc.y); +} + +- (NSPoint)webPointFromDrag:(id)sender { + NSPoint loc = [self convertPoint:sender.draggingLocation fromView:nil]; + return NSMakePoint(loc.x, self.bounds.size.height - loc.y); +} + +- (NSString*)dropTargetAtWebPoint:(NSPoint)webPoint { + if (!_app) return @"none"; + std::string target = _app->drop_target_at(webPoint.x, webPoint.y); + return [NSString stringWithUTF8String:target.c_str()]; +} + +- (NSArray*)fileURLsFromDrag:(id)sender { + NSPasteboard* pb = sender.draggingPasteboard; + NSDictionary* opts = @{NSPasteboardURLReadingFileURLsOnlyKey: @YES}; + if ([pb canReadObjectForClasses:@[[NSURL class]] options:opts]) { + NSArray* urls = [pb readObjectsForClasses:@[[NSURL class]] options:opts]; + return urls ?: @[]; + } + return @[]; +} + +- (void)setRemoteDragOver:(BOOL)over { + if (_remoteDragHighlighted == over) return; + _remoteDragHighlighted = over; + NSString* js = over + ? @"document.getElementById('remote-files')?.classList.add('drag-over')" + : @"document.getElementById('remote-files')?.classList.remove('drag-over')"; + [self evaluateJavaScript:js completionHandler:nil]; +} + +- (void)setLocalDragOver:(BOOL)over { + if (_localDragHighlighted == over) return; + _localDragHighlighted = over; + NSString* js = over + ? @"document.getElementById('local-files')?.classList.add('drag-over')" + : @"document.getElementById('local-files')?.classList.remove('drag-over')"; + [self evaluateJavaScript:js completionHandler:nil]; +} + +- (void)mouseDown:(NSEvent*)event { + _mouseDownWebPoint = [self webPointFromEvent:event]; + _pendingDragJSON = nil; + _nativeDragStarted = NO; + [self evaluateJavaScript:@"window.omniClearSelection&&window.omniClearSelection()" + completionHandler:nil]; + NSString* js = [NSString stringWithFormat: + @"window.omniRemoteDragFilesAt(%f,%f)", _mouseDownWebPoint.x, _mouseDownWebPoint.y]; + [self evaluateJavaScript:js completionHandler:^(id value, NSError* err) { + (void)err; + if ([value isKindOfClass:[NSString class]] && [(NSString*)value length] > 0) + self->_pendingDragJSON = value; + }]; + [super mouseDown:event]; +} + +- (void)mouseDragged:(NSEvent*)event { + if (!_nativeDragStarted && _pendingDragJSON.length > 0 && _app && _app->connected()) { + NSPoint cur = [self webPointFromEvent:event]; + CGFloat dx = cur.x - _mouseDownWebPoint.x; + CGFloat dy = cur.y - _mouseDownWebPoint.y; + if (std::sqrt(dx * dx + dy * dy) >= 4.0) { + _nativeDragStarted = YES; + [self evaluateJavaScript:@"window.omniClearSelection&&window.omniClearSelection()" + completionHandler:nil]; + if ([self beginRemoteExportDrag:event json:_pendingDragJSON]) return; + } + } + if (!_nativeDragStarted) [super mouseDragged:event]; +} + +- (BOOL)beginRemoteExportDrag:(NSEvent*)event json:(NSString*)json { + NSData* data = [json dataUsingEncoding:NSUTF8StringEncoding]; + id parsed = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; + if (![parsed isKindOfClass:[NSArray class]] || [(NSArray*)parsed count] == 0) return NO; + + _exportDragEntries = [(NSArray*)parsed copy]; + + NSMutableArray* dragItems = [NSMutableArray array]; + CGFloat viewY = self.bounds.size.height - _mouseDownWebPoint.y; + NSRect frame = NSMakeRect(_mouseDownWebPoint.x - 1, viewY - 1, 2, 2); + + for (NSDictionary* entry in (NSArray*)parsed) { + NSNumber* handle = entry[@"handle"]; + NSNumber* storageId = entry[@"storageId"]; + NSString* name = entry[@"name"]; + NSNumber* size = entry[@"size"]; + if (!handle || !storageId || !name || !size) continue; + + OmniExportPromiseDelegate* delegate = [OmniExportPromiseDelegate new]; + delegate.app = _app; + delegate.handle = handle.unsignedIntValue; + delegate.storageId = storageId.unsignedIntValue; + delegate.size = size.unsignedLongLongValue; + delegate.filename = name; + + NSFilePromiseProvider* provider = + [[NSFilePromiseProvider alloc] initWithFileType:@"public.data" delegate:delegate]; + + NSDraggingItem* dragItem = [[NSDraggingItem alloc] initWithPasteboardWriter:provider]; + [dragItem setDraggingFrame:frame contents:nil]; + [dragItems addObject:dragItem]; + } + + if (dragItems.count == 0) { + _exportDragEntries = nil; + return NO; + } + [self evaluateJavaScript:@"window.omniClearSelection&&window.omniClearSelection()" + completionHandler:nil]; + [self beginDraggingSessionWithItems:dragItems event:event source:self]; + return YES; +} + +- (NSDragOperation)draggingSession:(NSDraggingSession*)session + sourceOperationMaskForDraggingContext:(NSDraggingContext)context { + (void)session; (void)context; + return NSDragOperationCopy; +} + +- (void)draggingSession:(NSDraggingSession*)session + endedAtPoint:(NSPoint)screenPoint + operation:(NSDragOperation)operation { + (void)session; (void)screenPoint; (void)operation; + _exportDragEntries = nil; +} + +- (NSDragOperation)draggingUpdated:(id)sender { + NSArray* urls = [self fileURLsFromDrag:sender]; + const BOOL exportDrag = _exportDragEntries.count > 0; + if (!exportDrag && urls.count == 0) { + [self setRemoteDragOver:NO]; + [self setLocalDragOver:NO]; + return NSDragOperationNone; + } + + NSString* target = [self dropTargetAtWebPoint:[self webPointFromDrag:sender]]; + if (exportDrag && [target isEqualToString:@"local"]) { + [self setLocalDragOver:YES]; + [self setRemoteDragOver:NO]; + return NSDragOperationCopy; + } + if (urls.count > 0 && [target isEqualToString:@"remote"] && _app && _app->connected()) { + [self setRemoteDragOver:YES]; + [self setLocalDragOver:NO]; + return NSDragOperationCopy; + } + if (urls.count > 0 && [target isEqualToString:@"local"]) { + [self setRemoteDragOver:NO]; + [self setLocalDragOver:NO]; + return NSDragOperationLink; + } + + [self setRemoteDragOver:NO]; + [self setLocalDragOver:NO]; + return exportDrag ? NSDragOperationCopy : NSDragOperationNone; +} + +- (NSDragOperation)draggingEntered:(id)sender { + return [self draggingUpdated:sender]; +} + +- (void)draggingExited:(id)sender { + (void)sender; + [self setRemoteDragOver:NO]; + [self setLocalDragOver:NO]; +} + +- (BOOL)performDragOperation:(id)sender { + [self setRemoteDragOver:NO]; + [self setLocalDragOver:NO]; + if (!_app) return NO; + + NSString* target = [self dropTargetAtWebPoint:[self webPointFromDrag:sender]]; + NSArray* urls = [self fileURLsFromDrag:sender]; + + if ([target isEqualToString:@"local"] && _exportDragEntries.count > 0) { + for (NSDictionary* entry in _exportDragEntries) { + NSNumber* handle = entry[@"handle"]; + NSNumber* storageId = entry[@"storageId"]; + NSString* name = entry[@"name"]; + NSNumber* size = entry[@"size"]; + if (handle && storageId && name && size) + _app->do_download(handle.unsignedIntValue, storageId.unsignedIntValue, + name.UTF8String, size.unsignedLongLongValue); + } + _exportDragEntries = nil; + return YES; + } + + NSFileManager* fm = NSFileManager.defaultManager; + BOOL handled = NO; + + if ([target isEqualToString:@"remote"]) { + for (NSURL* url in urls) { + if (!url.isFileURL) continue; + NSString* path = url.path; + if (!path) continue; + BOOL isDir = NO; + if ([fm fileExistsAtPath:path isDirectory:&isDir] && !isDir) + _app->do_upload(path.UTF8String); + handled = YES; + } + return handled; + } + + if ([target isEqualToString:@"local"]) { + for (NSURL* url in urls) { + if (!url.isFileURL) continue; + NSString* path = url.path; + if (!path) continue; + BOOL isDir = NO; + if ([fm fileExistsAtPath:path isDirectory:&isDir] && isDir) + _app->navigate_local(path.UTF8String); + handled = YES; + } + return handled; + } + + return NO; +} + +@end + +// ─── OmniAppDelegate ────────────────────────────────────────────────────────── +@interface OmniAppDelegate : NSObject +- (instancetype)initWithApp:(omniMTP::App*)app; +@end + +@implementation OmniAppDelegate { + omniMTP::App* _app; + NSWindow* _window; + WKWebView* _webView; + OmniBridge* _bridge; +} + +- (instancetype)initWithApp:(omniMTP::App*)app { + if ((self = [super init])) { + _app = app; + } + return self; +} + +- (void)applicationDidFinishLaunching:(NSNotification*)note { + (void)note; + + // ── WKWebView configuration ─────────────────────────────────────────────── + WKWebViewConfiguration* config = [[WKWebViewConfiguration alloc] init]; + + // Enable developer tools in debug builds +#if DEBUG + if (@available(macOS 13.3, *)) { + config.preferences.elementFullscreenEnabled = YES; + [config.preferences setValue:@YES forKey:@"developerExtrasEnabled"]; + } +#endif + + // Disable text selection in file lists; file drag only. + WKUserScript* noTextDrag = [[WKUserScript alloc] + initWithSource:@"(function(){" + "function blockText(e){if(e.target.closest('.file-list'))e.preventDefault();}" + "document.addEventListener('selectstart',blockText,true);" + "document.addEventListener('mousedown',function(e){" + "if(e.button===0&&e.target.closest('.file-list .frow'))e.preventDefault();" + "},true);" + "document.addEventListener('dragstart',function(e){" + "var row=e.target.closest('.file-list .frow');" + "if(!row)return;" + "if(row.closest('#remote-files')||row.getAttribute('draggable')!=='true')" + "e.preventDefault();" + "},true);" + "})();" + injectionTime:WKUserScriptInjectionTimeAtDocumentStart + forMainFrameOnly:YES]; + [config.userContentController addUserScript:noTextDrag]; + + // Register the "bridge" message handler + _webView = [[OmniWebView alloc] initWithFrame:NSMakeRect(0, 0, 1280, 800) + configuration:config + app:_app]; + _bridge = [[OmniBridge alloc] initWithApp:_app webView:_webView]; + [config.userContentController addScriptMessageHandler:_bridge name:@"bridge"]; + _webView.navigationDelegate = _bridge; + _webView.UIDelegate = _bridge; + + // Allow file:// access for local resource loading + _webView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; + + // ── NSWindow ────────────────────────────────────────────────────────────── + NSRect frame = NSMakeRect(0, 0, 1280, 800); + NSWindowStyleMask style = + NSWindowStyleMaskTitled | + NSWindowStyleMaskClosable | + NSWindowStyleMaskMiniaturizable | + NSWindowStyleMaskResizable | + NSWindowStyleMaskFullSizeContentView; + + _window = [[NSWindow alloc] initWithContentRect:frame + styleMask:style + backing:NSBackingStoreBuffered + defer:NO]; + _window.title = @"OmniMTP"; + _window.titleVisibility = NSWindowTitleHidden; + _window.titlebarAppearsTransparent = YES; + _window.minSize = NSMakeSize(900, 600); + _window.movableByWindowBackground = YES; + + // Force dark appearance + if (@available(macOS 10.14, *)) { + _window.appearance = [NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]; + } + + // Container keeps a native drag strip above the WKWebView (web content + // would otherwise swallow titlebar mouse events). + NSView* container = [[NSView alloc] initWithFrame:frame]; + _webView.frame = NSMakeRect(0, 0, frame.size.width, frame.size.height); + [container addSubview:_webView]; + + OmniTitlebarDragView* dragBar = [[OmniTitlebarDragView alloc] + initWithFrame:NSMakeRect(kTrafficLightInset, frame.size.height - kTitlebarDragHeight, + frame.size.width - kTrafficLightInset, kTitlebarDragHeight)]; + dragBar.autoresizingMask = NSViewWidthSizable | NSViewMinYMargin; + [container addSubview:dragBar]; + + [_window setContentView:container]; + [_window center]; + [_window makeKeyAndOrderFront:nil]; + + // ── Load index.html from bundle (dev fallback: source tree) ─────────────── + NSURL* indexURL = nil; + + // 1. Try the bundle's webroot resource directory + NSBundle* bundle = [NSBundle mainBundle]; + indexURL = [bundle URLForResource:@"index" withExtension:@"html" subdirectory:@"webroot"]; + + // 2. Dev fallback: look next to the binary in a webroot/ sibling + if (!indexURL) { + NSString* execDir = bundle.executableURL.URLByDeletingLastPathComponent.path; + NSString* devPath = [execDir stringByAppendingPathComponent:@"webroot/index.html"]; + if ([[NSFileManager defaultManager] fileExistsAtPath:devPath]) + indexURL = [NSURL fileURLWithPath:devPath]; + } + + // 3. Source tree fallback for direct cmake build without bundle + if (!indexURL) { + // Walk up from executable looking for src/ui/webroot + NSString* base = bundle.executableURL.URLByDeletingLastPathComponent.path; + NSArray* candidates = @[ + [base stringByAppendingPathComponent:@"../src/ui/webroot/index.html"], + [base stringByAppendingPathComponent:@"../../src/ui/webroot/index.html"], + [base stringByAppendingPathComponent:@"../../../src/ui/webroot/index.html"], + ]; + for (NSString* c in candidates) { + NSString* resolved = c.stringByResolvingSymlinksInPath; + if ([[NSFileManager defaultManager] fileExistsAtPath:resolved]) { + indexURL = [NSURL fileURLWithPath:resolved]; + break; + } + } + } + + if (indexURL) { + NSURL* baseURL = indexURL.URLByDeletingLastPathComponent; + NSString* html = [NSString stringWithContentsOfURL:indexURL + encoding:NSUTF8StringEncoding + error:nil]; + if (html) { + [_webView loadHTMLString:html baseURL:baseURL]; + } else { + [_webView loadFileURL:indexURL allowingReadAccessToURL:baseURL]; + } + } else { + // Inline fallback so the app at least opens + NSString* fallback = @"

webroot/index.html not found

"; + [_webView loadHTMLString:fallback baseURL:nil]; + NSLog(@"[OmniMTP] ERROR: webroot/index.html not found in bundle or source tree"); + } +} + +- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication*)app { + (void)app; + return YES; +} + +- (void)applicationWillTerminate:(NSNotification*)note { + (void)note; +} + +@end + +// ─── WebUI ──────────────────────────────────────────────────────────────────── +namespace omniMTP { + +WebUI::WebUI(App& a) : app_(a) {} +WebUI::~WebUI() = default; + +void WebUI::run() { + @autoreleasepool { + [NSApplication sharedApplication]; + [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; + + OmniAppDelegate* delegate = [[OmniAppDelegate alloc] initWithApp:&app_]; + [NSApp setDelegate:delegate]; + + // App menu (Cmd+Q to quit) + NSMenu* menuBar = [[NSMenu alloc] init]; + NSMenuItem* appItem = [[NSMenuItem alloc] init]; + [menuBar addItem:appItem]; + NSMenu* appMenu = [[NSMenu alloc] init]; + NSMenuItem* quitItem = [[NSMenuItem alloc] + initWithTitle:@"Quit OmniMTP" + action:@selector(terminate:) + keyEquivalent:@"q"]; + [appMenu addItem:quitItem]; + appItem.submenu = appMenu; + [NSApp setMainMenu:menuBar]; + + [NSApp activateIgnoringOtherApps:YES]; + [NSApp run]; + } +} + +} // namespace omniMTP diff --git a/src/ui/webroot/app.css b/src/ui/webroot/app.css new file mode 100644 index 0000000..6049b6f --- /dev/null +++ b/src/ui/webroot/app.css @@ -0,0 +1,573 @@ +/* ── Reset & base ─────────────────────────────────────────────────────────── */ +*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } + +:root { + --bg-primary: #1a1a1a; + --bg-secondary: #1e1e1e; + --bg-tertiary: #252525; + --bg-hover: rgba(255,255,255,0.055); + --bg-active: rgba(255,255,255,0.10); + --bg-selected: rgba(10,132,255,0.18); + --bg-sel-border: rgba(10,132,255,0.45); + + --accent: #0a84ff; + --accent-dim: rgba(10,132,255,0.55); + --green: #30d158; + --yellow: #ffd60a; + --red: #ff453a; + --red-dim: rgba(255,69,58,0.80); + + --label: rgba(255,255,255,0.92); + --label-2: rgba(235,235,245,0.55); + --label-3: rgba(235,235,245,0.28); + --label-disabled:rgba(235,235,245,0.18); + + --sep: rgba(235,235,245,0.09); + --sep-strong: rgba(235,235,245,0.13); + --border: rgba(235,235,245,0.10); + + --row-h: 26px; + --toolbar-h: 40px; + --titlebar-h: 38px; + --statusbar-h: 22px; + --divider-w: 1px; + + --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif; + --font-mono: "SF Mono", ui-monospace, monospace; + --radius: 6px; + --radius-sm: 4px; +} + +html, body { + height: 100%; + overflow: hidden; + background: var(--bg-primary); + color: var(--label); + font-family: var(--font); + font-size: 13px; + line-height: 1.4; + -webkit-font-smoothing: antialiased; + user-select: none; +} + +/* ── Layout skeleton ───────────────────────────────────────────────────────── + Titlebar → Device-bar → Main(flex:1) → Transfers(auto) → Statusbar +*/ +body { + display: flex; + flex-direction: column; +} + +/* ── Titlebar ─────────────────────────────────────────────────────────────── */ +#titlebar { + height: var(--titlebar-h); + display: flex; + align-items: center; + padding: 0 16px; + background: var(--bg-secondary); + border-bottom: 1px solid var(--sep); + -webkit-app-region: drag; + flex-shrink: 0; +} +.tl-spacer { + width: 72px; /* space for traffic lights */ + flex-shrink: 0; + -webkit-app-region: drag; + user-select: none; + -webkit-user-select: none; +} +#app-title { + flex: 1; + text-align: center; + font-size: 13px; + font-weight: 600; + letter-spacing: 0.01em; + color: var(--label-2); + -webkit-app-region: drag; + user-select: none; + -webkit-user-select: none; + cursor: default; +} +#conn-badge { + -webkit-app-region: no-drag; + font-size: 11px; + font-weight: 500; + padding: 2px 10px; + border-radius: 20px; + white-space: nowrap; + user-select: none; + -webkit-user-select: none; + cursor: default; +} +.badge.connected { background: rgba(48,209,88,0.18); color: var(--green); } +.badge.disconnected { background: rgba(235,235,245,0.08); color: var(--label-3); } + +/* ── Device bar ───────────────────────────────────────────────────────────── */ +#device-bar { + height: var(--toolbar-h); + display: flex; + align-items: center; + padding: 0 12px; + background: var(--bg-secondary); + border-bottom: 1px solid var(--sep); + flex-shrink: 0; + gap: 8px; +} +.device-left, .device-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; } +.device-center { + flex: 1; + text-align: center; + font-size: 12px; + color: var(--label-2); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +/* ── Main two-panel area ──────────────────────────────────────────────────── */ +#main { + flex: 1; + display: flex; + overflow: hidden; + min-height: 0; +} + +/* ── Panel ────────────────────────────────────────────────────────────────── */ +.panel { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; + overflow: hidden; + background: var(--bg-primary); +} + +/* ── Panel divider ───────────────────────────────────────────────────────── */ +#panel-divider { + width: var(--divider-w); + background: var(--sep-strong); + flex-shrink: 0; +} + +/* ── Panel toolbar ────────────────────────────────────────────────────────── */ +.panel-toolbar { + height: var(--toolbar-h); + display: flex; + align-items: center; + padding: 0 8px; + gap: 6px; + background: var(--bg-tertiary); + border-bottom: 1px solid var(--sep); + flex-shrink: 0; +} + +/* ── Nav button group (pill shape) ─────────────────────────────────────────── */ +.nav-group { + display: flex; + align-items: center; + background: rgba(255,255,255,0.05); + border: 1px solid var(--border); + border-radius: var(--radius); + overflow: hidden; + flex-shrink: 0; +} +.nav-group .nav-btn { + border-radius: 0; + border: none; + border-right: 1px solid var(--border); +} +.nav-group .nav-btn:last-child { border-right: none; } + +.nav-btn { + -webkit-app-region: no-drag; + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 26px; + background: transparent; + border: none; + border-radius: var(--radius-sm); + color: var(--label-2); + cursor: pointer; + transition: background 80ms, color 80ms; + flex-shrink: 0; +} +.nav-btn svg { width: 14px; height: 14px; } +.nav-btn:hover:not(:disabled) { background: var(--bg-hover); color: var(--label); } +.nav-btn:active:not(:disabled){ background: var(--bg-active); } +.nav-btn:disabled { color: var(--label-disabled); cursor: default; } +.nav-btn.icon-only { width: 28px; } + +/* ── Breadcrumb ──────────────────────────────────────────────────────────── */ +.breadcrumb { + flex: 1; + display: flex; + align-items: center; + overflow: hidden; + gap: 0; + min-width: 0; + font-size: 12px; +} +.crumb-link { + color: var(--accent); + cursor: pointer; + white-space: nowrap; + padding: 2px 3px; + border-radius: 3px; + transition: background 80ms; + overflow: hidden; + text-overflow: ellipsis; + max-width: 140px; +} +.crumb-link:hover { background: var(--bg-hover); } +.crumb-cur { + color: var(--label); + font-weight: 500; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 160px; +} +.crumb-sep { color: var(--label-3); padding: 0 2px; flex-shrink: 0; } +.crumb-ellipsis { color: var(--label-3); padding: 0 4px; flex-shrink: 0; } + +/* ── Storage select ──────────────────────────────────────────────────────── */ +.storage-select { + -webkit-app-region: no-drag; + background: rgba(255,255,255,0.05); + border: 1px solid var(--border); + border-radius: var(--radius-sm); + color: var(--label); + font-family: var(--font); + font-size: 12px; + padding: 3px 6px; + cursor: pointer; + max-width: 160px; + flex-shrink: 0; +} +.storage-select:focus { outline: none; border-color: var(--accent-dim); } + +/* ── File list container ──────────────────────────────────────────────────── */ +.file-list { + flex: 1; + overflow-y: auto; + overflow-x: hidden; + min-height: 0; + position: relative; + user-select: none; + -webkit-user-select: none; + -webkit-user-drag: none; +} +.file-list * { + user-select: none; + -webkit-user-select: none; +} +.file-list .frow[draggable="true"] { + -webkit-user-drag: element; +} +#remote-files .frow { + -webkit-user-drag: none; +} +/* Custom scrollbar */ +.file-list::-webkit-scrollbar { width: 5px; } +.file-list::-webkit-scrollbar-track { background: transparent; } +.file-list::-webkit-scrollbar-thumb { + background: rgba(235,235,245,0.15); + border-radius: 3px; +} +.file-list::-webkit-scrollbar-thumb:hover { background: rgba(235,235,245,0.25); } +.file-list.drag-over { background: rgba(10,132,255,0.06); outline: 2px solid var(--accent-dim); outline-offset: -2px; } + +/* ── File table ──────────────────────────────────────────────────────────── */ +.ftable { + width: 100%; + border-collapse: collapse; + table-layout: fixed; +} +.ftable thead tr { + position: sticky; + top: 0; + z-index: 1; + background: var(--bg-tertiary); +} +.ftable th { + font-size: 11px; + font-weight: 500; + color: var(--label-2); + text-align: left; + padding: 4px 8px; + border-bottom: 1px solid var(--sep); + white-space: nowrap; + overflow: hidden; +} +.ftable th:first-child { padding-left: 12px; } +.col-size { width: 72px; text-align: right; } +.col-date { width: 110px; } + +.frow { + height: var(--row-h); + cursor: default; + will-change: background-color; + transition: background-color 120ms ease; + user-select: none; + -webkit-user-select: none; +} +.frow:hover { background-color: var(--bg-hover); } +.frow.selected { + background: var(--bg-selected); + box-shadow: inset 3px 0 0 var(--bg-sel-border); +} + +.ftable td { + font-size: 13px; + padding: 0 8px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: middle; +} +.ftable td:first-child { padding-left: 12px; } + +/* Name cell: dot + name inline */ +.fname-cell { + display: flex; + align-items: center; + gap: 7px; + overflow: hidden; +} +.dot { + width: 7px; + height: 7px; + border-radius: 50%; + flex-shrink: 0; + opacity: 0.85; +} +.color-dir { color: var(--accent); } .dot.color-dir { background: var(--accent); } +.color-game { color: var(--yellow); } .dot.color-game { background: var(--yellow); } +.color-hb { color: var(--green); } .dot.color-hb { background: var(--green); } +.color-file { color: rgba(255,255,255,0.75); } .dot.color-file { background: rgba(255,255,255,0.45); } + +/* Size / date columns */ +.col-size { color: var(--label-2); font-size: 12px; text-align: right; } +.col-date { color: var(--label-3); font-size: 11px; font-variant-numeric: tabular-nums; } + +/* ── Empty states ─────────────────────────────────────────────────────────── */ +.empty-state { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + min-height: 180px; + gap: 10px; + padding: 32px 16px; + color: var(--label-3); +} +.empty-icon { + width: 48px; + height: 48px; + color: var(--label-disabled); + stroke: currentColor; +} +.empty-title { + font-size: 14px; + font-weight: 500; + color: var(--label-2); +} +.empty-sub { + font-size: 12px; + color: var(--label-3); + text-align: center; + max-width: 240px; +} +.loading { + padding: 20px 16px; + color: var(--label-3); + font-size: 13px; +} + +/* ── Transfers panel ─────────────────────────────────────────────────────── */ +#transfers-panel { + flex-shrink: 0; + max-height: 160px; + overflow: hidden; + border-top: 1px solid var(--sep-strong); + background: var(--bg-secondary); + display: flex; + flex-direction: column; +} +#transfers-header { + display: flex; + align-items: center; + padding: 5px 12px; + gap: 8px; + border-bottom: 1px solid var(--sep); + flex-shrink: 0; +} +#transfers-label { + font-size: 11px; + font-weight: 600; + color: var(--label-2); + letter-spacing: 0.04em; + text-transform: uppercase; + flex: 1; +} +#transfers-list { + overflow-y: auto; + flex: 1; + padding: 4px 8px; +} +#transfers-list::-webkit-scrollbar { width: 4px; } +#transfers-list::-webkit-scrollbar-thumb { + background: rgba(235,235,245,0.12); + border-radius: 2px; +} + +/* Transfer item */ +.txfer-item { + padding: 4px 4px; + margin-bottom: 3px; + border-radius: var(--radius-sm); + background: rgba(255,255,255,0.03); +} +.txfer-row { + display: flex; + align-items: center; + gap: 6px; + height: 20px; +} +.txfer-dir { + font-size: 10px; + font-weight: 700; + padding: 1px 5px; + border-radius: 3px; + flex-shrink: 0; + letter-spacing: 0.03em; +} +.dir-dl { background: rgba(10,132,255,0.18); color: var(--accent); } +.dir-ul { background: rgba(48,209,88,0.18); color: var(--green); } +.txfer-name { + flex: 1; + font-size: 12px; + color: var(--label); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.txfer-stat { + font-size: 11px; + color: var(--label-2); + white-space: nowrap; + flex-shrink: 0; +} +.txfer-cancel { + -webkit-app-region: no-drag; + background: transparent; + border: none; + color: var(--label-3); + cursor: pointer; + font-size: 14px; + padding: 0 4px; + border-radius: 3px; + transition: color 80ms, background 80ms; + flex-shrink: 0; +} +.txfer-cancel:hover { color: var(--red); background: rgba(255,69,58,0.12); } +.pbar { + height: 3px; + background: rgba(235,235,245,0.07); + border-radius: 2px; + margin: 3px 0 2px; + overflow: hidden; +} +.pbar-fill { + height: 100%; + background: var(--accent); + border-radius: 2px; + transition: width 200ms linear; +} +.pbar-fill.done { background: var(--green); } +.txfer-meta { + font-size: 10px; + color: var(--label-3); + font-variant-numeric: tabular-nums; +} + +/* ── Status bar ──────────────────────────────────────────────────────────── */ +#statusbar { + height: var(--statusbar-h); + display: flex; + align-items: center; + padding: 0 12px; + background: var(--bg-tertiary); + border-top: 1px solid var(--sep); + flex-shrink: 0; + font-size: 11px; + color: var(--label-3); + gap: 8px; +} +#sb-left { flex: 0 0 auto; } +#sb-center{ flex: 1; text-align: center; color: var(--label-2); } +#sb-right { flex: 0 0 auto; } + +/* ── Context menu ────────────────────────────────────────────────────────── */ +.ctx-menu { + position: fixed; + z-index: 9999; + background: #2a2a2e; + border: 1px solid rgba(255,255,255,0.12); + border-radius: 8px; + padding: 4px 0; + min-width: 160px; + box-shadow: 0 8px 32px rgba(0,0,0,0.55); +} +.ctx-menu.hidden { display: none; } +.ctx-item { + padding: 6px 14px; + font-size: 13px; + cursor: pointer; + color: var(--label); + transition: background 60ms; +} +.ctx-item:hover { background: var(--bg-hover); } +.ctx-item.danger { color: var(--red); } +.ctx-item.ctx-sep { + height: 1px; + background: var(--sep); + padding: 0; + margin: 3px 0; + cursor: default; +} +.ctx-item.ctx-sep:hover { background: var(--sep); } + +/* ── Marquee selection ───────────────────────────────────────────────────── */ +.marquee-box { + position: fixed; + z-index: 9998; + border: 1px solid var(--accent); + background: rgba(10,132,255,0.12); + pointer-events: none; +} + +/* ── Buttons ─────────────────────────────────────────────────────────────── */ +.action-btn { + -webkit-app-region: no-drag; + background: rgba(255,255,255,0.07); + border: 1px solid rgba(255,255,255,0.10); + border-radius: var(--radius-sm); + color: var(--label); + font-family: var(--font); + font-size: 12px; + padding: 4px 12px; + cursor: pointer; + transition: background 80ms, border-color 80ms; + white-space: nowrap; +} +.action-btn:hover { background: rgba(255,255,255,0.11); border-color: rgba(255,255,255,0.16); } +.action-btn:active{ background: rgba(255,255,255,0.15); } +.action-btn.primary { background: rgba(10,132,255,0.22); border-color: rgba(10,132,255,0.35); color: var(--accent); } +.action-btn.primary:hover { background: rgba(10,132,255,0.30); border-color: rgba(10,132,255,0.50); } +.action-btn.danger { background: rgba(255,69,58,0.15); border-color: rgba(255,69,58,0.25); color: var(--red); } +.action-btn.danger:hover { background: rgba(255,69,58,0.25); } +.action-btn.small { font-size: 11px; padding: 2px 8px; } diff --git a/src/ui/webroot/app.js b/src/ui/webroot/app.js new file mode 100644 index 0000000..4c36590 --- /dev/null +++ b/src/ui/webroot/app.js @@ -0,0 +1,682 @@ +'use strict'; + +// ── Bridge ──────────────────────────────────────────────────────────────────── +let _reqId = 0; +const _pending = {}; +function call(action, params = {}) { + return new Promise(resolve => { + const id = ++_reqId; + _pending[id] = resolve; + try { + window.webkit.messageHandlers.bridge.postMessage({id, action, ...params}); + } catch(e) { + // Dev fallback + setTimeout(() => { if (_pending[id]) { _pending[id](null); delete _pending[id]; } }, 100); + } + }); +} +window.bridgeResponse = function(id, data) { + if (_pending[id]) { _pending[id](data); delete _pending[id]; } +}; + +// ── State ───────────────────────────────────────────────────────────────────── +const S = { + connected: false, deviceName: '', + storages: [], activeStorageId: 0, + remoteNavStack: [], + localPath: '', localFiles: [], + localDrives: [], activeLocalDrive: '', + remoteFiles: [], remoteRefreshing: false, + transfers: [], + statusMessage: '', statusTimer: 0, + selLocal: new Set(), // keys = file.path strings + selRemote: new Set(), // keys = String(file.handle) + lastLocalIdx: -1, // for shift+click range + lastRemoteIdx: -1, +}; + +// ── Smart-render fingerprints ────────────────────────────────────────────────── +// The file lists are only fully rebuilt when the files themselves change. +// Selection and toolbar updates run every poll without touching the table DOM, +// which eliminates the 400 ms hover-flash from innerHTML replacement. +let _localFingerprint = ''; +let _remoteFingerprint = ''; + +function fingerprintFiles(files) { + // Fast hash: join paths/handles — changes on any navigation or refresh + return files.map(f => f.path || f.handle || f.name).join('\0'); +} + +// ── Polling ─────────────────────────────────────────────────────────────────── +async function poll() { + try { + const data = await call('get_state'); + if (data) { + const sl = S.selLocal, sr = S.selRemote; + const lli = S.lastLocalIdx, lri = S.lastRemoteIdx; + Object.assign(S, data); + S.selLocal = sl; S.selRemote = sr; + S.lastLocalIdx = lli; S.lastRemoteIdx = lri; + render(); + } + } catch(e) {} + setTimeout(poll, 400); +} + +// ── Rendering ───────────────────────────────────────────────────────────────── +function render() { + renderDeviceBar(); + renderLocalToolbar(); + renderLocalFiles(); + renderRemoteToolbar(); + renderRemoteFiles(); + renderTransfers(); + renderStatusBar(); + updateDropZones(); +} + +function updateDropZones() { + const rem = document.getElementById('panel-remote')?.getBoundingClientRect(); + const loc = document.getElementById('panel-local')?.getBoundingClientRect(); + if (!rem || !loc) return; + call('update_drop_zones', { + remote: {x: rem.left, y: rem.top, w: rem.width, h: rem.height}, + local: {x: loc.left, y: loc.top, w: loc.width, h: loc.height}, + }); +} + +function esc(s) { + if (s == null) return ''; + const d = document.createElement('div'); + d.textContent = String(s); + return d.innerHTML; +} + +function fileColor(f) { + if (f.isDir) return 'color-dir'; + const ext = (f.name.split('.').pop() || '').toLowerCase(); + if (['nsp','xci','nsz','xcz'].includes(ext)) return 'color-game'; + if (ext === 'nro') return 'color-hb'; + return 'color-file'; +} + +// ── File table builder ──────────────────────────────────────────────────────── +const FILE_TABLE_HEADER = ` + NameSizeModified +`; + +function buildFileRows(files, selSet, idKey, allowDrag = false) { + return files.map((f, i) => { + const key = String(f[idKey] != null ? f[idKey] : (f.path || f.name)); + const sel = selSet.has(key) ? ' selected' : ''; + const cc = fileColor(f); + const drag = allowDrag && !f.isDir ? ' draggable="true"' : ''; + return ` +
+ + ${esc(f.name)} +
+ ${f.isDir ? '' : esc(f.sizeStr)} + ${esc(f.date)} + `; + }).join(''); +} + +// ── Selection helpers ───────────────────────────────────────────────────────── +function applySelectionToDOM(container, selSet) { + container.querySelectorAll('.frow').forEach(r => { + r.classList.toggle('selected', selSet.has(r.dataset.key)); + }); +} + +function selectionKeys(files, idKey) { + return files.map(f => String(f[idKey] != null ? f[idKey] : (f.path || f.name))); +} + +// ── Local panel ─────────────────────────────────────────────────────────────── +function renderLocalFiles() { + const el = document.getElementById('local-files'); + const fp = fingerprintFiles(S.localFiles); + + if (fp !== _localFingerprint) { + _localFingerprint = fp; + // Full rebuild only when file list actually changed + if (!S.localFiles.length) { + el.innerHTML = `
+ + + +
No files in this folder
`; + return; + } + el.innerHTML = `${FILE_TABLE_HEADER} + ${buildFileRows(S.localFiles, S.selLocal, 'path', true)}
`; + attachLocalEvents(el); + } else { + // Cheap path: just sync selection highlight + applySelectionToDOM(el, S.selLocal); + } +} + +function attachMarqueeSelect(el, selSet) { + let active = false, startX = 0, startY = 0, box = null, additive = false; + + const finish = () => { + active = false; + if (box) { box.remove(); box = null; } + window.removeEventListener('mousemove', onMove); + window.removeEventListener('mouseup', finish); + }; + + const onMove = e => { + if (!active) return; + window.omniClearSelection(); + const x1 = Math.min(startX, e.clientX), y1 = Math.min(startY, e.clientY); + const x2 = Math.max(startX, e.clientX), y2 = Math.max(startY, e.clientY); + Object.assign(box.style, { + left: x1 + 'px', top: y1 + 'px', + width: (x2 - x1) + 'px', height: (y2 - y1) + 'px', + }); + if (!additive) selSet.clear(); + el.querySelectorAll('.frow').forEach(row => { + const r = row.getBoundingClientRect(); + const hit = r.right >= x1 && r.left <= x2 && r.bottom >= y1 && r.top <= y2; + if (hit) selSet.add(row.dataset.key); + }); + applySelectionToDOM(el, selSet); + }; + + el.addEventListener('mousedown', e => { + if (e.button !== 0 || e.target.closest('.frow')) return; + e.preventDefault(); + active = true; + additive = e.metaKey || e.shiftKey; + startX = e.clientX; + startY = e.clientY; + box = document.createElement('div'); + box.className = 'marquee-box'; + document.body.appendChild(box); + window.addEventListener('mousemove', onMove); + window.addEventListener('mouseup', finish); + }); +} + +function attachLocalEvents(el) { + const files = S.localFiles; + const keys = selectionKeys(files, 'path'); + + el.querySelectorAll('.frow').forEach((row, i) => { + const f = files[i]; + const key = keys[i]; + + // Click → select + row.addEventListener('click', e => { + handleRowClick(e, i, key, S.selLocal, keys, 'lastLocalIdx'); + applySelectionToDOM(el, S.selLocal); + }); + + // Double-click → navigate dir OR upload file to Switch + row.addEventListener('dblclick', () => { + if (f.isDir) { call('navigate_local', {path: f.path}); } + else if (S.connected) { call('start_upload', {srcPath: f.path}); } + }); + + // Right-click → local context menu + row.addEventListener('contextmenu', e => { + e.preventDefault(); + showLocalCtxMenu(f, e); + }); + + // Drag source: drag selected local file(s) to the remote panel + if (!f.isDir) { + row.addEventListener('dragstart', e => { + const dragFiles = (S.selLocal.has(key) + ? files.filter((_, j) => S.selLocal.has(keys[j])) + : [f]).filter(df => !df.isDir); + if (!dragFiles.length) { e.preventDefault(); return; } + window.omniClearSelection(); + e.dataTransfer.clearData(); + e.dataTransfer.setData('application/x-omnimtp-local', + JSON.stringify(dragFiles.map(df => ({path: df.path, name: df.name})))); + e.dataTransfer.effectAllowed = 'copy'; + e.dataTransfer.setDragImage(dragBadge(dragFiles.length, dragFiles[0].name), 0, 0); + }); + } + }); + + attachMarqueeSelect(el, S.selLocal); + + // Drop target: receive remote files dropped here → download + el.addEventListener('dragover', e => { e.preventDefault(); el.classList.add('drag-over'); }); + el.addEventListener('dragleave', e => { if (!el.contains(e.relatedTarget)) el.classList.remove('drag-over'); }); + el.addEventListener('drop', e => { + e.preventDefault(); + el.classList.remove('drag-over'); + const d = e.dataTransfer.getData('application/x-omnimtp-remote'); + if (d) { + const items = JSON.parse(d); + (Array.isArray(items) ? items : [items]).forEach(rf => { + call('start_download', {handle: rf.handle, storageId: rf.storageId, filename: rf.name, size: rf.size}); + }); + } + }); +} + +// ── Remote panel ────────────────────────────────────────────────────────────── +function renderRemoteFiles() { + const el = document.getElementById('remote-files'); + const empty = document.getElementById('remote-empty-state'); + + if (!S.connected) { + if (empty) empty.style.display = ''; + el.querySelectorAll('table,.loading,.empty-state:not(#remote-empty-state)') + .forEach(n => n.remove()); + _remoteFingerprint = ''; + return; + } + if (empty) empty.style.display = 'none'; + + if (S.remoteRefreshing) { + el.innerHTML = '
Loading…
'; + _remoteFingerprint = '__loading__'; + return; + } + + const fp = fingerprintFiles(S.remoteFiles); + if (fp !== _remoteFingerprint) { + _remoteFingerprint = fp; + if (!S.remoteFiles.length) { + el.innerHTML = `
+ + + +
Empty folder
`; + } else { + el.innerHTML = `${FILE_TABLE_HEADER} + ${buildFileRows(S.remoteFiles, S.selRemote, 'handle', false)}
`; + } + attachRemoteEvents(el); + } else { + applySelectionToDOM(el, S.selRemote); + } +} + +function attachRemoteEvents(el) { + const files = S.remoteFiles; + const keys = selectionKeys(files, 'handle'); + + el.querySelectorAll('.frow').forEach((row, i) => { + const f = files[i]; + const key = keys[i]; + + row.addEventListener('click', e => { + handleRowClick(e, i, key, S.selRemote, keys, 'lastRemoteIdx'); + applySelectionToDOM(el, S.selRemote); + }); + + row.addEventListener('dblclick', () => { + if (f.isDir) call('navigate_remote', {handle: f.handle, storageId: f.storageId, name: f.name}); + }); + + row.addEventListener('contextmenu', e => { e.preventDefault(); showRemoteCtxMenu(f, e); }); + }); + + attachMarqueeSelect(el, S.selRemote); + + // Drop target: receive local files → upload + el.addEventListener('dragover', e => { e.preventDefault(); el.classList.add('drag-over'); }); + el.addEventListener('dragleave', e => { if (!el.contains(e.relatedTarget)) el.classList.remove('drag-over'); }); + el.addEventListener('drop', e => { + e.preventDefault(); + el.classList.remove('drag-over'); + // Internal drag (local app files) + const d = e.dataTransfer.getData('application/x-omnimtp-local'); + if (d) { + const items = JSON.parse(d); + (Array.isArray(items) ? items : [items]).forEach(lf => { + call('start_upload', {srcPath: lf.path}); + }); + return; + } + // Finder drop + for (const file of (e.dataTransfer.files || [])) { + const p = file.path || ''; + if (p) call('start_upload', {srcPath: p}); + } + }); +} + +// ── Shared row click with shift-range support ───────────────────────────────── +function handleRowClick(e, idx, key, selSet, allKeys, lastIdxProp) { + if (e.shiftKey && S[lastIdxProp] >= 0) { + const lo = Math.min(idx, S[lastIdxProp]); + const hi = Math.max(idx, S[lastIdxProp]); + if (!e.metaKey) selSet.clear(); + allKeys.slice(lo, hi + 1).forEach(k => selSet.add(k)); + } else if (e.metaKey) { + if (selSet.has(key)) selSet.delete(key); else selSet.add(key); + S[lastIdxProp] = idx; + } else { + selSet.clear(); + selSet.add(key); + S[lastIdxProp] = idx; + } +} + +// ── Drag badge ghost image ───────────────────────────────────────────────────── +function dragBadge(count, firstName) { + const el = document.createElement('div'); + el.style.cssText = [ + 'position:fixed', 'top:-200px', 'left:-200px', + 'background:rgba(10,132,255,0.85)', 'color:#fff', + 'font:600 12px -apple-system', 'padding:4px 10px', + 'border-radius:10px', 'white-space:nowrap', + ].join(';'); + el.textContent = count > 1 ? `${count} files` : firstName; + document.body.appendChild(el); + setTimeout(() => el.remove(), 0); + return el; +} + +// ── Toolbars ────────────────────────────────────────────────────────────────── +function renderLocalToolbar() { + const sel = document.getElementById('local-drive-sel'); + if (S.localDrives && S.localDrives.length) { + const prev = sel.value; + sel.innerHTML = S.localDrives.map(d => + `` + ).join(''); + const active = S.activeLocalDrive || prev; + if ([...sel.options].some(o => o.value === active)) sel.value = active; + sel.style.display = ''; + } else { + sel.style.display = 'none'; + } + + const crumb = document.getElementById('local-breadcrumb'); + const parts = (S.localPath || '').split('/').filter(Boolean); + const show = parts.slice(-4); + let html = show.length < parts.length ? '' : ''; + show.forEach((p, i) => { + const fullIdx = parts.length - show.length + i; + const path = '/' + parts.slice(0, fullIdx + 1).join('/'); + html += i === show.length - 1 + ? `${esc(p)}` + : `${esc(p)}`; + }); + crumb.innerHTML = html; + crumb.querySelectorAll('.crumb-link').forEach(el => + el.addEventListener('click', () => call('navigate_local', {path: el.dataset.path}))); + document.getElementById('btn-local-up').disabled = parts.length === 0; +} + +function renderRemoteToolbar() { + const sel = document.getElementById('storage-sel'); + if (S.storages && S.storages.length) { + const prev = sel.value; + sel.innerHTML = S.storages.map(s => + `` + ).join(''); + sel.value = String(S.activeStorageId || prev); + sel.style.display = ''; + } else { + sel.style.display = 'none'; + } + const stack = S.remoteNavStack || []; + const crumb = document.getElementById('remote-breadcrumb'); + crumb.innerHTML = stack.slice(1).map((e, i) => { + const absIdx = i + 1; + return absIdx === stack.length - 1 + ? `${esc(e.label)}` + : `${esc(e.label)}`; + }).join(''); + crumb.querySelectorAll('.crumb-link').forEach(el => + el.addEventListener('click', () => call('navigate_remote_to', {index: +el.dataset.idx}))); + document.getElementById('btn-remote-up').disabled = stack.length <= 1; +} + +// ── Device bar ──────────────────────────────────────────────────────────────── +function renderDeviceBar() { + const badge = document.getElementById('conn-badge'); + const status = document.getElementById('device-status-text'); + if (S.connected) { + badge.className = 'badge connected'; + badge.textContent = S.deviceName || 'Nintendo Switch'; + status.textContent = S.deviceName || 'Nintendo Switch connected'; + } else { + badge.className = 'badge disconnected'; + badge.textContent = 'No Device'; + status.textContent = 'Waiting for Nintendo Switch…'; + } +} + +// ── Transfers panel ─────────────────────────────────────────────────────────── +function renderTransfers() { + const list = document.getElementById('transfers-list'); + const label = document.getElementById('transfers-label'); + const cancelAll= document.getElementById('btn-cancel-all'); + const panel = document.getElementById('transfers-panel'); + + const active = (S.transfers || []).filter(t => t.state <= 1); + label.textContent = active.length ? `${active.length} Transfer${active.length > 1 ? 's' : ''}` : 'Transfers'; + cancelAll.style.display = active.length ? '' : 'none'; + + if (!S.transfers || !S.transfers.length) { list.innerHTML = ''; panel.style.display = 'none'; return; } + panel.style.display = ''; + + const stateNames = ['Queued','','Done','Failed','Cancelled']; + list.innerHTML = S.transfers.map(t => { + const dir = t.direction === 0 ? 'DL' : 'UP'; + const dc = t.direction === 0 ? 'dir-dl' : 'dir-ul'; + const pct = ((t.progress || 0) * 100).toFixed(0); + const showBar = t.state <= 1; + const statText = t.state === 1 ? esc(t.speedStr) + : t.state === 3 ? '⚠ ' + esc(t.error || 'Failed') + : stateNames[t.state] || ''; + return `
+
+ ${dir} + ${esc(t.filename)} + ${statText} + ${showBar ? `` : ''} +
+ ${showBar ? `
+
${pct}%${t.etaStr ? ' · ' + t.etaStr : ''}
` : ''} +
`; + }).join(''); + list.querySelectorAll('.txfer-cancel').forEach(btn => + btn.addEventListener('click', () => call('cancel_transfer', {id: btn.dataset.id}))); +} + +// ── Status bar ──────────────────────────────────────────────────────────────── +function renderStatusBar() { + const lf = (S.localFiles || []).length; + const rf = (S.remoteFiles || []).length; + document.getElementById('sb-left').textContent = `${lf} item${lf !== 1 ? 's' : ''}`; + document.getElementById('sb-right').textContent = S.connected ? `${rf} item${rf !== 1 ? 's' : ''}` : ''; + let center = ''; + if (S.statusTimer > 0 && S.statusMessage) { + center = S.statusMessage; + } else if (S.connected) { + const act = (S.transfers || []).filter(t => t.state === 1); + if (act.length) { + const spd = act.reduce((s, t) => s + (t.speedBps || 0), 0); + center = `${act.length} active · ` + (spd > 1048576 + ? (spd/1048576).toFixed(0) + ' MB/s' + : (spd/1024).toFixed(0) + ' KB/s'); + } + } + document.getElementById('sb-center').textContent = center; +} + +// ── Context menus ───────────────────────────────────────────────────────────── +let _ctxFile = null, _ctxIsLocal = false; + +function showLocalCtxMenu(file, e) { + _ctxFile = file; + _ctxIsLocal = true; + const m = document.getElementById('ctx-menu'); + document.getElementById('ctx-upload').style.display = (!file.isDir && S.connected) ? '' : 'none'; + document.getElementById('ctx-download').style.display = 'none'; + document.getElementById('ctx-delete').style.display = 'none'; + document.getElementById('ctx-sep-del').style.display = 'none'; + m.style.left = e.clientX + 'px'; + m.style.top = e.clientY + 'px'; + m.classList.remove('hidden'); +} + +function showRemoteCtxMenu(file, e) { + _ctxFile = file; + _ctxIsLocal = false; + if (!S.selRemote.has(String(file.handle))) { + S.selRemote.clear(); + S.selRemote.add(String(file.handle)); + applySelectionToDOM(document.getElementById('remote-files'), S.selRemote); + } + const m = document.getElementById('ctx-menu'); + const showDownload = !file.isDir; + document.getElementById('ctx-upload').style.display = 'none'; + document.getElementById('ctx-download').style.display = showDownload ? '' : 'none'; + document.getElementById('ctx-delete').style.display = ''; + document.getElementById('ctx-sep-del').style.display = showDownload ? '' : 'none'; + m.style.left = e.clientX + 'px'; + m.style.top = e.clientY + 'px'; + m.classList.remove('hidden'); +} + +document.addEventListener('click', e => { + if (e.target.closest('#ctx-menu')) return; + document.getElementById('ctx-menu').classList.add('hidden'); +}); +document.addEventListener('contextmenu', e => { if (!e.target.closest('.frow')) { e.preventDefault(); document.getElementById('ctx-menu').classList.add('hidden'); } }); + +// ── Init ────────────────────────────────────────────────────────────────────── +window.omniClearSelection = function() { + const sel = window.getSelection(); + if (sel && sel.rangeCount) sel.removeAllRanges(); +}; + +window.omniRemoteDragFilesAt = function(x, y) { + if (!S.connected) return ''; + const hit = document.elementFromPoint(x, y); + const row = hit?.closest('#remote-files .frow'); + if (!row || row.dataset.isDir === '1') return ''; + const f = S.remoteFiles[+row.dataset.idx]; + if (!f || f.isDir) return ''; + const key = String(f.handle); + const dragFiles = S.selRemote.has(key) + ? S.remoteFiles.filter(rf => S.selRemote.has(String(rf.handle)) && !rf.isDir) + : [f]; + if (!dragFiles.length) return ''; + return JSON.stringify(dragFiles.map(df => ({ + handle: df.handle, storageId: df.storageId, name: df.name, size: df.size, + }))); +}; + +// Block text selection and text-drag; only explicit file drags allowed. +document.addEventListener('selectstart', e => { + if (e.target.closest('.file-list')) e.preventDefault(); +}, true); + +document.addEventListener('mousedown', e => { + if (e.button !== 0) return; + if (e.target.closest('.file-list .frow')) e.preventDefault(); +}, true); + +document.addEventListener('dragstart', e => { + const row = e.target.closest('.file-list .frow'); + if (!row) return; + if (row.closest('#remote-files') || row.getAttribute('draggable') !== 'true') { + e.preventDefault(); + return; + } + window.omniClearSelection(); + if (e.dataTransfer) { + e.dataTransfer.effectAllowed = 'copy'; + e.dataTransfer.setData('text/plain', ''); + } +}, true); + +document.addEventListener('DOMContentLoaded', () => { + document.getElementById('btn-local-up') .addEventListener('click', () => call('navigate_local_up')); + document.getElementById('btn-local-home') .addEventListener('click', () => call('navigate_local', {path: '~'})); + document.getElementById('btn-local-refresh').addEventListener('click', () => call('refresh_local')); + document.getElementById('local-drive-sel') .addEventListener('change', e => call('navigate_local', {path: e.target.value})); + document.getElementById('btn-remote-up') .addEventListener('click', () => call('navigate_remote_up')); + document.getElementById('btn-remote-refresh').addEventListener('click', () => call('refresh_remote')); + document.getElementById('btn-scan') .addEventListener('click', () => call('reconnect')); + document.getElementById('btn-open-picker') .addEventListener('click', () => call('open_file_picker')); + document.getElementById('btn-cancel-all') .addEventListener('click', () => call('cancel_all')); + document.getElementById('storage-sel') .addEventListener('change', e => call('set_storage', {storageId: +e.target.value})); + + // Context menu actions + const bindCtx = (id, fn) => { + document.getElementById(id).addEventListener('click', e => { + e.stopPropagation(); + fn(); + }); + }; + + bindCtx('ctx-upload', () => { + if (!_ctxFile) return; + const uploadFiles = S.selLocal.size > 1 && S.selLocal.has(_ctxFile.path) + ? S.localFiles.filter(f => S.selLocal.has(f.path)) + : [_ctxFile]; + uploadFiles.forEach(f => call('start_upload', {srcPath: f.path})); + }); + bindCtx('ctx-download', () => { + if (!_ctxFile) return; + const downloadFiles = S.selRemote.size > 1 && S.selRemote.has(String(_ctxFile.handle)) + ? S.remoteFiles.filter(f => S.selRemote.has(String(f.handle))) + : [_ctxFile]; + downloadFiles.forEach(f => call('start_download', {handle: f.handle, storageId: f.storageId, filename: f.name, size: f.size})); + }); + bindCtx('ctx-delete', () => { + if (!_ctxFile) return; + const label = S.selRemote.size > 1 && S.selRemote.has(String(_ctxFile.handle)) + ? `${S.selRemote.size} items` + : `"${_ctxFile.name}"`; + if (window.confirm(`Delete ${label}?`)) { + const handles = S.selRemote.size > 1 && S.selRemote.has(String(_ctxFile.handle)) + ? S.remoteFiles.filter(f => S.selRemote.has(String(f.handle))).map(f => f.handle) + : [_ctxFile.handle]; + handles.forEach(h => call('delete_remote', {handle: h})); + } + document.getElementById('ctx-menu').classList.add('hidden'); + }); + + // Keyboard + document.addEventListener('keydown', e => { + if (e.target.matches('input,textarea,select')) return; + if (e.key === 'Backspace' || e.key === 'Delete') { + S.selRemote.forEach(h => call('delete_remote', {handle: +h})); + } + if (e.metaKey && e.key === 'r') { + e.preventDefault(); + call('refresh_remote'); + call('refresh_local'); + } + // Cmd+A = select all + if (e.metaKey && e.key === 'a') { + e.preventDefault(); + const active = document.activeElement; + if (active && active.closest('#local-files')) { + S.localFiles.forEach(f => S.selLocal.add(f.path)); + applySelectionToDOM(document.getElementById('local-files'), S.selLocal); + } else { + S.remoteFiles.forEach(f => S.selRemote.add(String(f.handle))); + applySelectionToDOM(document.getElementById('remote-files'), S.selRemote); + } + } + // Escape = deselect + if (e.key === 'Escape') { + S.selLocal.clear(); S.selRemote.clear(); + applySelectionToDOM(document.getElementById('local-files'), S.selLocal); + applySelectionToDOM(document.getElementById('remote-files'), S.selRemote); + } + }); + + poll(); + updateDropZones(); + window.addEventListener('resize', updateDropZones); +}); diff --git a/src/ui/webroot/index.html b/src/ui/webroot/index.html new file mode 100644 index 0000000..a9a92d5 --- /dev/null +++ b/src/ui/webroot/index.html @@ -0,0 +1,106 @@ + + + + + + OmniMTP + + + +
+
+ OmniMTP +
No Device
+
+ +
+
+ +
+
Waiting for Nintendo Switch…
+
+ +
+
+ +
+ +
+
+ + + + +
+
+
Loading…
+
+
+ + +
+ + +
+
+ + + + +
+
+
+ + + + + +
No Switch Connected
+
Connect via USB-C and open DBI or Sphaira MTP
+
+
+
+
+ + +
+
+ Transfers + +
+
+
+ + +
+ + + +
+ + + + + + +