Skip to content

Implement Now Playing view with real-time updates #11

@andhijeannot

Description

@andhijeannot

Overview

Implement the Now Playing view that displays current track information with real-time updates and playback controls.

Scope

Create an immersive Now Playing experience that shows track details, progress, and provides intuitive playback control.

Implementation Requirements

Now Playing Display (presentation/tui/views/nowplaying.go)

  • Current track information (title, artist, album, artwork placeholder)
  • Playback progress bar with time indicators
  • Volume indicator and control
  • Playback state visualization (playing, paused, stopped)
  • Shuffle and repeat mode indicators
  • Queue position and total tracks

Real-time Updates

  • Live progress bar updates during playback
  • Track change notifications and transitions
  • Volume change reflection
  • Player state change visualization
  • Queue updates when tracks are added/removed

Interactive Controls

  • Spacebar: play/pause toggle
  • Arrow keys: next/previous track, volume control
  • Number keys: seek to percentage
  • Letter keys: shuffle (s), repeat (r) toggle
  • Enter: open current track details
  • Tab: navigate to other views

Visual Design

  • Large, prominent track title and artist
  • Progress bar with elapsed/remaining time
  • Visual indicators for player state
  • Color-coded volume and progress elements
  • Smooth animations for state changes
  • Album artwork placeholder (text-based representation)

Technical Requirements

  1. Real-time Updates - Sub-second refresh for progress tracking
  2. Smooth Animation - Fluid progress bar and state transitions
  3. Responsive Layout - Adapts to terminal size gracefully
  4. Efficient Rendering - Minimal CPU usage during playback
  5. State Synchronization - Consistent with actual player state

User Experience

  • Intuitive keyboard controls matching common media players
  • Clear visual feedback for all actions
  • Smooth, non-jarring updates
  • Helpful status messages and notifications
  • Quick access to frequently used functions

Success Criteria

  • Now Playing view displays all track information correctly
  • Real-time progress updates work smoothly
  • All keyboard controls are responsive
  • Visual design is appealing and functional
  • Performance is efficient during long playback
  • State synchronization is reliable
  • View integrates well with navigation system
  • Error states are handled gracefully

Integration Points

  • TUI foundation for navigation and state management
  • gRPC client for real-time player state updates
  • Daemon communication for playback controls
  • Theme system for consistent styling

Testing Strategy

  • Unit tests for view logic and state management
  • Integration tests with live playback
  • Visual testing on different terminal sizes
  • Performance testing during extended playback
  • User experience testing for control responsiveness
  • Error scenario testing (track unavailable, etc.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttuiTerminal UI implementationv0.4.0Version 0.4.0 milestone issues

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions