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.
24 lines
508 B
C++
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;
|
|
};
|
|
}
|