Commit Graph

166 Commits

Author SHA1 Message Date
hl-valdemar d2aa949f54 fix: affix playback controls to their default position 2026-10-17 17:12:45 +02:00
hl-valdemar 880b596765 perf: coalesce superseded queued playback seeks 2026-10-17 00:07:22 +02:00
hl-valdemar 367afdfb07 refactor: concentrate Cast ownership and preserve intent on disconnect 2026-10-17 00:02:14 +02:00
hl-valdemar f1fbcf30b5 ui: normalize cast icon 2026-10-14 00:28:47 +02:00
hl-valdemar f4fec676a8 ui: enlarge Cast icon in compact mode 2026-10-14 00:18:55 +02:00
hl-valdemar 58609e4d99 ui: move Cast between window mode and settings controls 2026-10-14 00:04:29 +02:00
hl-valdemar ed9d8c6713 ui: align playback controls and casting styling 2026-10-13 23:51:28 +02:00
hl-valdemar b9e63cd760 fix: separate Cast launch readiness, preserve volume intent and reuse seek inputs 2026-10-13 22:01:59 +02:00
hl-valdemar bb777b0ecd feat: add Chromecast playback support 2026-10-13 21:39:38 +02:00
hl-valdemar 74b4bfe6c1 ui: add horizontal breathing room to subtitles 2026-10-13 17:30:36 +02:00
hl-valdemar 51382bc63a fix: match compact settings icon size and color 2026-10-13 16:36:14 +02:00
hl-valdemar d1f0d83e4c ui: size subtitle glass to text within eighty percent width 2026-10-13 08:55:31 +02:00
hl-valdemar 1aa5454194 ui: refine subtitle layout and preserve hidden controls on seeks 2026-10-13 00:05:05 +02:00
hl-valdemar e66f45d9ef ui: restore visible caption Off and compact settings controls 2026-10-12 23:46:54 +02:00
hl-valdemar 2398370c23 ui: match titlebar chrome and prefer upward caption menus 2026-10-12 23:30:52 +02:00
hl-valdemar 7d24ce609e ui: integrate captions and unify playback chrome backgrounds 2026-10-12 23:17:40 +02:00
hl-valdemar 470d8feec2 feat: play resolved Miruro HLS with external VTT and stable episode progress 2026-10-12 21:22:20 +02:00
hl-valdemar 1f12660936 feat: remember manually resized compact window width 2026-10-12 17:01:15 +02:00
hl-valdemar 750c20507c ui: reduce the titlebar pin symbol size 2026-10-12 16:52:46 +02:00
hl-valdemar daac27be8d fix: keep compact title progress adjacent and truncate the title tail 2026-10-12 16:36:54 +02:00
hl-valdemar 35fa89e492 feat: configure duration-aware progress in compact titles 2026-10-12 16:00:33 +02:00
hl-valdemar 1f5e9541e7 ui: size the URL input to its content and padding 2026-10-12 15:45:22 +02:00
hl-valdemar 3d897c3a05 ui: match URL input font size to the drop hint 2026-10-12 15:40:47 +02:00
hl-valdemar 30cf85e880 fix: give native Quit its Command shortcut during text editing 2026-10-12 15:25:55 +02:00
hl-valdemar b2dc5fa373 ui: fade URL input in place and use Sunset placeholder color 2026-10-12 15:18:42 +02:00
hl-valdemar aacd260fe7 ui: outline welcome actions and animate URL input toggle 2026-10-12 15:08:52 +02:00
hl-valdemar e3e6a66216 ui: open YouTube URLs inline on the welcome screen 2026-10-12 14:51:09 +02:00
hl-valdemar 2a75d55c98 ui: adopt Sunset palette and warm glass styling 2026-10-12 14:45:02 +02:00
hl-valdemar 7aa6e5f805 ui: anchor compact title at top left 2026-10-12 13:58:51 +02:00
hl-valdemar 93acc1436a ui: frost playback titles and hide chrome on pointer exit 2026-10-12 13:55:46 +02:00
hl-valdemar 0ed35b4a58 ui: blend titlebars into player background 2026-10-12 13:09:53 +02:00
hl-valdemar e6897332a5 ui: frost the empty player window background 2026-10-12 12:57:22 +02:00
hl-valdemar 39efa96986 ui: match empty player styling to playback controls 2026-10-12 12:39:42 +02:00
hl-valdemar 1e75f554f0 fix: allow compact mode while media is loading 2026-10-12 12:18:11 +02:00
hl-valdemar f495c8b719 feat: animate compact window transitions 2026-10-12 10:38:59 +02:00
hl-valdemar 31c4759c1d build: bundle playback and YouTube dependencies
Build pinned LGPL playback libraries and package standalone YouTube helpers inside the signed native app. Keep the CLI inside the app and relocate private library links for installation without runtime Homebrew dependencies.

Record adaptive fixture completion in its EXIT trap: cancellation can exit with status 143 before the TERM trap writes its marker, while native pause and quality preservation remain correct.
2026-10-12 01:52:51 +02:00
hl-valdemar 8eba97579f refactor: concentrate playback transition ownership 2026-10-12 00:58:23 +02:00
hl-valdemar cc99a2a4f8 feat: report authoritative playback progress from shared backend 2026-10-11 21:34:08 +02:00
hl-valdemar 41e4a458cf feat: configure explicit state-dependent player keybindings 2026-10-11 17:02:15 +02:00
hl-valdemar 722a225da5 feat: load optional XDG TOML configuration with session overrides 2026-10-11 15:03:20 +02:00
hl-valdemar 0dce073287 feat: add independent CLI launches and preserve shared video bookmarks 2026-10-11 14:13:05 +02:00
hl-valdemar 537e8e2624 fix: avoid unbounded HTTP throttling and make buffer readout opt-in 2026-10-11 12:12:36 +02:00
hl-valdemar 13554a1574 feat: retain streaming media and add opt-in automatic quality 2026-10-11 11:52:24 +02:00
hl-valdemar 041d2b0644 fix: make buffered time visible in both player modes 2026-10-11 10:58:28 +02:00
hl-valdemar 5087a0a0f0 feat: visualize retained network playback buffer 2026-10-11 03:15:38 +02:00
hl-valdemar 4d4c3e6b0a feat: choose YouTube quality with a 1080p default 2026-10-11 02:54:01 +02:00
hl-valdemar 5f0287f489 fix: preserve app identity through FFmpeg preflight 2026-10-11 02:25:25 +02:00
hl-valdemar cf24a0fc4f fix: respond to macOS system playback controls 2026-10-11 01:51:59 +02:00
hl-valdemar c6d2958744 feat: install release builds and report missing FFmpeg
Add make release and make install PREFIX=/Users/valdemar/.local. Keep optimized no-debug release artifacts separate; install adjacent CLI/app under lib/terebi and link bin/terebi. Preflight FFmpeg/pkg-config before compiling or installing, including cached builds.

Record the player's exact linked FFmpeg ABI paths. AppKit-only CLI/bootstrap validate native loadability and transitive dependencies before entering the FFmpeg-linked terebi-player. CLI fails with status 69 and remediation; Finder bootstrap shows a native alert and execs the player without losing initial events or process identity.

Verified staged installation with spaces, reinstall preservation, absent build dependencies, missing/corrupt/transitively broken dylibs, real modal error surface, installed CLI and Finder startup across exec, local/YouTube resume and window reuse, and full make check.
2026-10-11 01:33:03 +02:00
hl-valdemar 230949bb95 feat: add a native CLI launcher for local and YouTube playback
Build .build/terebi beside the app. Parse a single local file or YouTube URL, --url, --, and help; reject invalid commands before GUI launch. Resolve the adjacent app through symlinks and launch through NSWorkspace, reusing its process/window and saved progress.

Launch the app without media before delivering URL events. Raw media argv suppress SwiftUI's initial singleton window. Own warm document and internet Apple events because SwiftUI's default external-event routing closes that window; retain initial Finder document delivery to create it.

Verified actual CLI 0/64/69 exit behavior, PATH/symlink discovery from another directory, cold local/YouTube playback, warm local/YouTube replacement in the same native window/process, resume, Finder-style cold launch, and make all check.
2026-10-11 00:45:24 +02:00