mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-09-17 17:00:27 +02:00
2023-10-04 Fred Gleason <fredg@paravelsystems.com>
* Got SoundPanel panel selection working for both Host and Station panels. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
0c00c6abdf
commit
26059935f2
@ -24408,3 +24408,6 @@
|
||||
* Added a '--dump-panel-updates' switch to rdairplay(1).
|
||||
2023-09-29 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Fixed a typo in the rdpanel(1) man page.
|
||||
2023-10-04 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Got SoundPanel panel selection working for both Host and Station
|
||||
panels.
|
||||
|
@ -310,6 +310,7 @@ nodist_librd_la_SOURCES = moc_rdadd_cart.cpp\
|
||||
moc_rdbusybar.cpp\
|
||||
moc_rdbusydialog.cpp\
|
||||
moc_rdbutton_dialog.cpp\
|
||||
moc_rdbutton_panel.cpp\
|
||||
moc_rdcae.cpp\
|
||||
moc_rdcardselector.cpp\
|
||||
moc_rdcart_dialog.cpp\
|
||||
|
@ -1,8 +1,8 @@
|
||||
// rdbutton_panel.cpp
|
||||
//
|
||||
// The sound panel widget for RDAirPlay
|
||||
// Component class for sound panel widgets
|
||||
//
|
||||
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2023 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -18,10 +18,10 @@
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
|
||||
#include <qcolor.h>
|
||||
#include <QColor>
|
||||
|
||||
#include <rdbutton_panel.h>
|
||||
#include <rdbutton_dialog.h>
|
||||
#include "rdbutton_dialog.h"
|
||||
#include "rdbutton_panel.h"
|
||||
|
||||
RDButtonPanel::RDButtonPanel(RDAirPlayConf::PanelType type,int number,
|
||||
QWidget *parent)
|
||||
@ -29,21 +29,25 @@ RDButtonPanel::RDButtonPanel(RDAirPlayConf::PanelType type,int number,
|
||||
{
|
||||
panel_number=number;
|
||||
|
||||
panel_button_mapper=new QSignalMapper(this);
|
||||
connect(panel_button_mapper,SIGNAL(mapped(int)),
|
||||
this,SLOT(buttonClickedData(int)));
|
||||
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
panel_button[i][j]=
|
||||
new RDPanelButton(i,j,rda->station(),rda->panelConf()->flashPanel(),
|
||||
parent);
|
||||
panel_button[i][j]=new RDPanelButton(i,j,rda->station(),
|
||||
rda->panelConf()->flashPanel(),this);
|
||||
int id=(number*PANEL_MAX_BUTTON_COLUMNS*PANEL_MAX_BUTTON_ROWS)+
|
||||
(i*PANEL_MAX_BUTTON_COLUMNS)+j;
|
||||
connect(panel_button[i][j],SIGNAL(clicked()),
|
||||
panel_button_mapper,SLOT(map()));
|
||||
panel_button_mapper->setMapping(panel_button[i][j],id);
|
||||
if(rda->station()->enableDragdrop()) {
|
||||
panel_button[i][j]->setAllowDrags(true);
|
||||
if(!rda->station()->enforcePanelSetup()) {
|
||||
panel_button[i][j]->setAcceptDrops(true);
|
||||
}
|
||||
}
|
||||
panel_button[i][j]->setGeometry((15+PANEL_BUTTON_SIZE_X)*j,
|
||||
(15+PANEL_BUTTON_SIZE_Y)*i,
|
||||
PANEL_BUTTON_SIZE_X,
|
||||
PANEL_BUTTON_SIZE_Y);
|
||||
panel_button[i][j]->hide();
|
||||
parent->connect(parent,SIGNAL(buttonFlash(bool)),
|
||||
panel_button[i][j],SLOT(flashButton(bool)));
|
||||
@ -64,6 +68,7 @@ RDButtonPanel::~RDButtonPanel()
|
||||
delete panel_button[i][j];
|
||||
}
|
||||
}
|
||||
delete panel_button_mapper;
|
||||
}
|
||||
|
||||
|
||||
@ -202,26 +207,6 @@ void RDButtonPanel::setAcceptDrops(bool state)
|
||||
}
|
||||
|
||||
|
||||
void RDButtonPanel::hide()
|
||||
{
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
panel_button[i][j]->hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDButtonPanel::show()
|
||||
{
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
panel_button[i][j]->show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDButtonPanel::clear()
|
||||
{
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
@ -268,3 +253,44 @@ QString RDButtonPanel::json(int padding,bool final) const
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void RDButtonPanel::setVisible(bool state)
|
||||
{
|
||||
printf("Calling RDButtonPanel::setVisible(%d) @ %p\n",state,this);
|
||||
RDWidget::setVisible(state);
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
panel_button[i][j]->setVisible(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDButtonPanel::buttonClickedData(int id)
|
||||
{
|
||||
int pnum=id/(PANEL_MAX_BUTTON_COLUMNS*PANEL_MAX_BUTTON_ROWS);
|
||||
int pos=id%(PANEL_MAX_BUTTON_COLUMNS*PANEL_MAX_BUTTON_ROWS);
|
||||
printf("emitting buttonClicked(%d,%d,%d)\n",
|
||||
pnum,pos%PANEL_MAX_BUTTON_COLUMNS,pos/PANEL_MAX_BUTTON_COLUMNS);
|
||||
emit buttonClicked(pnum,pos%PANEL_MAX_BUTTON_COLUMNS,pos/PANEL_MAX_BUTTON_COLUMNS);
|
||||
}
|
||||
|
||||
|
||||
void RDButtonPanel::resizeEvent(QResizeEvent *e)
|
||||
{
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
panel_button[i][j]->setGeometry((15+PANEL_BUTTON_SIZE_X)*j,
|
||||
(15+PANEL_BUTTON_SIZE_Y)*i,
|
||||
PANEL_BUTTON_SIZE_X,
|
||||
PANEL_BUTTON_SIZE_Y);
|
||||
}
|
||||
}
|
||||
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
RDPanelButton *button=panel_button[i][j];
|
||||
button->setVisible(geometry().contains(button->geometry()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
// rdbutton_panel.h
|
||||
//
|
||||
// The sound panel widget for RDAirPlay
|
||||
// Component class for sound panel widgets
|
||||
//
|
||||
// (C) Copyright 2002-2023 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
@ -23,6 +23,7 @@
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QLabel>
|
||||
#include <QSignalMapper>
|
||||
|
||||
#include <rdairplay_conf.h>
|
||||
#include <rdstation.h>
|
||||
@ -37,12 +38,10 @@
|
||||
//
|
||||
#define PANEL_MAX_BUTTON_COLUMNS 40
|
||||
#define PANEL_MAX_BUTTON_ROWS 23
|
||||
#define PANEL_BUTTON_SIZE_X 88
|
||||
#define PANEL_BUTTON_SIZE_Y 80
|
||||
|
||||
|
||||
class RDButtonPanel : public RDWidget
|
||||
{
|
||||
Q_OBJECT;
|
||||
public:
|
||||
RDButtonPanel(RDAirPlayConf::PanelType type,int number,QWidget *parent);
|
||||
~RDButtonPanel();
|
||||
@ -55,15 +54,26 @@ class RDButtonPanel : public RDWidget
|
||||
void setActionMode(RDAirPlayConf::ActionMode mode);
|
||||
void setAllowDrags(bool state);
|
||||
void setAcceptDrops(bool state);
|
||||
void hide();
|
||||
void show();
|
||||
void clear();
|
||||
QString json(int padding=0,bool final=false) const;
|
||||
|
||||
public slots:
|
||||
void setVisible(bool state);
|
||||
|
||||
signals:
|
||||
void buttonClicked(int pnum,int col,int row);
|
||||
|
||||
private slots:
|
||||
void buttonClickedData(int id);
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
|
||||
private:
|
||||
int panel_number;
|
||||
QString panel_title;
|
||||
QSignalMapper *panel_button_mapper;
|
||||
RDPanelButton *panel_button[PANEL_MAX_BUTTON_ROWS][PANEL_MAX_BUTTON_COLUMNS];
|
||||
};
|
||||
|
||||
#endif // RDPANEL_BUTTON_H
|
||||
#endif // RDBUTTON_PANEL_H
|
||||
|
@ -1,6 +1,6 @@
|
||||
// rdpanel_button.cpp
|
||||
//
|
||||
// The SoundPanel Button for RDAirPlay.
|
||||
// Component class for sound panel widgets.
|
||||
//
|
||||
// (C) Copyright 2002-2023 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
@ -313,13 +313,13 @@ void RDPanelButton::setAllowDrags(bool state)
|
||||
|
||||
void RDPanelButton::setDuckVolume(int level)
|
||||
{
|
||||
button_duck_volume=level;
|
||||
button_duck_volume=level;
|
||||
}
|
||||
|
||||
|
||||
int RDPanelButton::duckVolume() const
|
||||
{
|
||||
return button_duck_volume;
|
||||
return button_duck_volume;
|
||||
}
|
||||
|
||||
|
||||
@ -329,6 +329,12 @@ bool RDPanelButton::isEmpty() const
|
||||
}
|
||||
|
||||
|
||||
bool RDPanelButton::isActive() const
|
||||
{
|
||||
return button_play_deck!=NULL;
|
||||
}
|
||||
|
||||
|
||||
QString RDPanelButton::json(int padding,bool final)
|
||||
{
|
||||
QString ret;
|
||||
@ -362,6 +368,16 @@ QString RDPanelButton::json(int padding,bool final)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void RDPanelButton::setVisible(bool state)
|
||||
{
|
||||
RDPushButton::setVisible(state);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void RDPanelButton::tickClock()
|
||||
{
|
||||
int msecs;
|
||||
@ -470,26 +486,26 @@ void RDPanelButton::dropEvent(QDropEvent *e)
|
||||
void RDPanelButton::WriteKeycap(int msecs)
|
||||
{
|
||||
QString text=button_text;
|
||||
QPixmap *pix=new QPixmap(size().width()-2,size().height()-2);
|
||||
QPixmap *pix=new QPixmap(PANEL_BUTTON_SIZE_X-2,PANEL_BUTTON_SIZE_Y-2);
|
||||
QPainter *p=new QPainter(pix);
|
||||
if(button_state) {
|
||||
if(button_flash) {
|
||||
if(button_flash_state) {
|
||||
p->fillRect(0,0,size().width()-2,size().height()-2,button_color);
|
||||
p->fillRect(0,0,pix->width(),pix->height(),button_color);
|
||||
p->setPen(RDGetTextColor(button_color));
|
||||
}
|
||||
else {
|
||||
p->fillRect(0,0,size().width()-2,size().height()-2,button_default_color);
|
||||
p->fillRect(0,0,pix->width(),pix->height(),button_default_color);
|
||||
p->setPen(RDGetTextColor(button_default_color));
|
||||
}
|
||||
}
|
||||
else {
|
||||
p->fillRect(0,0,size().width()-2,size().height()-2,button_color);
|
||||
p->fillRect(0,0,pix->width(),pix->height(),button_color);
|
||||
p->setPen(RDGetTextColor(button_color));
|
||||
}
|
||||
}
|
||||
else {
|
||||
p->fillRect(0,0,size().width()-2,size().height()-2,button_color);
|
||||
p->fillRect(0,0,pix->width(),pix->height(),button_color);
|
||||
p->setPen(RDGetTextColor(button_color));
|
||||
}
|
||||
|
||||
@ -498,12 +514,13 @@ void RDPanelButton::WriteKeycap(int msecs)
|
||||
//
|
||||
QFontMetrics m(buttonFont());
|
||||
p->setFont(buttonFont());
|
||||
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,m.lineSpacing(),
|
||||
GetNextLine(&text,m,size().width()-2-3*RDPANEL_BUTTON_MARGIN));
|
||||
GetNextLine(&text,m,pix->width()-2-3*RDPANEL_BUTTON_MARGIN));
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,2*m.lineSpacing(),
|
||||
GetNextLine(&text,m,size().width()-2-3*RDPANEL_BUTTON_MARGIN));
|
||||
GetNextLine(&text,m,pix->width()-2-3*RDPANEL_BUTTON_MARGIN));
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,3*m.lineSpacing(),
|
||||
GetNextLine(&text,m,size().width()-2-3*RDPANEL_BUTTON_MARGIN));
|
||||
GetNextLine(&text,m,pix->width()-2-3*RDPANEL_BUTTON_MARGIN));
|
||||
|
||||
//
|
||||
// Time Field & Output Text
|
||||
@ -512,31 +529,31 @@ void RDPanelButton::WriteKeycap(int msecs)
|
||||
if(msecs<0) {
|
||||
p->setFont(smallTimerFont());
|
||||
if(button_pause_when_finished) {
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-2-RDPANEL_BUTTON_MARGIN,"Finished");
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,pix->height()-2-RDPANEL_BUTTON_MARGIN,"Finished");
|
||||
}
|
||||
else {
|
||||
if(button_active_length>=0) {
|
||||
QString lenstr=RDGetTimeLength(button_active_length+1000,true,false);
|
||||
p->drawText(size().width()-p->fontMetrics().width(lenstr)-
|
||||
p->drawText(pix->width()-p->fontMetrics().width(lenstr)-
|
||||
RDPANEL_BUTTON_MARGIN-2,
|
||||
size().height()-2-RDPANEL_BUTTON_MARGIN,
|
||||
pix->height()-2-RDPANEL_BUTTON_MARGIN,
|
||||
lenstr);
|
||||
}
|
||||
else {
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,size().height()-2-
|
||||
p->drawText(RDPANEL_BUTTON_MARGIN,pix->height()-2-
|
||||
RDPANEL_BUTTON_MARGIN,tr("No Audio"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
QString lenstr=RDGetTimeLength(1000+msecs,true,false);
|
||||
p->drawText(size().width()-p->fontMetrics().width(lenstr)-
|
||||
p->drawText(pix->width()-p->fontMetrics().width(lenstr)-
|
||||
RDPANEL_BUTTON_MARGIN-2,
|
||||
size().height()-2-RDPANEL_BUTTON_MARGIN,
|
||||
pix->height()-2-RDPANEL_BUTTON_MARGIN,
|
||||
lenstr);
|
||||
p->setFont(bigLabelFont());
|
||||
p->drawText((size().width()-p->fontMetrics().width(button_output_text))/2,
|
||||
74*size().height()/100,
|
||||
p->drawText((pix->width()-p->fontMetrics().width(button_output_text))/2,
|
||||
74*pix->height()/100,
|
||||
button_output_text);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
// rdpanel_button.h
|
||||
//
|
||||
// The SoundPanel Button for RDAirPlay.
|
||||
// Component class for sound panel widgets.
|
||||
//
|
||||
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2023 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -25,14 +25,18 @@
|
||||
#include <rdpushbutton.h>
|
||||
#include <rdweb.h>
|
||||
|
||||
//
|
||||
// Widget Settings
|
||||
//
|
||||
#define PANEL_BUTTON_SIZE_X 88
|
||||
#define PANEL_BUTTON_SIZE_Y 80
|
||||
#define RDPANEL_BUTTON_MARGIN 5
|
||||
|
||||
class RDPanelButton : public RDPushButton
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
RDPanelButton(int row,int col,RDStation *station,bool flash,
|
||||
QWidget *parent=0);
|
||||
RDPanelButton(int row,int col,RDStation *station,bool flash,QWidget *parent);
|
||||
void clear();
|
||||
int row() const;
|
||||
int column() const;
|
||||
@ -72,7 +76,9 @@ class RDPanelButton : public RDPushButton
|
||||
void setAllowDrags(bool state);
|
||||
void resetCounter();
|
||||
bool isEmpty() const;
|
||||
bool isActive() const;
|
||||
QString json(int padding=0,bool final=false);
|
||||
void setVisible(bool state);
|
||||
|
||||
signals:
|
||||
void cartDropped(int row,int col,unsigned cartnum,const QColor &color,
|
||||
@ -128,4 +134,6 @@ class RDPanelButton : public RDPushButton
|
||||
int button_move_count;
|
||||
bool button_allow_drags;
|
||||
};
|
||||
|
||||
|
||||
#endif // RDPANEL_BUTTON_H
|
||||
|
@ -36,6 +36,8 @@ RDSoundPanel::RDSoundPanel(int station_panels,int user_panels,bool flash,
|
||||
RDCartDialog *cart_dialog,QWidget *parent)
|
||||
: RDWidget(parent)
|
||||
{
|
||||
panel_started=false;
|
||||
panel_current_panel=NULL;
|
||||
panel_dump_panel_updates=false;
|
||||
panel_playmode_box=NULL;
|
||||
panel_button_columns=PANEL_MAX_BUTTON_COLUMNS;
|
||||
@ -82,9 +84,6 @@ RDSoundPanel::RDSoundPanel(int station_panels,int user_panels,bool flash,
|
||||
//
|
||||
// Load Buttons
|
||||
//
|
||||
panel_mapper=new QSignalMapper(this);
|
||||
connect(panel_mapper,SIGNAL(mapped(int)),this,SLOT(buttonMapperData(int)));
|
||||
|
||||
UpdatePanels(""); // Load Host (Station) Panels
|
||||
|
||||
//
|
||||
@ -98,22 +97,6 @@ RDSoundPanel::RDSoundPanel(int station_panels,int user_panels,bool flash,
|
||||
connect(panel_selector_box,SIGNAL(setupClicked()),
|
||||
this,SLOT(panelSetupData()));
|
||||
|
||||
if(panel_station_panels>0) {
|
||||
panel_number=0;
|
||||
panel_type=RDAirPlayConf::StationPanel;
|
||||
panel_panels.value("").at(0)->show();
|
||||
}
|
||||
else {
|
||||
if(panel_user_panels>0) {
|
||||
panel_number=0;
|
||||
panel_type=RDAirPlayConf::UserPanel;
|
||||
panel_panels.value(rda->user()->name()).at(0)->show();
|
||||
}
|
||||
else {
|
||||
setDisabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Play Mode Box
|
||||
//
|
||||
@ -178,7 +161,6 @@ RDSoundPanel::RDSoundPanel(int station_panels,int user_panels,bool flash,
|
||||
//
|
||||
// Load Panel Names
|
||||
//
|
||||
|
||||
QString sql;
|
||||
sql=QString("select ")+
|
||||
"`PANEL_NO`,"+
|
||||
@ -206,21 +188,18 @@ RDSoundPanel::RDSoundPanel(int station_panels,int user_panels,bool flash,
|
||||
i+1,i+1));
|
||||
}
|
||||
panel_selector_box->setFocus();
|
||||
|
||||
panel_scan_timer=new QTimer(this);
|
||||
connect(panel_scan_timer,SIGNAL(timeout()),this,SLOT(scanPanelData()));
|
||||
panel_scan_timer->start(PANEL_SCAN_INTERVAL);
|
||||
setDisabled((panel_station_panels==0)&&(panel_user_panels==0));
|
||||
}
|
||||
|
||||
|
||||
RDSoundPanel::~RDSoundPanel()
|
||||
{
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_panels.begin();it!=panel_panels.end();it++) {
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_arrays.begin();it!=panel_arrays.end();it++) {
|
||||
for(int i=0;i<it.value().size();i++) {
|
||||
delete it.value().at(i);
|
||||
}
|
||||
}
|
||||
panel_panels.clear();
|
||||
panel_arrays.clear();
|
||||
}
|
||||
|
||||
|
||||
@ -355,7 +334,7 @@ void RDSoundPanel::setText(RDAirPlayConf::PanelType type,int panel,int row,
|
||||
username=rda->user()->name();
|
||||
}
|
||||
RDPanelButton *button=
|
||||
panel_panels.value(username).at(panel)->panelButton(row,col);
|
||||
panel_arrays.value(username).at(panel)->panelButton(row,col);
|
||||
button->setText(str);
|
||||
SaveButton(type,panel,row,col);
|
||||
}
|
||||
@ -369,7 +348,7 @@ void RDSoundPanel::setColor(RDAirPlayConf::PanelType type,int panel,int row,
|
||||
username=rda->user()->name();
|
||||
}
|
||||
RDPanelButton *button=
|
||||
panel_panels.value(username).at(panel)->panelButton(row,col);
|
||||
panel_arrays.value(username).at(panel)->panelButton(row,col);
|
||||
button->setDefaultColor(color);
|
||||
SaveButton(type,panel,row,col);
|
||||
}
|
||||
@ -389,16 +368,16 @@ void RDSoundPanel::duckVolume(RDAirPlayConf::PanelType type,int panel,int row,
|
||||
for(int i=0;i<panel_button_columns;i++) {
|
||||
for(int j=0;j<panel_button_rows;j++) {
|
||||
RDPlayDeck *deck=
|
||||
panel_panels.value(username).at(panel)->panelButton(j,i)->playDeck();
|
||||
panel_arrays.value(username).at(panel)->panelButton(j,i)->playDeck();
|
||||
if((row==j || row==-1) && (col==i || col==-1)) {
|
||||
if(mport==-1) {
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->setDuckVolume(level);
|
||||
}
|
||||
if(deck!=NULL) {
|
||||
if(edit_mport==-1 ||
|
||||
edit_mport==
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->outputText().toInt()) {
|
||||
deck->duckVolume(level,fade);
|
||||
}
|
||||
@ -444,7 +423,7 @@ void RDSoundPanel::setActionMode(RDAirPlayConf::ActionMode mode)
|
||||
if(mode!=panel_action_mode) {
|
||||
panel_action_mode=mode;
|
||||
panel_setup_button->setEnabled(panel_action_mode==RDAirPlayConf::Normal);
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_panels.begin();it!=panel_panels.end();it++) {
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_arrays.begin();it!=panel_arrays.end();it++) {
|
||||
for(int i=0;i<it.value().size();i++) {
|
||||
if(i<panel_station_panels &&
|
||||
(!panel_config_panels) &&
|
||||
@ -493,7 +472,7 @@ RDAirPlayConf::PanelType RDSoundPanel::currentType() const
|
||||
QString RDSoundPanel::json(const QString &owner,int padding,bool final) const
|
||||
{
|
||||
QString ret;
|
||||
QList<RDButtonPanel *> panels=panel_panels.value(owner);
|
||||
QList<RDButtonPanel *> panels=panel_arrays.value(owner);
|
||||
|
||||
ret+=RDJsonPadding(padding)+"\"array\": {\r\n";
|
||||
ret+=RDJsonField("owner",owner,4+padding);
|
||||
@ -520,9 +499,9 @@ QString RDSoundPanel::json(int padding) const
|
||||
QString ret;
|
||||
|
||||
int count=0;
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_panels.
|
||||
begin();it!=panel_panels.end();it++) {
|
||||
ret+=json(it.key(),4,++count==panel_panels.size());
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_arrays.
|
||||
begin();it!=panel_arrays.end();it++) {
|
||||
ret+=json(it.key(),4,++count==panel_arrays.size());
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -540,8 +519,8 @@ void RDSoundPanel::setButton(RDAirPlayConf::PanelType type,int panel,
|
||||
username=rda->user()->name();
|
||||
}
|
||||
RDPanelButton *button=
|
||||
panel_panels.value(username).at(panel)->panelButton(row,col);
|
||||
if(button->playDeck()!=NULL) {
|
||||
panel_arrays.value(username).at(panel)->panelButton(row,col);
|
||||
if(button->isActive()) {
|
||||
return;
|
||||
}
|
||||
button->clear();
|
||||
@ -643,14 +622,17 @@ void RDSoundPanel::changeUser()
|
||||
q->next();
|
||||
}
|
||||
else {
|
||||
panel_selector_box->insertItem(QString::asprintf("[U:%d] Panel U:%d",
|
||||
i+1,i+1));
|
||||
panel_selector_box->
|
||||
insertItem(QString::asprintf("[U:%d] Panel U:%d",i+1,i+1));
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
panel_selector_box->setCurrentIndex(current_item);
|
||||
|
||||
UpdateButtonViewport();
|
||||
if(!panel_started) {
|
||||
panelActivatedData(panel_selector_box->currentIndex());
|
||||
panel_started=true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -691,11 +673,11 @@ void RDSoundPanel::panelDown()
|
||||
|
||||
void RDSoundPanel::panelActivatedData(int n)
|
||||
{
|
||||
printf("panelActivatedData(%d)\n",n);
|
||||
QString username;
|
||||
if(panel_type==RDAirPlayConf::UserPanel) {
|
||||
username=rda->user()->name();
|
||||
}
|
||||
panel_panels.value(username).at(panel_number)->hide();
|
||||
if(n<panel_station_panels) {
|
||||
panel_type=RDAirPlayConf::StationPanel;
|
||||
panel_number=n;
|
||||
@ -706,9 +688,8 @@ void RDSoundPanel::panelActivatedData(int n)
|
||||
panel_number=n-panel_station_panels;
|
||||
username=rda->user()->name();
|
||||
}
|
||||
panel_panels.value(username).at(panel_number)->show();
|
||||
|
||||
UpdateButtonViewport();
|
||||
ShowPanel(panel_type,panel_number);
|
||||
}
|
||||
|
||||
|
||||
@ -761,7 +742,7 @@ void RDSoundPanel::setupClickedData()
|
||||
}
|
||||
if(rda->station()->enableDragdrop()&&(rda->station()->enforcePanelSetup())) {
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=
|
||||
panel_panels.begin();it!=panel_panels.end();it++) {
|
||||
panel_arrays.begin();it!=panel_arrays.end();it++) {
|
||||
for(int i=0;i<it.value().size();i++) {
|
||||
it.value().at(i)->setAcceptDrops(panel_setup_mode);
|
||||
}
|
||||
@ -771,11 +752,15 @@ void RDSoundPanel::setupClickedData()
|
||||
}
|
||||
|
||||
|
||||
void RDSoundPanel::buttonMapperData(int grid_pos)
|
||||
void RDSoundPanel::buttonClickedData(int pnum,int col,int row)
|
||||
{
|
||||
RDPanelButton *button=GetCurrentPanel()->
|
||||
panelButton(grid_pos/PANEL_MAX_BUTTON_COLUMNS,
|
||||
grid_pos%PANEL_MAX_BUTTON_COLUMNS);
|
||||
// printf("buttonMapperData(pnum: %d,col: %d row: %d)\n",pnum,col,row);
|
||||
|
||||
if(panel_current_panel==NULL) {
|
||||
printf("NO CURRENT PANEL!\n");
|
||||
return;
|
||||
}
|
||||
RDPanelButton *button=panel_current_panel->panelButton(row,col);
|
||||
unsigned cartnum;
|
||||
|
||||
switch(panel_action_mode) {
|
||||
@ -788,7 +773,7 @@ void RDSoundPanel::buttonMapperData(int grid_pos)
|
||||
case RDAirPlayConf::CopyTo:
|
||||
if(button->playDeck()==NULL
|
||||
&& ((panel_type==RDAirPlayConf::UserPanel) ||
|
||||
panel_config_panels)) {
|
||||
panel_config_panels)) {
|
||||
emit selectClicked(0,button->row(),button->column());
|
||||
}
|
||||
break;
|
||||
@ -951,21 +936,16 @@ void RDSoundPanel::onairFlagChangedData(bool state)
|
||||
}
|
||||
|
||||
|
||||
void RDSoundPanel::scanPanelData()
|
||||
{
|
||||
if(panel_action_mode==RDAirPlayConf::Normal) {
|
||||
ShowPanel(panel_type,panel_number);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDSoundPanel::resizeEvent(QResizeEvent *e)
|
||||
{
|
||||
// int w=size().width();
|
||||
int h=size().height();
|
||||
|
||||
UpdateButtonViewport();
|
||||
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=panel_arrays.begin();it!=panel_arrays.end();it++) {
|
||||
for(int i=0;i<it.value().size();i++) {
|
||||
it.value().at(i)->setGeometry(0,0,size().width()-5,size().height()-60);
|
||||
}
|
||||
}
|
||||
panel_selector_box->setGeometry(0,h-50,2*PANEL_BUTTON_SIZE_X+10,50);
|
||||
panel_playmode_box->setGeometry(2*PANEL_BUTTON_SIZE_X+15,h-50,
|
||||
PANEL_BUTTON_SIZE_X+10,50);
|
||||
@ -992,23 +972,6 @@ void RDSoundPanel::wheelEvent(QWheelEvent *e)
|
||||
}
|
||||
|
||||
|
||||
void RDSoundPanel::UpdateButtonViewport()
|
||||
{
|
||||
QString username;
|
||||
if(panel_type==RDAirPlayConf::UserPanel) {
|
||||
username=rda->user()->name();
|
||||
}
|
||||
QRect viewport(0,0,size().width()-5,size().height()-60);
|
||||
RDButtonPanel *panel=panel_panels.value(username).at(panel_number);
|
||||
for(int i=0;i<panel_button_rows;i++) {
|
||||
for(int j=0;j<panel_button_columns;j++) {
|
||||
RDPanelButton *button=panel->panelButton(i,j);
|
||||
button->setVisible(viewport.contains(button->geometry()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDSoundPanel::PlayButton(RDAirPlayConf::PanelType type,int panel,
|
||||
int row,int col,RDLogLine::StartSource src,bool hookmode,
|
||||
int mport,bool pause_when_finished)
|
||||
@ -1022,8 +985,8 @@ void RDSoundPanel::PlayButton(RDAirPlayConf::PanelType type,int panel,
|
||||
|
||||
for(int i=0;i<panel_button_columns;i++) {
|
||||
for(int j=0;j<panel_button_rows;j++) {
|
||||
if(panel_panels.value(username).at(panel)->panelButton(j,i)->cart()>0 &&
|
||||
panel_panels.value(username).at(panel)->
|
||||
if(panel_arrays.value(username).at(panel)->panelButton(j,i)->cart()>0 &&
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->state()==false) {
|
||||
if(edit_col==-1 || col==i) {
|
||||
edit_col=i;
|
||||
@ -1039,7 +1002,7 @@ void RDSoundPanel::PlayButton(RDAirPlayConf::PanelType type,int panel,
|
||||
}
|
||||
|
||||
RDPanelButton *button=
|
||||
panel_panels.value(username).at(panel)->panelButton(edit_row,edit_col);
|
||||
panel_arrays.value(username).at(panel)->panelButton(edit_row,edit_col);
|
||||
RDPlayDeck *deck=button->playDeck();
|
||||
if(deck!=NULL) {
|
||||
deck->play(deck->currentPosition());
|
||||
@ -1210,14 +1173,14 @@ void RDSoundPanel::PauseButton(RDAirPlayConf::PanelType type,int panel,
|
||||
for(int i=0;i<panel_button_columns;i++) {
|
||||
for(int j=0;j<panel_button_rows;j++) {
|
||||
RDPlayDeck *deck=
|
||||
panel_panels.value(username).at(panel)->panelButton(j,i)->playDeck();
|
||||
panel_arrays.value(username).at(panel)->panelButton(j,i)->playDeck();
|
||||
if(deck!=NULL && (row==j || row==-1) && (col==i || col==-1)) {
|
||||
if(mport==-1 ||
|
||||
mport==panel_panels.value(username).at(panel)->
|
||||
mport==panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->outputText().toInt()) {
|
||||
deck->pause();
|
||||
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->setStartTime(QTime());
|
||||
}
|
||||
}
|
||||
@ -1240,19 +1203,19 @@ void RDSoundPanel::StopButton(RDAirPlayConf::PanelType type,int panel,
|
||||
}
|
||||
for(int i=0;i<panel_button_columns;i++) {
|
||||
for(int j=0;j<panel_button_rows;j++) {
|
||||
RDPlayDeck *deck=panel_panels.value(username).at(panel)->
|
||||
RDPlayDeck *deck=panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->playDeck();
|
||||
if((row==j || row==-1) && (col==i || col==-1)) {
|
||||
if(deck!=NULL) {
|
||||
if(edit_mport==-1 ||
|
||||
edit_mport==panel_panels.value(username).
|
||||
edit_mport==panel_arrays.value(username).
|
||||
at(panel)->panelButton(j,i)->outputText().toInt()) {
|
||||
if(panel_pause_enabled) {
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->setPauseWhenFinished(pause_when_finished);
|
||||
}
|
||||
else {
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->setPauseWhenFinished(false);
|
||||
}
|
||||
switch(deck->state()) {
|
||||
@ -1272,11 +1235,11 @@ void RDSoundPanel::StopButton(RDAirPlayConf::PanelType type,int panel,
|
||||
}
|
||||
else {
|
||||
if(!pause_when_finished && panel_pause_enabled) {
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->setState(false);
|
||||
panel_panels.value(username).at(panel)->
|
||||
panel_arrays.value(username).at(panel)->
|
||||
panelButton(j,i)->setPauseWhenFinished(false);
|
||||
panel_panels.value(username).at(panel)->panelButton(j,i)->reset();
|
||||
panel_arrays.value(username).at(panel)->panelButton(j,i)->reset();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1314,182 +1277,43 @@ void RDSoundPanel::StopButton(RDPlayDeck *deck)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void RDSoundPanel::LoadPanels()
|
||||
{
|
||||
for(unsigned i=0;i<panel_panels.size();i++) {
|
||||
delete panel_panels[i];
|
||||
}
|
||||
panel_panels.clear();
|
||||
|
||||
//
|
||||
// Load Buttons
|
||||
//
|
||||
for(int i=0;i<panel_station_panels;i++) {
|
||||
panel_panels.push_back(new RDButtonPanel(panel_type,i,panel_button_columns,
|
||||
panel_button_rows,
|
||||
rda->station(),panel_flash,this));
|
||||
for(int j=0;j<panel_button_rows;j++) {
|
||||
for(int k=0;k<panel_button_columns;k++) {
|
||||
connect(panel_panels.back()->panelButton(j,k),SIGNAL(clicked()),
|
||||
panel_mapper,SLOT(map()));
|
||||
panel_mapper->setMapping(panel_panels.back()->panelButton(j,k),
|
||||
j*panel_button_columns+k);
|
||||
}
|
||||
}
|
||||
LoadPanel(RDAirPlayConf::StationPanel,i);
|
||||
panel_panels.back()->setAllowDrags(rda->station()->enableDragdrop());
|
||||
}
|
||||
for(int i=0;i<panel_user_panels;i++) {
|
||||
panel_panels.push_back(new RDButtonPanel(panel_type,i,panel_button_columns,
|
||||
panel_button_rows,
|
||||
rda->station(),panel_flash,this));
|
||||
for(int j=0;j<panel_button_rows;j++) {
|
||||
for(int k=0;k<panel_button_columns;k++) {
|
||||
connect(panel_panels.back()->panelButton(j,k),SIGNAL(clicked()),
|
||||
panel_mapper,SLOT(map()));
|
||||
panel_mapper->setMapping(panel_panels.back()->panelButton(j,k),
|
||||
j*panel_button_columns+k);
|
||||
}
|
||||
}
|
||||
panel_panels.back()->setAllowDrags(rda->station()->enableDragdrop());
|
||||
LoadPanel(RDAirPlayConf::UserPanel,i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void RDSoundPanel::LoadPanel(RDAirPlayConf::PanelType type,int panel)
|
||||
{
|
||||
QString owner;
|
||||
int offset=0;
|
||||
|
||||
switch(type) {
|
||||
case RDAirPlayConf::UserPanel:
|
||||
owner=rda->user()->name();
|
||||
offset=panel_station_panels+panel;
|
||||
break;
|
||||
|
||||
case RDAirPlayConf::StationPanel:
|
||||
owner=rda->station()->name();
|
||||
offset=panel;
|
||||
break;
|
||||
}
|
||||
|
||||
QString sql=QString("select ")+
|
||||
panel_tablename+".`ROW_NO`,"+ // 00
|
||||
panel_tablename+".`COLUMN_NO`,"+ // 01
|
||||
panel_tablename+".`LABEL`,"+ // 02
|
||||
panel_tablename+".`CART`,"+ // 03
|
||||
panel_tablename+".`DEFAULT_COLOR`,"+ // 04
|
||||
"`CART`.`FORCED_LENGTH`,"+ // 05
|
||||
"`CART`.`AVERAGE_HOOK_LENGTH`,"+ // 06
|
||||
"`CART`.`TYPE` "+ // 07
|
||||
"from "+panel_tablename+" "+ // 08
|
||||
"left join `CART` on "+panel_tablename+".`CART`=`CART`.`NUMBER` "+
|
||||
"where "+panel_tablename+QString::asprintf(".`TYPE`=%d && ",type)+
|
||||
panel_tablename+".`OWNER`='"+RDEscapeString(owner)+"' && "+
|
||||
panel_tablename+QString::asprintf(".`PANEL_NO`=%d ",panel)+
|
||||
"order by "+panel_tablename+".`COLUMN_NO`,"+panel_tablename+".`ROW_NO`";
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
if(panel_panels[offset]->panelButton(q->value(0).toInt(),
|
||||
q->value(1).toInt())->playDeck()==NULL) {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setText(q->value(2).toString());
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setCart(q->value(3).toInt());
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setLength(false,q->value(5).toInt());
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setLength(true,q->value(6).toInt());
|
||||
if((panel_playmode_box!=NULL)&&(panel_playmode_box->currentIndex()==1)&&
|
||||
(q->value(6).toUInt()>0)) {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setActiveLength(q->value(6).toInt());
|
||||
}
|
||||
else {
|
||||
if(q->value(7).toInt()==RDCart::Macro) {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setActiveLength(q->value(5).toInt());
|
||||
}
|
||||
else {
|
||||
if(q->value(5).toInt()>0) {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setActiveLength(q->value(5).toInt());
|
||||
}
|
||||
else {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setActiveLength(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(q->value(4).toString().isEmpty()) {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setColor(palette().color(QPalette::Background));
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setDefaultColor(palette().color(QPalette::Background));
|
||||
}
|
||||
else {
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setColor(QColor(q->value(4).toString()));
|
||||
panel_panels[offset]->
|
||||
panelButton(q->value(0).toInt(),q->value(1).toInt())->
|
||||
setDefaultColor(QColor(q->value(4).toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
|
||||
UpdateButtonViewport();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
void RDSoundPanel::UpdatePanels(const QString &username)
|
||||
{
|
||||
QString owner=username;
|
||||
RDAirPlayConf::PanelType type=RDAirPlayConf::UserPanel;
|
||||
int size=panel_user_panels;
|
||||
int max_panels=panel_user_panels;
|
||||
|
||||
if(username.isEmpty()) {
|
||||
owner=rda->station()->name();
|
||||
type=RDAirPlayConf::StationPanel;
|
||||
size=panel_station_panels;
|
||||
max_panels=panel_station_panels;
|
||||
}
|
||||
|
||||
//
|
||||
// Create the panel
|
||||
// Load the array if it isn't already loaded
|
||||
//
|
||||
if(size>0) {
|
||||
if(max_panels>0) {
|
||||
QList<RDButtonPanel *> list;
|
||||
if(panel_panels.value(username).size()>0) {
|
||||
list=panel_panels.value(username);
|
||||
if(panel_arrays.value(username).size()>0) {
|
||||
list=panel_arrays.value(username);
|
||||
}
|
||||
for(int i=panel_panels.value(username).size();i<size;i++) {
|
||||
for(int i=panel_arrays.value(username).size();i<max_panels;i++) {
|
||||
RDButtonPanel *panel=new RDButtonPanel(type,i,this);
|
||||
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
|
||||
for(int k=0;k<PANEL_MAX_BUTTON_ROWS;k++) {
|
||||
RDPanelButton *button=panel->panelButton(k,j);
|
||||
connect(button,SIGNAL(clicked()),panel_mapper,SLOT(map()));
|
||||
panel_mapper->setMapping(button,k*PANEL_MAX_BUTTON_COLUMNS+j);
|
||||
}
|
||||
}
|
||||
printf("new panel type: %d number: %d ptr: %p\n",
|
||||
type,i,panel);
|
||||
|
||||
connect(panel,SIGNAL(buttonClicked(int,int,int)),
|
||||
this,SLOT(buttonClickedData(int,int,int)));
|
||||
panel->hide();
|
||||
list.push_back(panel);
|
||||
}
|
||||
panel_panels[username]=list;
|
||||
panel_arrays[username]=list;
|
||||
}
|
||||
|
||||
//
|
||||
// Update button attributes
|
||||
//
|
||||
QString sql=QString("select ")+
|
||||
panel_tablename+".`PANEL_NO`,"+ // 00
|
||||
panel_tablename+".`ROW_NO`,"+ // 01
|
||||
@ -1503,16 +1327,17 @@ void RDSoundPanel::UpdatePanels(const QString &username)
|
||||
"from "+panel_tablename+" "+ // 09
|
||||
"left join `CART` on "+panel_tablename+".`CART`=`CART`.`NUMBER` "+
|
||||
"where "+panel_tablename+QString::asprintf(".`TYPE`=%d && ",type)+
|
||||
panel_tablename+".`OWNER`='"+RDEscapeString(owner)+"' "+
|
||||
panel_tablename+".`OWNER`='"+RDEscapeString(owner)+"' && "+
|
||||
panel_tablename+QString::asprintf(".`PANEL_NO`<%d ",max_panels)+
|
||||
"order by "+
|
||||
panel_tablename+".`PANEL_NO`,"+
|
||||
panel_tablename+".`COLUMN_NO`,"+
|
||||
panel_tablename+".`ROW_NO`";
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
RDPanelButton *button=panel_panels.value(username).at(q->value(0).toInt())->
|
||||
RDPanelButton *button=panel_arrays.value(username).at(q->value(0).toInt())->
|
||||
panelButton(q->value(1).toInt(),q->value(2).toInt());
|
||||
if(button->playDeck()==NULL) {
|
||||
if(!button->isActive()) {
|
||||
button->setText(q->value(3).toString());
|
||||
button->setCart(q->value(4).toInt());
|
||||
button->setLength(false,q->value(6).toInt());
|
||||
@ -1554,25 +1379,14 @@ void RDSoundPanel::ShowPanel(RDAirPlayConf::PanelType type,int offset)
|
||||
if(type==RDAirPlayConf::UserPanel) {
|
||||
username=rda->user()->name();
|
||||
}
|
||||
for(QMap<QString,QList<RDButtonPanel *> >::const_iterator it=
|
||||
panel_panels.begin();it!=panel_panels.end();it++) {
|
||||
if(it.key()==username) {
|
||||
for(int i=0;i<it.value().size();i++) {
|
||||
if(offset==i) {
|
||||
it.value().at(i)->show();
|
||||
}
|
||||
else {
|
||||
it.value().at(i)->hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(int i=0;i<it.value().size();i++) {
|
||||
it.value().at(i)->hide();
|
||||
}
|
||||
printf("username: %s\n",username.toUtf8().constData());
|
||||
if(panel_arrays.value(username).size()>offset) {
|
||||
if(panel_current_panel!=NULL) {
|
||||
panel_current_panel->hide();
|
||||
}
|
||||
panel_arrays.value(username).at(offset)->show();
|
||||
panel_current_panel=panel_arrays.value(username).at(offset);
|
||||
}
|
||||
UpdateButtonViewport();
|
||||
}
|
||||
|
||||
|
||||
@ -1599,7 +1413,7 @@ void RDSoundPanel::SaveButton(RDAirPlayConf::PanelType type,
|
||||
}
|
||||
|
||||
RDPanelButton *button=
|
||||
panel_panels.value(username).at(panel)->panelButton(row,col);
|
||||
panel_arrays.value(username).at(panel)->panelButton(row,col);
|
||||
|
||||
//
|
||||
// Determine if the button exists
|
||||
@ -1937,17 +1751,6 @@ QString RDSoundPanel::PanelOwner(RDAirPlayConf::PanelType type)
|
||||
}
|
||||
|
||||
|
||||
RDButtonPanel *RDSoundPanel::GetCurrentPanel() const
|
||||
{
|
||||
QString username;
|
||||
|
||||
if(panel_type==RDAirPlayConf::UserPanel) {
|
||||
username=rda->user()->name();
|
||||
}
|
||||
return panel_panels.value(username).at(panel_number);
|
||||
}
|
||||
|
||||
|
||||
RDPanelButton *RDSoundPanel::GetVisibleButton(int row,int col) const
|
||||
{
|
||||
return NULL;
|
||||
|
@ -112,23 +112,20 @@ class RDSoundPanel : public RDWidget
|
||||
void resetClickedData();
|
||||
void allClickedData();
|
||||
void setupClickedData();
|
||||
void buttonMapperData(int grid_pos);
|
||||
// void buttonMapperData(QWidget *w);
|
||||
void buttonClickedData(int pnum,int col,int row);
|
||||
void stateChangedData(int id,RDPlayDeck::State state);
|
||||
void hookEndData(int id);
|
||||
void timescalingSupportedData(int card,bool state);
|
||||
void panelSetupData();
|
||||
void onairFlagChangedData(bool state);
|
||||
void scanPanelData();
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
void wheelEvent(QWheelEvent *e);
|
||||
|
||||
private:
|
||||
void UpdateButtonViewport();
|
||||
void PlayButton(RDAirPlayConf::PanelType type,int panel,int row,int col,
|
||||
RDLogLine::StartSource src,bool hookmode,int mport=-1,
|
||||
RDLogLine::StartSource src,bool hookmode,int mport=-1,
|
||||
bool pause_when_finished=false);
|
||||
bool PlayAudio(RDPanelButton *button,RDCart *cart,bool hookmode,int mport=-1);
|
||||
void PlayMacro(RDPanelButton *button,RDCart *cart);
|
||||
@ -138,12 +135,9 @@ class RDSoundPanel : public RDWidget
|
||||
int mport=-1,bool pause_when_finished=false,int fade_out=0);
|
||||
void StopButton(int id);
|
||||
void StopButton(RDPlayDeck *deck);
|
||||
// void LoadPanels();
|
||||
// void LoadPanel(RDAirPlayConf::PanelType type,int panel);
|
||||
void UpdatePanels(const QString &username);
|
||||
void ShowPanel(RDAirPlayConf::PanelType type,int offset);
|
||||
void SaveButton(RDAirPlayConf::PanelType type,int panel,int row,int col);
|
||||
// int PanelOffset(RDAirPlayConf::PanelType type,int panel);
|
||||
int GetFreeButtonDeck();
|
||||
int GetFreeOutput();
|
||||
void LogPlayEvent(unsigned cartnum,int cutnum);
|
||||
@ -157,9 +151,9 @@ class RDSoundPanel : public RDWidget
|
||||
void ClearReset();
|
||||
QString PanelTag(int index);
|
||||
QString PanelOwner(RDAirPlayConf::PanelType type);
|
||||
RDButtonPanel *GetCurrentPanel() const;
|
||||
RDPanelButton *GetVisibleButton(int row,int col) const;
|
||||
QMap<QString,QList<RDButtonPanel *> > panel_panels;
|
||||
QMap<QString,QList<RDButtonPanel *> > panel_arrays;
|
||||
RDButtonPanel *panel_current_panel;
|
||||
RDComboBox *panel_selector_box;
|
||||
QComboBox *panel_playmode_box;
|
||||
RDPushButton *panel_setup_button;
|
||||
@ -167,7 +161,6 @@ class RDSoundPanel : public RDWidget
|
||||
RDPushButton *panel_all_button;
|
||||
RDAirPlayConf::PanelType panel_type;
|
||||
RDButtonDialog *panel_button_dialog;
|
||||
QSignalMapper *panel_mapper;
|
||||
QString panel_tablename;
|
||||
QString panel_name_tablename;
|
||||
int panel_number;
|
||||
@ -199,9 +192,9 @@ class RDSoundPanel : public RDWidget
|
||||
int panel_button_rows;
|
||||
RDCartDialog *panel_cart_dialog;
|
||||
bool panel_onair_flag;
|
||||
QTimer *panel_scan_timer;
|
||||
QString panel_caption;
|
||||
bool panel_dump_panel_updates;
|
||||
bool panel_started;
|
||||
};
|
||||
|
||||
#endif // RDSOUND_PANEL_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user