1 |
// qsamplerChannelStrip.cpp |
// qsamplerChannelStrip.cpp |
2 |
// |
// |
3 |
/**************************************************************************** |
/**************************************************************************** |
4 |
Copyright (C) 2004-2014, rncbc aka Rui Nuno Capela. All rights reserved. |
Copyright (C) 2004-2018, rncbc aka Rui Nuno Capela. All rights reserved. |
5 |
Copyright (C) 2007, 2008, 2014 Christian Schoenebeck |
Copyright (C) 2007, 2008, 2014 Christian Schoenebeck |
6 |
|
|
7 |
This program is free software; you can redistribute it and/or |
This program is free software; you can redistribute it and/or |
111 |
QObject::connect(m_ui.ChannelSoloPushButton, |
QObject::connect(m_ui.ChannelSoloPushButton, |
112 |
SIGNAL(toggled(bool)), |
SIGNAL(toggled(bool)), |
113 |
SLOT(channelSolo(bool))); |
SLOT(channelSolo(bool))); |
114 |
QObject::connect(m_ui.VolumeSlider, |
QObject::connect(m_ui.ChannelVolumeSlider, |
115 |
SIGNAL(valueChanged(int)), |
SIGNAL(valueChanged(int)), |
116 |
SLOT(volumeChanged(int))); |
SLOT(volumeChanged(int))); |
117 |
QObject::connect(m_ui.VolumeSpinBox, |
QObject::connect(m_ui.ChannelVolumeSpinBox, |
118 |
SIGNAL(valueChanged(int)), |
SIGNAL(valueChanged(int)), |
119 |
SLOT(volumeChanged(int))); |
SLOT(volumeChanged(int))); |
120 |
QObject::connect(m_ui.ChannelEditPushButton, |
QObject::connect(m_ui.ChannelEditPushButton, |
121 |
SIGNAL(clicked()), |
SIGNAL(clicked()), |
122 |
SLOT(channelEdit())); |
SLOT(channelEdit())); |
123 |
QObject::connect(m_ui.FxPushButton, |
QObject::connect(m_ui.ChannelFxPushButton, |
124 |
SIGNAL(clicked()), |
SIGNAL(clicked()), |
125 |
SLOT(channelFxEdit())); |
SLOT(channelFxEdit())); |
126 |
|
|
237 |
return m_ui.EngineNameTextLabel->font(); |
return m_ui.EngineNameTextLabel->font(); |
238 |
} |
} |
239 |
|
|
240 |
|
|
241 |
void ChannelStrip::setDisplayFont ( const QFont & font ) |
void ChannelStrip::setDisplayFont ( const QFont & font ) |
242 |
{ |
{ |
243 |
m_ui.EngineNameTextLabel->setFont(font); |
m_ui.EngineNameTextLabel->setFont(font); |
273 |
void ChannelStrip::setMaxVolume ( int iMaxVolume ) |
void ChannelStrip::setMaxVolume ( int iMaxVolume ) |
274 |
{ |
{ |
275 |
m_iDirtyChange++; |
m_iDirtyChange++; |
276 |
m_ui.VolumeSlider->setRange(0, iMaxVolume); |
m_ui.ChannelVolumeSlider->setRange(0, iMaxVolume); |
277 |
m_ui.VolumeSpinBox->setRange(0, iMaxVolume); |
m_ui.ChannelVolumeSpinBox->setRange(0, iMaxVolume); |
278 |
m_iDirtyChange--; |
m_iDirtyChange--; |
279 |
} |
} |
280 |
|
|
286 |
return false; |
return false; |
287 |
|
|
288 |
// Invoke the channel setup dialog. |
// Invoke the channel setup dialog. |
289 |
bool bResult = m_pChannel->channelSetup(this); |
const bool bResult = m_pChannel->channelSetup(this); |
290 |
// Notify that this channel has changed. |
// Notify that this channel has changed. |
291 |
if (bResult) |
if (bResult) |
292 |
emit channelChanged(this); |
emit channelChanged(this); |
302 |
return false; |
return false; |
303 |
|
|
304 |
// Invoke the channel mute method. |
// Invoke the channel mute method. |
305 |
bool bResult = m_pChannel->setChannelMute(bMute); |
const bool bResult = m_pChannel->setChannelMute(bMute); |
306 |
// Notify that this channel has changed. |
// Notify that this channel has changed. |
307 |
if (bResult) |
if (bResult) |
308 |
emit channelChanged(this); |
emit channelChanged(this); |
318 |
return false; |
return false; |
319 |
|
|
320 |
// Invoke the channel solo method. |
// Invoke the channel solo method. |
321 |
bool bResult = m_pChannel->setChannelSolo(bSolo); |
const bool bResult = m_pChannel->setChannelSolo(bSolo); |
322 |
// Notify that this channel has changed. |
// Notify that this channel has changed. |
323 |
if (bResult) |
if (bResult) |
324 |
emit channelChanged(this); |
emit channelChanged(this); |
364 |
return bResult; |
return bResult; |
365 |
} |
} |
366 |
|
|
367 |
|
|
368 |
// Channel reset slot. |
// Channel reset slot. |
369 |
bool ChannelStrip::channelReset (void) |
bool ChannelStrip::channelReset (void) |
370 |
{ |
{ |
372 |
return false; |
return false; |
373 |
|
|
374 |
// Invoke the channel reset method. |
// Invoke the channel reset method. |
375 |
bool bResult = m_pChannel->channelReset(); |
const bool bResult = m_pChannel->channelReset(); |
376 |
// Notify that this channel has changed. |
// Notify that this channel has changed. |
377 |
if (bResult) |
if (bResult) |
378 |
emit channelChanged(this); |
emit channelChanged(this); |
445 |
return true; |
return true; |
446 |
} |
} |
447 |
|
|
448 |
|
|
449 |
void ChannelStrip::instrumentListPopupItemClicked ( QAction *action ) |
void ChannelStrip::instrumentListPopupItemClicked ( QAction *action ) |
450 |
{ |
{ |
451 |
if (!action) return; |
if (!action) return; |
457 |
} |
} |
458 |
} |
} |
459 |
|
|
460 |
|
|
461 |
// Do the dirty volume change. |
// Do the dirty volume change. |
462 |
bool ChannelStrip::updateChannelVolume (void) |
bool ChannelStrip::updateChannelVolume (void) |
463 |
{ |
{ |
472 |
|
|
473 |
// Flag it here, to avoid infinite recursion. |
// Flag it here, to avoid infinite recursion. |
474 |
m_iDirtyChange++; |
m_iDirtyChange++; |
475 |
m_ui.VolumeSlider->setValue(iVolume); |
m_ui.ChannelVolumeSlider->setValue(iVolume); |
476 |
m_ui.VolumeSpinBox->setValue(iVolume); |
m_ui.ChannelVolumeSpinBox->setValue(iVolume); |
477 |
m_iDirtyChange--; |
m_iDirtyChange--; |
478 |
|
|
479 |
return true; |
return true; |
491 |
return true; |
return true; |
492 |
|
|
493 |
// Update strip caption. |
// Update strip caption. |
494 |
QString sText = m_pChannel->channelName(); |
const QString& sText = m_pChannel->channelName(); |
495 |
setWindowTitle(sText); |
setWindowTitle(sText); |
496 |
m_ui.ChannelSetupPushButton->setText('&' + sText); |
m_ui.ChannelSetupPushButton->setText('&' + sText); |
497 |
|
|
498 |
// Check if we're up and connected. |
// Check if we're up and connected. |
499 |
MainForm* pMainForm = MainForm::getInstance(); |
MainForm *pMainForm = MainForm::getInstance(); |
500 |
if (pMainForm->client() == NULL) |
if (pMainForm->client() == NULL) |
501 |
return false; |
return false; |
502 |
|
|
548 |
|
|
549 |
#ifdef CONFIG_MUTE_SOLO |
#ifdef CONFIG_MUTE_SOLO |
550 |
// Mute/Solo button state coloring... |
// Mute/Solo button state coloring... |
551 |
bool bMute = m_pChannel->channelMute(); |
const bool bMute = m_pChannel->channelMute(); |
552 |
const QColor& rgbButton = pal.color(QPalette::Button); |
const QColor& rgbButton = pal.color(QPalette::Button); |
553 |
const QColor& rgbButtonText = pal.color(QPalette::ButtonText); |
const QColor& rgbButtonText = pal.color(QPalette::ButtonText); |
554 |
pal.setColor(QPalette::Foreground, rgbFore); |
pal.setColor(QPalette::Foreground, rgbFore); |
556 |
pal.setColor(QPalette::ButtonText, bMute ? Qt::darkYellow : rgbButtonText); |
pal.setColor(QPalette::ButtonText, bMute ? Qt::darkYellow : rgbButtonText); |
557 |
m_ui.ChannelMutePushButton->setPalette(pal); |
m_ui.ChannelMutePushButton->setPalette(pal); |
558 |
m_ui.ChannelMutePushButton->setDown(bMute); |
m_ui.ChannelMutePushButton->setDown(bMute); |
559 |
bool bSolo = m_pChannel->channelSolo(); |
const bool bSolo = m_pChannel->channelSolo(); |
560 |
pal.setColor(QPalette::Button, bSolo ? Qt::cyan : rgbButton); |
pal.setColor(QPalette::Button, bSolo ? Qt::cyan : rgbButton); |
561 |
pal.setColor(QPalette::ButtonText, bSolo ? Qt::darkCyan : rgbButtonText); |
pal.setColor(QPalette::ButtonText, bSolo ? Qt::darkCyan : rgbButtonText); |
562 |
m_ui.ChannelSoloPushButton->setPalette(pal); |
m_ui.ChannelSoloPushButton->setPalette(pal); |
587 |
return false; |
return false; |
588 |
|
|
589 |
// Get current channel voice count. |
// Get current channel voice count. |
590 |
int iVoiceCount = ::lscp_get_channel_voice_count( |
const int iVoiceCount = ::lscp_get_channel_voice_count( |
591 |
pMainForm->client(), m_pChannel->channelID()); |
pMainForm->client(), m_pChannel->channelID()); |
592 |
// Get current stream count. |
// Get current stream count. |
593 |
int iStreamCount = ::lscp_get_channel_stream_count( |
const int iStreamCount = ::lscp_get_channel_stream_count( |
594 |
pMainForm->client(), m_pChannel->channelID()); |
pMainForm->client(), m_pChannel->channelID()); |
595 |
// Get current channel buffer fill usage. |
// Get current channel buffer fill usage. |
596 |
// As benno has suggested this is the percentage usage |
// As benno has suggested this is the percentage usage |
597 |
// of the least filled buffer stream... |
// of the least filled buffer stream... |
598 |
int iStreamUsage = ::lscp_get_channel_stream_usage( |
const int iStreamUsage = ::lscp_get_channel_stream_usage( |
599 |
pMainForm->client(), m_pChannel->channelID());; |
pMainForm->client(), m_pChannel->channelID());; |
600 |
|
|
601 |
// Update the GUI elements... |
// Update the GUI elements... |
682 |
pal.setColor(QPalette::Background, color.dark(150)); |
pal.setColor(QPalette::Background, color.dark(150)); |
683 |
pal.setColor(QPalette::Foreground, color.light(150)); |
pal.setColor(QPalette::Foreground, color.light(150)); |
684 |
} |
} |
685 |
QWidget::setPalette(pal); |
|
686 |
|
QWidget *pParentWidget = QWidget::parentWidget(); |
687 |
|
if (pParentWidget) |
688 |
|
pParentWidget->setPalette(pal); |
689 |
} |
} |
690 |
|
|
691 |
|
|