nice control center

This commit is contained in:
2026-02-03 23:03:20 +01:00
parent cddcc96aa9
commit 0463c37543
7 changed files with 235 additions and 32 deletions

View File

@@ -2,14 +2,30 @@
#include "components/popover.hpp"
#include "gtkmm/box.h"
#include "gtkmm/button.h"
#include "gtkmm/label.h"
#include "gtkmm/stack.h"
#include "widgets/controlCenter/mediaControl.hpp"
#include <unordered_map>
class ControlCenter : public Popover {
public:
ControlCenter(std::string icon, std::string name);
private:
Gtk::Box container;
MediaControlWidget mediaControlWidget;
Gtk::Box tabRow;
Gtk::Stack contentStack;
Gtk::Box controlCenterContainer;
Gtk::Label testLabel;
Gtk::Button mediaControl;
Gtk::Button testTabButton;
std::shared_ptr<MprisController> mprisController = MprisController::getInstance();
std::unordered_map<std::string, MediaControlWidget*> mediaWidgets;
void addPlayerWidget(const std::string &bus_name);
void removePlayerWidget(const std::string &bus_name);
void setActiveTab(const std::string &tab_name);
};

View File

@@ -11,10 +11,10 @@
class MediaControlWidget : public Gtk::Box {
public:
MediaControlWidget();
explicit MediaControlWidget(std::shared_ptr<MprisController> controller);
private:
std::shared_ptr<MprisController> mprisController = MprisController::getInstance();
std::shared_ptr<MprisController> mprisController;
int64_t currentPositionUs = 0;
int64_t totalLengthUs = 0;
@@ -22,12 +22,14 @@ class MediaControlWidget : public Gtk::Box {
bool suppressSeekSignal = false;
std::string currentTrackId;
MprisController::PlaybackStatus playbackStatus = MprisController::PlaybackStatus::Stopped;
bool canSeek = true;
void setCurrentPosition(int64_t position_us);
void setTotalLength(int64_t length_us);
void resetSeekTimer(int64_t start_position_us);
bool onSeekTick();
void schedulePauseAfterSeek();
void setCanSeek(bool can_seek);
Gtk::Box spotifyContainer;