NAME

App::DrivePlayer::GUI - GTK3 application window for DrivePlayer

SYNOPSIS

use App::DrivePlayer::GUI;

App::DrivePlayer::GUI->new->run;

DESCRIPTION

The top-level Moo class that constructs and drives the GTK3 user interface. Responsibilities include:

  • Building the main window with a sidebar (artists / albums / folders), a track list, and playback controls (play/pause, stop, seek, volume).

  • Lazily initialising the Google REST API connection and App::DrivePlayer::Player on first use, so start-up is fast even when network access is unavailable.

  • Running folder scans (via App::DrivePlayer::Scanner) in a background thread with live progress reporting.

  • Persisting configuration changes (music folder list, OAuth2 credentials) through App::DrivePlayer::Config.

Requires the GTK3 system libraries and the Gtk3 and Glib Perl modules. Not covered by the unit test suite.

METHODS

new

my $gui = App::DrivePlayer::GUI->new;

Constructs the application object. The window is not shown until "run" is called.

run

$gui->run;

Build and display the main window, then enter the GTK3 main loop. Does not return until the window is closed.