Modules/LibraryViewer/public/LibraryViewerApplication.hpp
Шурупов Илья Викторович f9e027f231 Replace the library viewer's ImGui window with a player UI
The library viewer no longer uses ImGui. A filter bar with search over
title, artist and album, Loved only and a file filter sits above the
track list, which marks the playing track; double-clicking a track
plays it. A player bar docked at the bottom shows the track, play and
pause, previous and next over the visible tracks, a seek bar with
buffering and volume, and advances when a track ends. Space toggles
playback. The default menu bar carries File, View and Playback menus.
Playback goes through a small device interface so the view is tested
headlessly with a fake device.
2026-10-15 13:15:59 +03:00

24 lines
508 B
C++

#pragma once
#include "GUI.hpp"
#include "WidgetApplication.hpp"
#include <string>
namespace tp {
class LibraryViewerApplication : public ui::WidgetApplication {
public:
explicit LibraryViewerApplication(const std::string& libraryPath);
~LibraryViewerApplication() override;
[[nodiscard]] Library& library() { return mLibrary; }
[[nodiscard]] LibraryWidget& gui() { return mGui; }
private:
Player mPlayer;
PlayerDevice mDevice{ mPlayer };
Library mLibrary;
LibraryWidget mGui;
};
}