Added StereoMono display.
This commit is contained in:
parent
eaa2e021a6
commit
76b9131d03
9 changed files with 117 additions and 12 deletions
|
@ -31,6 +31,10 @@ MainDisplay::MainDisplay (QWidget *parent) : SkinDisplay(parent)
|
|||
m_khz->move (156, 43);
|
||||
m_khz->setNumber (44, 2);
|
||||
|
||||
m_stereo = new StereoMono (this);
|
||||
m_stereo->move (212, 41);
|
||||
m_stereo->setStereoMono (0, 0);
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -21,6 +21,7 @@ class MainDisplay;
|
|||
#include "MainWindow.h"
|
||||
#include "NumberDisplay.h"
|
||||
#include "SmallNumberDisplay.h"
|
||||
#include "StereoMono.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@ -38,6 +39,8 @@ class MainDisplay : public SkinDisplay
|
|||
SmallNumberDisplay *m_kbps;
|
||||
SmallNumberDisplay *m_khz;
|
||||
|
||||
StereoMono *m_stereo;
|
||||
|
||||
public slots:
|
||||
void setPixmaps(Skin *skin);
|
||||
protected:
|
||||
|
|
|
@ -8,12 +8,12 @@ MainWindow::MainWindow ()
|
|||
|
||||
m_handler = new XMMSHandler (this);
|
||||
|
||||
skin = new Skin("Debian");
|
||||
skin = new Skin("./Debian/");
|
||||
m_display = new MainDisplay(this);
|
||||
|
||||
setCentralWidget(m_display);
|
||||
|
||||
skin->setSkin("./CleanAMP/");
|
||||
skin->setSkin("./Debian/");
|
||||
m_display->show();
|
||||
|
||||
}
|
||||
|
|
13
Skin.cpp
13
Skin.cpp
|
@ -1,10 +1,9 @@
|
|||
#include "Skin.h"
|
||||
|
||||
|
||||
Skin::Skin (string m_skinname) : m_skinname (m_skinname)
|
||||
Skin::Skin (QString path)
|
||||
{
|
||||
m_path = QString ("./CleanAMP/");
|
||||
|
||||
m_path = path;
|
||||
m_items = new QHash<uint, QPixmap>;
|
||||
m_volume_bar = new QHash<uint, QPixmap>;
|
||||
m_balance = new QHash<uint, QPixmap>;
|
||||
|
@ -230,10 +229,10 @@ Skin::BuildOther (void)
|
|||
QPainter(painter);
|
||||
|
||||
img = getPixmap("monoster.bmp");
|
||||
m_items->insert (MONO_0, img->copy(29, 0, 27, 12));
|
||||
m_items->insert (MONO_1, img->copy(29, 12, 27, 12));
|
||||
m_items->insert (STEREO_0, img->copy(0, 0, 29, 12));
|
||||
m_items->insert (STEREO_1, img->copy(0, 12, 29, 12));
|
||||
m_items->insert (MONO_1, img->copy(29, 0, 27, 12));
|
||||
m_items->insert (MONO_0, img->copy(29, 12, 27, 12));
|
||||
m_items->insert (STEREO_1, img->copy(0, 0, 29, 12));
|
||||
m_items->insert (STEREO_0, img->copy(0, 12, 29, 12));
|
||||
delete img;
|
||||
|
||||
|
||||
|
|
2
Skin.h
2
Skin.h
|
@ -15,7 +15,7 @@ class Skin : public QWidget
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Skin(string m_skinname);
|
||||
Skin (QString);
|
||||
~Skin();
|
||||
|
||||
void setSkin (QString name);
|
||||
|
|
62
StereoMono.cpp
Normal file
62
StereoMono.cpp
Normal file
|
@ -0,0 +1,62 @@
|
|||
#include "StereoMono.h"
|
||||
|
||||
StereoMono::StereoMono (QWidget *parent) : PixWidget (parent)
|
||||
{
|
||||
setMinimumSize (56, 12);
|
||||
setMaximumSize (56, 12);
|
||||
|
||||
m_pixmap = QPixmap (56, 12);
|
||||
}
|
||||
|
||||
void
|
||||
StereoMono::setPixmaps (Skin *skin)
|
||||
{
|
||||
m_pixmap_stereo_on = skin->getItem (Skin::STEREO_1);
|
||||
m_pixmap_stereo_off = skin->getItem (Skin::STEREO_0);
|
||||
m_pixmap_mono_on = skin->getItem (Skin::MONO_1);
|
||||
m_pixmap_mono_off = skin->getItem (Skin::MONO_0);
|
||||
|
||||
setStereoMono (m_stereo, m_mono);
|
||||
}
|
||||
|
||||
void
|
||||
StereoMono::drawPixmaps ()
|
||||
{
|
||||
QPainter paint;
|
||||
paint.begin (&m_pixmap);
|
||||
|
||||
paint.drawPixmap (QRect (0, 0, 27, 12),
|
||||
m_pixmap_mono,
|
||||
m_pixmap.rect ());
|
||||
|
||||
paint.drawPixmap (QRect (27, 0, 29, 12),
|
||||
m_pixmap_stereo,
|
||||
m_pixmap.rect ());
|
||||
paint.end ();
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
void
|
||||
StereoMono::setStereoMono (bool stereo, bool mono)
|
||||
{
|
||||
|
||||
if (stereo) {
|
||||
m_pixmap_stereo = m_pixmap_stereo_on;
|
||||
} else {
|
||||
m_pixmap_stereo = m_pixmap_stereo_off;
|
||||
}
|
||||
|
||||
if (mono) {
|
||||
m_pixmap_mono = m_pixmap_mono_on;
|
||||
} else {
|
||||
m_pixmap_mono = m_pixmap_mono_off;
|
||||
}
|
||||
|
||||
m_stereo = stereo;
|
||||
m_mono = mono;
|
||||
|
||||
drawPixmaps ();
|
||||
|
||||
}
|
||||
|
27
StereoMono.h
Normal file
27
StereoMono.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
#include "PixWidget.h"
|
||||
|
||||
class StereoMono : public PixWidget
|
||||
{
|
||||
public:
|
||||
StereoMono (QWidget *parent);
|
||||
~StereoMono () { }
|
||||
|
||||
void setStereoMono (bool, bool);
|
||||
|
||||
public slots:
|
||||
void setPixmaps (Skin *skin);
|
||||
|
||||
private:
|
||||
void drawPixmaps ();
|
||||
bool m_stereo;
|
||||
bool m_mono;
|
||||
|
||||
QPixmap m_pixmap_stereo_on;
|
||||
QPixmap m_pixmap_stereo_off;
|
||||
QPixmap m_pixmap_mono_on;
|
||||
QPixmap m_pixmap_mono_off;
|
||||
|
||||
QPixmap m_pixmap_mono;
|
||||
QPixmap m_pixmap_stereo;
|
||||
};
|
||||
|
|
@ -72,6 +72,14 @@ XMMSHandler::medialib_info (XMMSResult *res)
|
|||
m_mw->getMD ()->m_khz->setNumber (b/1000, 2);
|
||||
}
|
||||
|
||||
if (res->getDictValue ("channels:out", &b)) {
|
||||
if (b == 1) {
|
||||
m_mw->getMD ()->m_stereo->setStereoMono (0, 1);
|
||||
} else {
|
||||
m_mw->getMD ()->m_stereo->setStereoMono (1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
delete res;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,8 @@ SOURCES += XmmsQT4.cpp \
|
|||
TextBar.cpp \
|
||||
NumberDisplay.cpp \
|
||||
XMMSHandler.cpp \
|
||||
SmallNumberDisplay.cpp
|
||||
SmallNumberDisplay.cpp \
|
||||
StereoMono.cpp
|
||||
|
||||
HEADERS += XmmsQT4.h \
|
||||
PixWidget.h \
|
||||
|
@ -22,7 +23,8 @@ HEADERS += XmmsQT4.h \
|
|||
TextBar.h \
|
||||
NumberDisplay.h \
|
||||
XMMSHandler.h \
|
||||
SmallNumberDisplay.h
|
||||
SmallNumberDisplay.h \
|
||||
StereoMono.h
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
CONFIG += debug
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue