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.