wip en active, hacer lista con las cues activas?
This commit is contained in:
parent
86e866c996
commit
0795157d5f
7 changed files with 67 additions and 25 deletions
|
@ -145,7 +145,8 @@ void CueTrackListWidget::createNewCueTrack()
|
|||
CueTrack *t = new CueTrack;
|
||||
cueTrackLoadDefaults(t);
|
||||
EditCueTrackWidget dialog(t, this);
|
||||
if (dialog.exec() == QDialog::Accepted)
|
||||
if (dialog.exec() == QDialog::Accepted) {
|
||||
t->active = false;
|
||||
addCueTrack(t);
|
||||
if (m_size == 1)
|
||||
{
|
||||
|
@ -153,6 +154,10 @@ void CueTrackListWidget::createNewCueTrack()
|
|||
emit changeSelectedIndex(0);
|
||||
} else
|
||||
redrawCueTrackList();
|
||||
if (lastUserCueNumber < t->userNumber)
|
||||
lastUserCueNumber = t->userNumber + 10;
|
||||
} else
|
||||
delete (t);
|
||||
}
|
||||
|
||||
void CueTrackListWidget::editCueTrack()
|
||||
|
@ -164,6 +169,8 @@ void CueTrackListWidget::editCueTrack()
|
|||
redrawCueTrackList();
|
||||
emit changeSelectedIndex(selectedIndex);
|
||||
}
|
||||
if (lastUserCueNumber < current->userNumber)
|
||||
lastUserCueNumber = current->userNumber + 10;
|
||||
}
|
||||
|
||||
void CueTrackListWidget::deleteCueTrack()
|
||||
|
@ -223,7 +230,7 @@ void CueTrackListWidget::redrawCueTrackList()
|
|||
int selected = cueTracks.at(selectedIndex)->userNumber;
|
||||
clearTableWidget();
|
||||
tableWidget->setColumnCount(7);
|
||||
QStringList headers = {"Active", "Number","Audio Channel", "Name", "Volume", "Status", "File"};
|
||||
QStringList headers = {"Active", "Number","Channel", "Name", "Volume", "Status", "File"};
|
||||
tableWidget->setHorizontalHeaderLabels(headers);
|
||||
sortCueTrackList();
|
||||
selectedIndex = 0;
|
||||
|
@ -309,7 +316,12 @@ void CueTrackListWidget::loadCueTrackList(std::string filename)
|
|||
t->waitOut = xmlReader.text().toInt();
|
||||
}
|
||||
else if (elementName == "stopAtEnd") {
|
||||
t->stopAtEnd = xmlReader.text().toString().toLower() == "true";
|
||||
QString tmp = xmlReader.text().toString().toLower();
|
||||
if (tmp.compare("true"))
|
||||
t->stopAtEnd = true;
|
||||
else {
|
||||
t->stopAtEnd = false;
|
||||
}
|
||||
}
|
||||
else if (elementName == "name") {
|
||||
t->name = xmlReader.text().toString().toStdString();
|
||||
|
@ -329,9 +341,7 @@ void CueTrackListWidget::loadCueTrackList(std::string filename)
|
|||
else if (elementName == "audioLayer") {
|
||||
t->audioLayer = xmlReader.text().toInt();
|
||||
}
|
||||
else if (elementName == "active") {
|
||||
t->active = xmlReader.text().toString().toLower() == "true";
|
||||
}
|
||||
t->active = false;
|
||||
}
|
||||
}
|
||||
xmlReader.readNext();
|
||||
|
@ -393,9 +403,6 @@ std::string CueTrackListWidget::cueTrackToXml(const CueTrack& cueTrack)
|
|||
xml += " <entryPoint>" + std::to_string(cueTrack.entryPoint) + "</entryPoint>\n";
|
||||
xml += " <exitPoint>" + std::to_string(cueTrack.exitPoint) + "</exitPoint>\n";
|
||||
xml += " <audioLayer>" + std::to_string(cueTrack.audioLayer) + "</audioLayer>\n";
|
||||
xml += " <active>";
|
||||
xml += (cueTrack.active ? "true" : "false");
|
||||
xml += "</active>\n";
|
||||
xml += " </CueTrack>\n";
|
||||
return xml;
|
||||
}
|
||||
|
@ -528,3 +535,17 @@ void CueTrackListWidget::clearTableWidget()
|
|||
tableWidget->clear();
|
||||
tableWidget->setRowCount(0);
|
||||
}
|
||||
|
||||
void CueTrackListWidget::cueTrackAtEnd(int layer)
|
||||
{
|
||||
for (int i = 0; i < m_size; i++)
|
||||
{
|
||||
CueTrack * cur = cueTracks.at(i);
|
||||
if (cur->audioLayer == layer)
|
||||
{
|
||||
cur->active = false;
|
||||
}
|
||||
layer--;
|
||||
}
|
||||
redrawCueTrackList();
|
||||
}
|
||||
|
|
|
@ -31,6 +31,8 @@ public slots:
|
|||
void clearCueTrackList();
|
||||
void setLastUserCueNumber(size_t n) { lastUserCueNumber = n; }
|
||||
size_t getLastUserCueNumber() { return lastUserCueNumber; }
|
||||
void cueTrackAtEnd(int layer);
|
||||
void redrawCueTrackList();
|
||||
|
||||
private:
|
||||
std::vector<CueTrack *> cueTracks;
|
||||
|
@ -39,7 +41,7 @@ private:
|
|||
int m_size = 0;
|
||||
int size() { return m_size; }
|
||||
int selectedIndex = 0;
|
||||
size_t lastUserCueNumber = 0;
|
||||
int lastUserCueNumber = 0;
|
||||
|
||||
private slots:
|
||||
void addCueTrack(CueTrack* cue);
|
||||
|
@ -52,7 +54,6 @@ private slots:
|
|||
void cueTrackLoadDefaults(CueTrack * t);
|
||||
void copyCueTrack(CueTrack *src, CueTrack *dst);
|
||||
void sortCueTrackList();
|
||||
void redrawCueTrackList();
|
||||
void clearTableWidget();
|
||||
std::string cueTrackToXml(const CueTrack& cueTrack);
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ constexpr const char* statusToString(Status e) noexcept
|
|||
#include <QString>
|
||||
|
||||
static Status stringToStatus(QString *statusStr) {
|
||||
if (!statusStr->compare("Stopped")) return Stopped;
|
||||
if (!statusStr->compare("Stop")) return Stopped;
|
||||
else if (!statusStr->compare("Paused") ) return Paused;
|
||||
else if (!statusStr->compare("Play 1")) return PlayingOnce;
|
||||
else if (!statusStr->compare("Play Loop")) return PlayingLoop;
|
||||
|
|
|
@ -139,8 +139,6 @@ void libreMediaServerAudio::dmxInput(int layer, int channel, int value)
|
|||
#ifndef NOGUI
|
||||
if (m_ui) {
|
||||
m_lmsUi->m_aw->filterParamChanged(layer, channel, value);
|
||||
m_played.clear();
|
||||
m_played.append(m_ola->getValue(layer, DMX_FILE));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -175,11 +173,13 @@ void libreMediaServerAudio::refreshUi() {
|
|||
if (m_currentStatus[i] == Status::PlayingOnce) {
|
||||
m_currentStatus[i] = Status::Stopped;
|
||||
m_lmsUi->m_aw->playbackChanged(i, Status::Stopped);
|
||||
m_lmsUi->m_showPlayer->cueTrackAtEnd(i);
|
||||
}
|
||||
if (m_currentStatus[i] == Status::PlayingFolder) {
|
||||
uint last = m_played.last();
|
||||
uint last = 0;
|
||||
if (!m_played.isEmpty())
|
||||
last = m_played.last() + 1;
|
||||
int folder = m_ola->getValue(i, DMX_FOLDER);
|
||||
last++;
|
||||
if (last < m_mediaLibrary->getMediaFolderCount(folder)) {
|
||||
this->loadMedia(i, folder, last);
|
||||
m_mae.playbackChanged(i, Status::PlayingFolder);
|
||||
|
@ -187,6 +187,7 @@ void libreMediaServerAudio::refreshUi() {
|
|||
else {
|
||||
m_currentStatus[i] = Status::Stopped;
|
||||
m_lmsUi->m_aw->playbackChanged(i, Status::Stopped);
|
||||
m_lmsUi->m_showPlayer->cueTrackAtEnd(i);
|
||||
}
|
||||
}
|
||||
else if (m_currentStatus[i] == Status::PlayingFolderLoop) {
|
||||
|
|
|
@ -44,6 +44,18 @@ void ShowPlayer::go()
|
|||
emit uiLoadMedia(current->audioLayer, current->filePath.data());
|
||||
updateTrackStateInEngine(current);
|
||||
emit uiPlaybackChanged(current->audioLayer, current->status);
|
||||
switch (current->status) {
|
||||
case Status::PlayingOnce:
|
||||
case Status::PlayingLoop:
|
||||
case Status::PlayingFolder:
|
||||
case Status::PlayingFolderLoop:
|
||||
case Status::PlayingFolderRandom:
|
||||
current->active = true;
|
||||
break;
|
||||
default:
|
||||
current->active = false;
|
||||
}
|
||||
ui->cueListWidget->redrawCueTrackList();
|
||||
filesLoaded++;
|
||||
}
|
||||
|
||||
|
@ -78,3 +90,8 @@ void ShowPlayer::saveCueTrackList()
|
|||
return;
|
||||
ui->cueListWidget->saveCueTrackList(fileName.toStdString());
|
||||
}
|
||||
|
||||
void ShowPlayer::cueTrackAtEnd(int layer)
|
||||
{
|
||||
ui->cueListWidget->cueTrackAtEnd(layer);
|
||||
}
|
||||
|
|
|
@ -24,6 +24,9 @@ public:
|
|||
explicit ShowPlayer(QWidget *parent = nullptr);
|
||||
~ShowPlayer();
|
||||
|
||||
public slots:
|
||||
void cueTrackAtEnd(int layer);
|
||||
|
||||
private:
|
||||
Ui::ShowPlayer *ui;
|
||||
Status currentStatus = Status::Iddle;
|
||||
|
@ -31,9 +34,8 @@ private:
|
|||
int layersUsed[MAX_LAYERS];
|
||||
int lastIndex = 0;
|
||||
|
||||
void updateTrackStateInEngine(CueTrack *track);
|
||||
|
||||
private slots:
|
||||
void updateTrackStateInEngine(CueTrack *track);
|
||||
void onAddTrack();
|
||||
void go();
|
||||
void changeSelectedIndex(int i);
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
<number>0</number>
|
||||
</property>
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SetMinimumSize</enum>
|
||||
<enum>QLayout::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>100</number>
|
||||
|
|
Loading…
Add table
Reference in a new issue