feat: TV Guide video fullscreen toggle + volume control#62
feat: TV Guide video fullscreen toggle + volume control#62AndrewAltimit merged 5 commits intomainfrom
Conversation
…gain to collapse Adds video_expanded state to TvGuideState. Clicking the video preview (PIP) in the header expands it to fill the entire content area. Clicking anywhere while expanded collapses back to PIP with the channel guide below. Both SDI and windowed rendering paths support the toggle. Also includes unstaged Cargo.lock updates for PSP crates. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…date - Decode video at full screen resolution instead of PIP size for sharp display in both PIP and expanded modes (tv_controller + WASM vfs_content) - Add clickable volume bar (defaults to 50%) in footer (PIP) and bottom overlay (expanded), synced to WASM <video> element in real time - Add VideoPlayer::set_volume() to WASM backend - Update README and TV Guide plan doc to reflect fullscreen toggle, volume control, and completed Steps 8-9 - All builds verified: WASM release, PSP EBOOT, PSP PRX, workspace tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tune() was using self.current_time which was only updated during SDI rendering. When clicking to tune a channel, the schedule lookup used the time from app launch rather than the actual current time, causing the video to always seek to the same stale position. Now calls update_time() before computing the schedule. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gemini AI Code ReviewIssues (if any)
Previous Issues (for incremental reviews)(none) Suggestions (if any)
Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
Automated fix by Claude in response to Gemini/Codex review. Iteration: 1/5 Co-Authored-By: AI Review Agent <noreply@anthropic.com>
Review Response Agent (Iteration 1)Status: Changes committed, pushing... Commit: Fixed Issues
Ignored Issues
Deferred to Human
Notes
Automated summary of agent fixes. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)
Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
Review Response Agent (Iteration 2)Status: No changes needed
Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but no file modifications were detected. |
Clicking the same channel that is currently tuned no longer restarts playback. The tune() guard checks tuned_channel before issuing a new TuneRequest. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)(none) Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
Review Response Agent (Iteration 3)Status: No changes needed
Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but no file modifications were detected. |

Summary
<video>element in WASM and audio backend on desktop in real time.Changes
crates/oasis-app-tv-guide/src/guide.rs--video_expanded,volume,volume_changedfields onTvGuideState; expanded video rendering (SDI + windowed); volume bar rendering + click handling;volume_bar_rectlayout helpercrates/oasis-app/src/tv_controller/mod.rs-- Decode at full screen resolution instead of PIP sizecrates/oasis-backend-wasm/src/vfs_content.rs--tv_preview_rectupdated to full screen dimensionscrates/oasis-backend-wasm/src/video.rs--VideoPlayer::set_volume()methodcrates/oasis-backend-wasm/src/lib.rs-- Volume sync from guide state to video element each tickREADME.md-- Updated Internet Archive Integration feature descriptiondocs/internet-archive-tv-guide-plan.md-- Steps 8-9 marked complete with implementation notesTest plan
cargo test --workspace)cargo clippy --workspace -- -D warnings)build-wasm.sh --release)cargo +nightly psp --release)Generated with Claude Code