A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 126 lines 3.5 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * $Id$ 9 * 10 * Copyright (C) 2010 Robert Bieber 11 * 12 * This program is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU General Public License 14 * as published by the Free Software Foundation; either version 2 15 * of the License, or (at your option) any later version. 16 * 17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 18 * KIND, either express or implied. 19 * 20 ****************************************************************************/ 21 22#ifndef RBSCREEN_H 23#define RBSCREEN_H 24 25#include <QGraphicsItem> 26 27#include "projectmodel.h" 28#include "rbrenderinfo.h" 29#include "rbimage.h" 30#include "rbfont.h" 31#include "rbalbumart.h" 32#include "rbviewport.h" 33 34class RBScreen : public QGraphicsItem 35{ 36 37public: 38 RBScreen(const RBRenderInfo& info, bool remote = false, 39 QGraphicsItem *parent = 0); 40 virtual ~RBScreen(); 41 42 QPainterPath shape() const; 43 QRectF boundingRect() const; 44 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, 45 QWidget *widget); 46 47 int getWidth() const{ return width; } 48 int getHeight() const{ return height; } 49 50 void loadViewport(QString name, RBViewport* view); 51 void showViewport(QString name); 52 bool viewPortDisplayed(QString name) 53 { 54 return displayedViewports.contains(name); 55 } 56 57 void loadImage(QString name, RBImage* image) 58 { 59 images.insert(name, image); 60 image->hide(); 61 } 62 RBImage* getImage(QString name){ return images.value(name, 0); } 63 64 void loadFont(int id, RBFont* font); 65 RBFont* getFont(int id); 66 67 void setBackdrop(QString filename); 68 bool hasBackdrop(){ return backdrop != 0; } 69 void makeCustomUI(QString id); 70 void setCustomUI(RBViewport* viewport){ customUI = viewport; } 71 RBViewport* getCustomUI(){ return customUI; } 72 73 static QColor stringToColor(QString str, QColor fallback); 74 75 QColor foreground(){ return fgColor; } 76 QColor background(){ return bgColor; } 77 78 void setAlbumArt(RBAlbumArt* art){ albumArt = art; } 79 void showAlbumArt(RBViewport* view) 80 { 81 if(albumArt) 82 { 83 albumArt->setParentItem(view); 84 albumArt->show(); 85 albumArt->enableMove(); 86 } 87 } 88 89 void setDefault(RBViewport* view){ defaultView = view; } 90 void endSbsRender(); 91 void breakSBS(); 92 93 void RtlMirror(){ ax = true; } 94 bool isRtlMirrored(){ bool ret = ax; ax = false; return ret; } 95 96protected: 97 void hoverMoveEvent(QGraphicsSceneHoverEvent *event); 98 99private: 100 int width; 101 int height; 102 int fullWidth; 103 int fullHeight; 104 QColor bgColor; 105 QColor fgColor; 106 QPixmap* backdrop; 107 QString themeBase; 108 109 ProjectModel* project; 110 111 QMap<QString, QList<RBViewport*>*> namedViewports; 112 QMap<QString, RBImage*> images; 113 QMap<QString, QString>* settings; 114 QMap<int, RBFont*> fonts; 115 QList<QString> displayedViewports; 116 117 RBAlbumArt* albumArt; 118 RBViewport* customUI; 119 RBViewport* defaultView; 120 121 QList<QGraphicsItem*> sbsChildren; 122 123 bool ax; 124}; 125 126#endif // RBSCREEN_H