Added StereoMono display.

This commit is contained in:
Tobias Rundstrom 2006-02-19 18:12:39 -03:00
parent eaa2e021a6
commit 76b9131d03
9 changed files with 117 additions and 12 deletions

View file

@ -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

View file

@ -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:

View file

@ -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();
}

View file

@ -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
View file

@ -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
View 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
View 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;
};

View file

@ -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;
}

View file

@ -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