/[svn]/qsampler/trunk/src/qsamplerMainForm.cpp
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerMainForm.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3534 by capela, Thu Jul 25 18:22:31 2019 UTC revision 3555 by capela, Tue Aug 13 10:19:32 2019 UTC
# Line 202  protected: Line 202  protected:
202  // QSampler::MainForm -- Main window form implementation.  // QSampler::MainForm -- Main window form implementation.
203    
204  // Kind of singleton reference.  // Kind of singleton reference.
205  MainForm *MainForm::g_pMainForm = NULL;  MainForm *MainForm::g_pMainForm = nullptr;
206    
207  MainForm::MainForm ( QWidget *pParent )  MainForm::MainForm ( QWidget *pParent )
208          : QMainWindow(pParent)          : QMainWindow(pParent)
# Line 213  MainForm::MainForm ( QWidget *pParent ) Line 213  MainForm::MainForm ( QWidget *pParent )
213          g_pMainForm = this;          g_pMainForm = this;
214    
215          // Initialize some pointer references.          // Initialize some pointer references.
216          m_pOptions = NULL;          m_pOptions = nullptr;
217    
218          // All child forms are to be created later, not earlier than setup.          // All child forms are to be created later, not earlier than setup.
219          m_pMessages = NULL;          m_pMessages = nullptr;
220          m_pInstrumentListForm = NULL;          m_pInstrumentListForm = nullptr;
221          m_pDeviceForm = NULL;          m_pDeviceForm = nullptr;
222    
223          // We'll start clean.          // We'll start clean.
224          m_iUntitled   = 0;          m_iUntitled   = 0;
225          m_iDirtySetup = 0;          m_iDirtySetup = 0;
226          m_iDirtyCount = 0;          m_iDirtyCount = 0;
227    
228          m_pServer = NULL;          m_pServer = nullptr;
229          m_pClient = NULL;          m_pClient = nullptr;
230    
231          m_iStartDelay = 0;          m_iStartDelay = 0;
232          m_iTimerDelay = 0;          m_iTimerDelay = 0;
# Line 255  MainForm::MainForm ( QWidget *pParent ) Line 255  MainForm::MainForm ( QWidget *pParent )
255          sigemptyset(&sigusr1.sa_mask);          sigemptyset(&sigusr1.sa_mask);
256          sigusr1.sa_flags = 0;          sigusr1.sa_flags = 0;
257          sigusr1.sa_flags |= SA_RESTART;          sigusr1.sa_flags |= SA_RESTART;
258          ::sigaction(SIGUSR1, &sigusr1, NULL);          ::sigaction(SIGUSR1, &sigusr1, nullptr);
259    
260          // Initialize file descriptors for SIGTERM socket notifier.          // Initialize file descriptors for SIGTERM socket notifier.
261          ::socketpair(AF_UNIX, SOCK_STREAM, 0, g_fdSigterm);          ::socketpair(AF_UNIX, SOCK_STREAM, 0, g_fdSigterm);
# Line 272  MainForm::MainForm ( QWidget *pParent ) Line 272  MainForm::MainForm ( QWidget *pParent )
272          sigemptyset(&sigterm.sa_mask);          sigemptyset(&sigterm.sa_mask);
273          sigterm.sa_flags = 0;          sigterm.sa_flags = 0;
274          sigterm.sa_flags |= SA_RESTART;          sigterm.sa_flags |= SA_RESTART;
275          ::sigaction(SIGTERM, &sigterm, NULL);          ::sigaction(SIGTERM, &sigterm, nullptr);
276          ::sigaction(SIGQUIT, &sigterm, NULL);          ::sigaction(SIGQUIT, &sigterm, nullptr);
277    
278          // Ignore SIGHUP/SIGINT signals.          // Ignore SIGHUP/SIGINT signals.
279          ::signal(SIGHUP, SIG_IGN);          ::signal(SIGHUP, SIG_IGN);
# Line 281  MainForm::MainForm ( QWidget *pParent ) Line 281  MainForm::MainForm ( QWidget *pParent )
281    
282  #else   // HAVE_SIGNAL_H  #else   // HAVE_SIGNAL_H
283    
284          m_pSigusr1Notifier = NULL;          m_pSigusr1Notifier = nullptr;
285          m_pSigtermNotifier = NULL;          m_pSigtermNotifier = nullptr;
286                    
287  #endif  // !HAVE_SIGNAL_H  #endif  // !HAVE_SIGNAL_H
288    
# Line 493  MainForm::~MainForm() Line 493  MainForm::~MainForm()
493  #endif  #endif
494    
495          // Pseudo-singleton reference shut-down.          // Pseudo-singleton reference shut-down.
496          g_pMainForm = NULL;          g_pMainForm = nullptr;
497  }  }
498    
499    
# Line 630  void MainForm::closeEvent ( QCloseEvent Line 630  void MainForm::closeEvent ( QCloseEvent
630  void MainForm::dragEnterEvent ( QDragEnterEvent* pDragEnterEvent )  void MainForm::dragEnterEvent ( QDragEnterEvent* pDragEnterEvent )
631  {  {
632          // Accept external drags only...          // Accept external drags only...
633          if (pDragEnterEvent->source() == NULL          if (pDragEnterEvent->source() == nullptr
634                  && pDragEnterEvent->mimeData()->hasUrls()) {                  && pDragEnterEvent->mimeData()->hasUrls()) {
635                  pDragEnterEvent->accept();                  pDragEnterEvent->accept();
636          } else {          } else {
# Line 654  void MainForm::dropEvent ( QDropEvent *p Line 654  void MainForm::dropEvent ( QDropEvent *p
654                          if (QFileInfo(sPath).exists()) {                          if (QFileInfo(sPath).exists()) {
655                                  // Try to create a new channel from instrument file...                                  // Try to create a new channel from instrument file...
656                                  Channel *pChannel = new Channel();                                  Channel *pChannel = new Channel();
657                                  if (pChannel == NULL)                                  if (pChannel == nullptr)
658                                          return;                                          return;
659                                  // Start setting the instrument filename...                                  // Start setting the instrument filename...
660                                  pChannel->setInstrument(sPath, 0);                                  pChannel->setInstrument(sPath, 0);
# Line 864  bool MainForm::newSession (void) Line 864  bool MainForm::newSession (void)
864  // Open an existing sampler session.  // Open an existing sampler session.
865  bool MainForm::openSession (void)  bool MainForm::openSession (void)
866  {  {
867          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
868                  return false;                  return false;
869    
870          // Ask for the filename to open...          // Ask for the filename to open...
# Line 890  bool MainForm::openSession (void) Line 890  bool MainForm::openSession (void)
890  // Save current sampler session with another name.  // Save current sampler session with another name.
891  bool MainForm::saveSession ( bool bPrompt )  bool MainForm::saveSession ( bool bPrompt )
892  {  {
893          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
894                  return false;                  return false;
895    
896          QString sFilename = m_sFilename;          QString sFilename = m_sFilename;
# Line 968  bool MainForm::closeSession ( bool bForc Line 968  bool MainForm::closeSession ( bool bForc
968                          = m_pWorkspace->subWindowList();                          = m_pWorkspace->subWindowList();
969                  const int iStripCount = wlist.count();                  const int iStripCount = wlist.count();
970                  for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {                  for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
971                          ChannelStrip *pChannelStrip = NULL;                          ChannelStrip *pChannelStrip = nullptr;
972                          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
973                          if (pMdiSubWindow)                          if (pMdiSubWindow)
974                                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 993  bool MainForm::closeSession ( bool bForc Line 993  bool MainForm::closeSession ( bool bForc
993  // Load a session from specific file path.  // Load a session from specific file path.
994  bool MainForm::loadSessionFile ( const QString& sFilename )  bool MainForm::loadSessionFile ( const QString& sFilename )
995  {  {
996          if (m_pClient == NULL)          if (m_pClient == nullptr)
997                  return false;                  return false;
998    
999          // Open and read from real file.          // Open and read from real file.
# Line 1069  bool MainForm::loadSessionFile ( const Q Line 1069  bool MainForm::loadSessionFile ( const Q
1069  // Save current session to specific file path.  // Save current session to specific file path.
1070  bool MainForm::saveSessionFile ( const QString& sFilename )  bool MainForm::saveSessionFile ( const QString& sFilename )
1071  {  {
1072          if (m_pClient == NULL)          if (m_pClient == nullptr)
1073                  return false;                  return false;
1074    
1075          // Check whether server is apparently OK...          // Check whether server is apparently OK...
# Line 1259  bool MainForm::saveSessionFile ( const Q Line 1259  bool MainForm::saveSessionFile ( const Q
1259                  }                  }
1260                  ts << endl;                  ts << endl;
1261                  // Check for errors...                  // Check for errors...
1262                  if (pInstrs == NULL && ::lscp_client_get_errno(m_pClient)) {                  if (pInstrs == nullptr && ::lscp_client_get_errno(m_pClient)) {
1263                          appendMessagesClient("lscp_list_midi_instruments");                          appendMessagesClient("lscp_list_midi_instruments");
1264                          iErrors++;                          iErrors++;
1265                  }                  }
# Line 1267  bool MainForm::saveSessionFile ( const Q Line 1267  bool MainForm::saveSessionFile ( const Q
1267                  midiInstrumentMap.insert(iMidiMap, iMap);                  midiInstrumentMap.insert(iMidiMap, iMap);
1268          }          }
1269          // Check for errors...          // Check for errors...
1270          if (piMaps == NULL && ::lscp_client_get_errno(m_pClient)) {          if (piMaps == nullptr && ::lscp_client_get_errno(m_pClient)) {
1271                  appendMessagesClient("lscp_list_midi_instrument_maps");                  appendMessagesClient("lscp_list_midi_instrument_maps");
1272                  iErrors++;                  iErrors++;
1273          }          }
# Line 1279  bool MainForm::saveSessionFile ( const Q Line 1279  bool MainForm::saveSessionFile ( const Q
1279                  = m_pWorkspace->subWindowList();                  = m_pWorkspace->subWindowList();
1280          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
1281          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
1282                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
1283                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
1284                  if (pMdiSubWindow)                  if (pMdiSubWindow)
1285                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 1488  void MainForm::fileSaveAs (void) Line 1488  void MainForm::fileSaveAs (void)
1488  // Reset the sampler instance.  // Reset the sampler instance.
1489  void MainForm::fileReset (void)  void MainForm::fileReset (void)
1490  {  {
1491          if (m_pClient == NULL)          if (m_pClient == nullptr)
1492                  return;                  return;
1493    
1494          // Ask user whether he/she want's an internal sampler reset...          // Ask user whether he/she want's an internal sampler reset...
# Line 1544  void MainForm::fileReset (void) Line 1544  void MainForm::fileReset (void)
1544  // Restart the client/server instance.  // Restart the client/server instance.
1545  void MainForm::fileRestart (void)  void MainForm::fileRestart (void)
1546  {  {
1547          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
1548                  return;                  return;
1549    
1550          bool bRestart = true;          bool bRestart = true;
# Line 1612  void MainForm::editAddChannel (void) Line 1612  void MainForm::editAddChannel (void)
1612    
1613  void MainForm::addChannelStrip (void)  void MainForm::addChannelStrip (void)
1614  {  {
1615          if (m_pClient == NULL)          if (m_pClient == nullptr)
1616                  return;                  return;
1617    
1618          // Just create the channel instance...          // Just create the channel instance...
1619          Channel *pChannel = new Channel();          Channel *pChannel = new Channel();
1620          if (pChannel == NULL)          if (pChannel == nullptr)
1621                  return;                  return;
1622    
1623          // Before we show it up, may be we'll          // Before we show it up, may be we'll
# Line 1653  void MainForm::editRemoveChannel (void) Line 1653  void MainForm::editRemoveChannel (void)
1653    
1654  void MainForm::removeChannelStrip (void)  void MainForm::removeChannelStrip (void)
1655  {  {
1656          if (m_pClient == NULL)          if (m_pClient == nullptr)
1657                  return;                  return;
1658    
1659          ChannelStrip *pChannelStrip = activeChannelStrip();          ChannelStrip *pChannelStrip = activeChannelStrip();
1660          if (pChannelStrip == NULL)          if (pChannelStrip == nullptr)
1661                  return;                  return;
1662    
1663          Channel *pChannel = pChannelStrip->channel();          Channel *pChannel = pChannelStrip->channel();
1664          if (pChannel == NULL)          if (pChannel == nullptr)
1665                  return;                  return;
1666    
1667          // Prompt user if he/she's sure about this...          // Prompt user if he/she's sure about this...
# Line 1709  void MainForm::removeChannelStrip (void) Line 1709  void MainForm::removeChannelStrip (void)
1709  // Setup current sampler channel.  // Setup current sampler channel.
1710  void MainForm::editSetupChannel (void)  void MainForm::editSetupChannel (void)
1711  {  {
1712          if (m_pClient == NULL)          if (m_pClient == nullptr)
1713                  return;                  return;
1714    
1715          ChannelStrip *pChannelStrip = activeChannelStrip();          ChannelStrip *pChannelStrip = activeChannelStrip();
1716          if (pChannelStrip == NULL)          if (pChannelStrip == nullptr)
1717                  return;                  return;
1718    
1719          // Just invoque the channel strip procedure.          // Just invoque the channel strip procedure.
# Line 1724  void MainForm::editSetupChannel (void) Line 1724  void MainForm::editSetupChannel (void)
1724  // Edit current sampler channel.  // Edit current sampler channel.
1725  void MainForm::editEditChannel (void)  void MainForm::editEditChannel (void)
1726  {  {
1727          if (m_pClient == NULL)          if (m_pClient == nullptr)
1728                  return;                  return;
1729    
1730          ChannelStrip *pChannelStrip = activeChannelStrip();          ChannelStrip *pChannelStrip = activeChannelStrip();
1731          if (pChannelStrip == NULL)          if (pChannelStrip == nullptr)
1732                  return;                  return;
1733    
1734          // Just invoque the channel strip procedure.          // Just invoque the channel strip procedure.
# Line 1739  void MainForm::editEditChannel (void) Line 1739  void MainForm::editEditChannel (void)
1739  // Reset current sampler channel.  // Reset current sampler channel.
1740  void MainForm::editResetChannel (void)  void MainForm::editResetChannel (void)
1741  {  {
1742          if (m_pClient == NULL)          if (m_pClient == nullptr)
1743                  return;                  return;
1744    
1745          ChannelStrip *pChannelStrip = activeChannelStrip();          ChannelStrip *pChannelStrip = activeChannelStrip();
1746          if (pChannelStrip == NULL)          if (pChannelStrip == nullptr)
1747                  return;                  return;
1748    
1749          // Just invoque the channel strip procedure.          // Just invoque the channel strip procedure.
# Line 1754  void MainForm::editResetChannel (void) Line 1754  void MainForm::editResetChannel (void)
1754  // Reset all sampler channels.  // Reset all sampler channels.
1755  void MainForm::editResetAllChannels (void)  void MainForm::editResetAllChannels (void)
1756  {  {
1757          if (m_pClient == NULL)          if (m_pClient == nullptr)
1758                  return;                  return;
1759    
1760          // Invoque the channel strip procedure,          // Invoque the channel strip procedure,
# Line 1764  void MainForm::editResetAllChannels (voi Line 1764  void MainForm::editResetAllChannels (voi
1764                  = m_pWorkspace->subWindowList();                  = m_pWorkspace->subWindowList();
1765          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
1766          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
1767                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
1768                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
1769                  if (pMdiSubWindow)                  if (pMdiSubWindow)
1770                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 1826  void MainForm::viewMessages ( bool bOn ) Line 1826  void MainForm::viewMessages ( bool bOn )
1826  // Show/hide the MIDI instrument list-view form.  // Show/hide the MIDI instrument list-view form.
1827  void MainForm::viewInstruments (void)  void MainForm::viewInstruments (void)
1828  {  {
1829          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
1830                  return;                  return;
1831    
1832          if (m_pInstrumentListForm) {          if (m_pInstrumentListForm) {
# Line 1845  void MainForm::viewInstruments (void) Line 1845  void MainForm::viewInstruments (void)
1845  // Show/hide the device configurator form.  // Show/hide the device configurator form.
1846  void MainForm::viewDevices (void)  void MainForm::viewDevices (void)
1847  {  {
1848          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
1849                  return;                  return;
1850    
1851          if (m_pDeviceForm) {          if (m_pDeviceForm) {
# Line 1864  void MainForm::viewDevices (void) Line 1864  void MainForm::viewDevices (void)
1864  // Show options dialog.  // Show options dialog.
1865  void MainForm::viewOptions (void)  void MainForm::viewOptions (void)
1866  {  {
1867          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
1868                  return;                  return;
1869    
1870          OptionsForm* pOptionsForm = new OptionsForm(this);          OptionsForm* pOptionsForm = new OptionsForm(this);
# Line 1992  void MainForm::channelsArrange (void) Line 1992  void MainForm::channelsArrange (void)
1992  // Auto-arrange channel strips.  // Auto-arrange channel strips.
1993  void MainForm::channelsAutoArrange ( bool bOn )  void MainForm::channelsAutoArrange ( bool bOn )
1994  {  {
1995          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
1996                  return;                  return;
1997    
1998          // Toggle the auto-arrange flag.          // Toggle the auto-arrange flag.
# Line 2114  void MainForm::stabilizeForm (void) Line 2114  void MainForm::stabilizeForm (void)
2114          // Update the main menu state...          // Update the main menu state...
2115          ChannelStrip *pChannelStrip = activeChannelStrip();          ChannelStrip *pChannelStrip = activeChannelStrip();
2116          const QList<QMdiSubWindow *>& wlist = m_pWorkspace->subWindowList();          const QList<QMdiSubWindow *>& wlist = m_pWorkspace->subWindowList();
2117          const bool bHasClient = (m_pOptions != NULL && m_pClient != NULL);          const bool bHasClient = (m_pOptions != nullptr && m_pClient != nullptr);
2118          const bool bHasChannel = (bHasClient && pChannelStrip != NULL);          const bool bHasChannel = (bHasClient && pChannelStrip != nullptr);
2119          const bool bHasChannels = (bHasClient && wlist.count() > 0);          const bool bHasChannels = (bHasClient && wlist.count() > 0);
2120          m_ui.fileNewAction->setEnabled(bHasClient);          m_ui.fileNewAction->setEnabled(bHasClient);
2121          m_ui.fileOpenAction->setEnabled(bHasClient);          m_ui.fileOpenAction->setEnabled(bHasClient);
2122          m_ui.fileSaveAction->setEnabled(bHasClient && m_iDirtyCount > 0);          m_ui.fileSaveAction->setEnabled(bHasClient && m_iDirtyCount > 0);
2123          m_ui.fileSaveAsAction->setEnabled(bHasClient);          m_ui.fileSaveAsAction->setEnabled(bHasClient);
2124          m_ui.fileResetAction->setEnabled(bHasClient);          m_ui.fileResetAction->setEnabled(bHasClient);
2125          m_ui.fileRestartAction->setEnabled(bHasClient || m_pServer == NULL);          m_ui.fileRestartAction->setEnabled(bHasClient || m_pServer == nullptr);
2126          m_ui.editAddChannelAction->setEnabled(bHasClient);          m_ui.editAddChannelAction->setEnabled(bHasClient);
2127          m_ui.editRemoveChannelAction->setEnabled(bHasChannel);          m_ui.editRemoveChannelAction->setEnabled(bHasChannel);
2128          m_ui.editSetupChannelAction->setEnabled(bHasChannel);          m_ui.editSetupChannelAction->setEnabled(bHasChannel);
# Line 2271  void MainForm::updateAllChannelStrips ( Line 2271  void MainForm::updateAllChannelStrips (
2271    
2272          // Retrieve the current channel list.          // Retrieve the current channel list.
2273          int *piChannelIDs = ::lscp_list_channels(m_pClient);          int *piChannelIDs = ::lscp_list_channels(m_pClient);
2274          if (piChannelIDs == NULL) {          if (piChannelIDs == nullptr) {
2275                  if (::lscp_client_get_errno(m_pClient)) {                  if (::lscp_client_get_errno(m_pClient)) {
2276                          appendMessagesClient("lscp_list_channels");                          appendMessagesClient("lscp_list_channels");
2277                          appendMessagesError(                          appendMessagesError(
# Line 2293  void MainForm::updateAllChannelStrips ( Line 2293  void MainForm::updateAllChannelStrips (
2293                                  = m_pWorkspace->subWindowList();                                  = m_pWorkspace->subWindowList();
2294                          const int iStripCount = wlist.count();                          const int iStripCount = wlist.count();
2295                          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {                          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2296                                  ChannelStrip *pChannelStrip = NULL;                                  ChannelStrip *pChannelStrip = nullptr;
2297                                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2298                                  if (pMdiSubWindow)                                  if (pMdiSubWindow)
2299                                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2301  void MainForm::updateAllChannelStrips ( Line 2301  void MainForm::updateAllChannelStrips (
2301                                          bool bExists = false;                                          bool bExists = false;
2302                                          for (int iChannel = 0; piChannelIDs[iChannel] >= 0; ++iChannel) {                                          for (int iChannel = 0; piChannelIDs[iChannel] >= 0; ++iChannel) {
2303                                                  Channel *pChannel = pChannelStrip->channel();                                                  Channel *pChannel = pChannelStrip->channel();
2304                                                  if (pChannel == NULL)                                                  if (pChannel == nullptr)
2305                                                          break;                                                          break;
2306                                                  if (piChannelIDs[iChannel] == pChannel->channelID()) {                                                  if (piChannelIDs[iChannel] == pChannel->channelID()) {
2307                                                          // strip exists, don't touch it                                                          // strip exists, don't touch it
# Line 2324  void MainForm::updateAllChannelStrips ( Line 2324  void MainForm::updateAllChannelStrips (
2324  // Update the recent files list and menu.  // Update the recent files list and menu.
2325  void MainForm::updateRecentFiles ( const QString& sFilename )  void MainForm::updateRecentFiles ( const QString& sFilename )
2326  {  {
2327          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2328                  return;                  return;
2329    
2330          // Remove from list if already there (avoid duplicates)          // Remove from list if already there (avoid duplicates)
# Line 2339  void MainForm::updateRecentFiles ( const Line 2339  void MainForm::updateRecentFiles ( const
2339  // Update the recent files list and menu.  // Update the recent files list and menu.
2340  void MainForm::updateRecentFilesMenu (void)  void MainForm::updateRecentFilesMenu (void)
2341  {  {
2342          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2343                  return;                  return;
2344    
2345          // Time to keep the list under limits.          // Time to keep the list under limits.
# Line 2375  void MainForm::updateInstrumentNames (vo Line 2375  void MainForm::updateInstrumentNames (vo
2375          m_pWorkspace->setUpdatesEnabled(false);          m_pWorkspace->setUpdatesEnabled(false);
2376          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
2377          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2378                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
2379                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2380                  if (pMdiSubWindow)                  if (pMdiSubWindow)
2381                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2389  void MainForm::updateInstrumentNames (vo Line 2389  void MainForm::updateInstrumentNames (vo
2389  // Force update of the channels display font.  // Force update of the channels display font.
2390  void MainForm::updateDisplayFont (void)  void MainForm::updateDisplayFont (void)
2391  {  {
2392          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2393                  return;                  return;
2394    
2395          // Check if display font is legal.          // Check if display font is legal.
# Line 2410  void MainForm::updateDisplayFont (void) Line 2410  void MainForm::updateDisplayFont (void)
2410          m_pWorkspace->setUpdatesEnabled(false);          m_pWorkspace->setUpdatesEnabled(false);
2411          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
2412          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2413                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
2414                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2415                  if (pMdiSubWindow)                  if (pMdiSubWindow)
2416                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2433  void MainForm::updateDisplayEffect (void Line 2433  void MainForm::updateDisplayEffect (void
2433          m_pWorkspace->setUpdatesEnabled(false);          m_pWorkspace->setUpdatesEnabled(false);
2434          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
2435          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2436                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
2437                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2438                  if (pMdiSubWindow)                  if (pMdiSubWindow)
2439                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2447  void MainForm::updateDisplayEffect (void Line 2447  void MainForm::updateDisplayEffect (void
2447  // Force update of the channels maximum volume setting.  // Force update of the channels maximum volume setting.
2448  void MainForm::updateMaxVolume (void)  void MainForm::updateMaxVolume (void)
2449  {  {
2450          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2451                  return;                  return;
2452    
2453  #ifdef CONFIG_VOLUME  #ifdef CONFIG_VOLUME
# Line 2466  void MainForm::updateMaxVolume (void) Line 2466  void MainForm::updateMaxVolume (void)
2466          m_pWorkspace->setUpdatesEnabled(false);          m_pWorkspace->setUpdatesEnabled(false);
2467          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
2468          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2469                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
2470                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2471                  if (pMdiSubWindow)                  if (pMdiSubWindow)
2472                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2537  void MainForm::appendMessagesError( cons Line 2537  void MainForm::appendMessagesError( cons
2537  // This is a special message format, just for client results.  // This is a special message format, just for client results.
2538  void MainForm::appendMessagesClient( const QString& s )  void MainForm::appendMessagesClient( const QString& s )
2539  {  {
2540          if (m_pClient == NULL)          if (m_pClient == nullptr)
2541                  return;                  return;
2542    
2543          appendMessagesColor(s + QString(": %1 (errno=%2)")          appendMessagesColor(s + QString(": %1 (errno=%2)")
# Line 2552  void MainForm::appendMessagesClient( con Line 2552  void MainForm::appendMessagesClient( con
2552  // Force update of the messages font.  // Force update of the messages font.
2553  void MainForm::updateMessagesFont (void)  void MainForm::updateMessagesFont (void)
2554  {  {
2555          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2556                  return;                  return;
2557    
2558          if (m_pMessages && !m_pOptions->sMessagesFont.isEmpty()) {          if (m_pMessages && !m_pOptions->sMessagesFont.isEmpty()) {
# Line 2566  void MainForm::updateMessagesFont (void) Line 2566  void MainForm::updateMessagesFont (void)
2566  // Update messages window line limit.  // Update messages window line limit.
2567  void MainForm::updateMessagesLimit (void)  void MainForm::updateMessagesLimit (void)
2568  {  {
2569          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2570                  return;                  return;
2571    
2572          if (m_pMessages) {          if (m_pMessages) {
# Line 2581  void MainForm::updateMessagesLimit (void Line 2581  void MainForm::updateMessagesLimit (void
2581  // Enablement of the messages capture feature.  // Enablement of the messages capture feature.
2582  void MainForm::updateMessagesCapture (void)  void MainForm::updateMessagesCapture (void)
2583  {  {
2584          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2585                  return;                  return;
2586    
2587          if (m_pMessages)          if (m_pMessages)
# Line 2595  void MainForm::updateMessagesCapture (vo Line 2595  void MainForm::updateMessagesCapture (vo
2595  // The channel strip creation executive.  // The channel strip creation executive.
2596  ChannelStrip *MainForm::createChannelStrip ( Channel *pChannel )  ChannelStrip *MainForm::createChannelStrip ( Channel *pChannel )
2597  {  {
2598          if (m_pClient == NULL || pChannel == NULL)          if (m_pClient == nullptr || pChannel == nullptr)
2599                  return NULL;                  return nullptr;
2600    
2601          // Add a new channel itema...          // Add a new channel itema...
2602          ChannelStrip *pChannelStrip = new ChannelStrip();          ChannelStrip *pChannelStrip = new ChannelStrip();
2603          if (pChannelStrip == NULL)          if (pChannelStrip == nullptr)
2604                  return NULL;                  return nullptr;
2605    
2606          // Set some initial channel strip options...          // Set some initial channel strip options...
2607          if (m_pOptions) {          if (m_pOptions) {
# Line 2642  void MainForm::destroyChannelStrip ( Cha Line 2642  void MainForm::destroyChannelStrip ( Cha
2642  {  {
2643          QMdiSubWindow *pMdiSubWindow          QMdiSubWindow *pMdiSubWindow
2644                  = static_cast<QMdiSubWindow *> (pChannelStrip->parentWidget());                  = static_cast<QMdiSubWindow *> (pChannelStrip->parentWidget());
2645          if (pMdiSubWindow == NULL)          if (pMdiSubWindow == nullptr)
2646                  return;                  return;
2647    
2648          // Just delete the channel strip.          // Just delete the channel strip.
# Line 2661  ChannelStrip *MainForm::activeChannelStr Line 2661  ChannelStrip *MainForm::activeChannelStr
2661          if (pMdiSubWindow)          if (pMdiSubWindow)
2662                  return static_cast<ChannelStrip *> (pMdiSubWindow->widget());                  return static_cast<ChannelStrip *> (pMdiSubWindow->widget());
2663          else          else
2664                  return NULL;                  return nullptr;
2665  }  }
2666    
2667    
2668  // Retrieve a channel strip by index.  // Retrieve a channel strip by index.
2669  ChannelStrip *MainForm::channelStripAt ( int iStrip )  ChannelStrip *MainForm::channelStripAt ( int iStrip )
2670  {  {
2671          if (!m_pWorkspace) return NULL;          if (!m_pWorkspace) return nullptr;
2672    
2673          const QList<QMdiSubWindow *>& wlist          const QList<QMdiSubWindow *>& wlist
2674                  = m_pWorkspace->subWindowList();                  = m_pWorkspace->subWindowList();
2675          if (wlist.isEmpty())          if (wlist.isEmpty())
2676                  return NULL;                  return nullptr;
2677    
2678          if (iStrip < 0 || iStrip >= wlist.count())          if (iStrip < 0 || iStrip >= wlist.count())
2679                  return NULL;                  return nullptr;
2680    
2681          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2682          if (pMdiSubWindow)          if (pMdiSubWindow)
2683                  return static_cast<ChannelStrip *> (pMdiSubWindow->widget());                  return static_cast<ChannelStrip *> (pMdiSubWindow->widget());
2684          else          else
2685                  return NULL;                  return nullptr;
2686  }  }
2687    
2688    
# Line 2692  ChannelStrip *MainForm::channelStrip ( i Line 2692  ChannelStrip *MainForm::channelStrip ( i
2692          const QList<QMdiSubWindow *>& wlist          const QList<QMdiSubWindow *>& wlist
2693                  = m_pWorkspace->subWindowList();                  = m_pWorkspace->subWindowList();
2694          if (wlist.isEmpty())          if (wlist.isEmpty())
2695                  return NULL;                  return nullptr;
2696    
2697          const int iStripCount = wlist.count();          const int iStripCount = wlist.count();
2698          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {          for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2699                  ChannelStrip *pChannelStrip = NULL;                  ChannelStrip *pChannelStrip = nullptr;
2700                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                  QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2701                  if (pMdiSubWindow)                  if (pMdiSubWindow)
2702                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                          pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2708  ChannelStrip *MainForm::channelStrip ( i Line 2708  ChannelStrip *MainForm::channelStrip ( i
2708          }          }
2709    
2710          // Not found.          // Not found.
2711          return NULL;          return nullptr;
2712  }  }
2713    
2714    
# Line 2725  void MainForm::channelsMenuAboutToShow ( Line 2725  void MainForm::channelsMenuAboutToShow (
2725                  m_ui.channelsMenu->addSeparator();                  m_ui.channelsMenu->addSeparator();
2726                  const int iStripCount = wlist.count();                  const int iStripCount = wlist.count();
2727                  for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {                  for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2728                          ChannelStrip *pChannelStrip = NULL;                          ChannelStrip *pChannelStrip = nullptr;
2729                          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2730                          if (pMdiSubWindow)                          if (pMdiSubWindow)
2731                                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2747  void MainForm::channelsMenuActivated (vo Line 2747  void MainForm::channelsMenuActivated (vo
2747  {  {
2748          // Retrive channel index from action data...          // Retrive channel index from action data...
2749          QAction *pAction = qobject_cast<QAction *> (sender());          QAction *pAction = qobject_cast<QAction *> (sender());
2750          if (pAction == NULL)          if (pAction == nullptr)
2751                  return;                  return;
2752    
2753          ChannelStrip *pChannelStrip = channelStripAt(pAction->data().toInt());          ChannelStrip *pChannelStrip = channelStripAt(pAction->data().toInt());
# Line 2778  void MainForm::stopSchedule (void) Line 2778  void MainForm::stopSchedule (void)
2778  // Timer slot funtion.  // Timer slot funtion.
2779  void MainForm::timerSlot (void)  void MainForm::timerSlot (void)
2780  {  {
2781          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2782                  return;                  return;
2783    
2784          // Is it the first shot on server start after a few delay?          // Is it the first shot on server start after a few delay?
# Line 2815  void MainForm::timerSlot (void) Line 2815  void MainForm::timerSlot (void)
2815                                          = m_pWorkspace->subWindowList();                                          = m_pWorkspace->subWindowList();
2816                                  const int iStripCount = wlist.count();                                  const int iStripCount = wlist.count();
2817                                  for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {                                  for (int iStrip = 0; iStrip < iStripCount; ++iStrip) {
2818                                          ChannelStrip *pChannelStrip = NULL;                                          ChannelStrip *pChannelStrip = nullptr;
2819                                          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);                                          QMdiSubWindow *pMdiSubWindow = wlist.at(iStrip);
2820                                          if (pMdiSubWindow)                                          if (pMdiSubWindow)
2821                                                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                                                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
# Line 2837  void MainForm::timerSlot (void) Line 2837  void MainForm::timerSlot (void)
2837  // Start linuxsampler server...  // Start linuxsampler server...
2838  void MainForm::startServer (void)  void MainForm::startServer (void)
2839  {  {
2840          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
2841                  return;                  return;
2842    
2843          // Aren't already a client, are we?          // Aren't already a client, are we?
# Line 2992  void MainForm::processServerExit (void) Line 2992  void MainForm::processServerExit (void)
2992                          tr("Server was stopped with exit status %1.")                          tr("Server was stopped with exit status %1.")
2993                          .arg(m_pServer->exitStatus()));                          .arg(m_pServer->exitStatus()));
2994                  delete m_pServer;                  delete m_pServer;
2995                  m_pServer = NULL;                  m_pServer = nullptr;
2996          }          }
2997    
2998          // Again, make status visible stable.          // Again, make status visible stable.
# Line 3008  lscp_status_t qsampler_client_callback ( Line 3008  lscp_status_t qsampler_client_callback (
3008          lscp_event_t event, const char *pchData, int cchData, void *pvData )          lscp_event_t event, const char *pchData, int cchData, void *pvData )
3009  {  {
3010          MainForm* pMainForm = (MainForm *) pvData;          MainForm* pMainForm = (MainForm *) pvData;
3011          if (pMainForm == NULL)          if (pMainForm == nullptr)
3012                  return LSCP_FAILED;                  return LSCP_FAILED;
3013    
3014          // ATTN: DO NOT EVER call any GUI code here,          // ATTN: DO NOT EVER call any GUI code here,
# Line 3025  lscp_status_t qsampler_client_callback ( Line 3025  lscp_status_t qsampler_client_callback (
3025  bool MainForm::startClient (void)  bool MainForm::startClient (void)
3026  {  {
3027          // Have it a setup?          // Have it a setup?
3028          if (m_pOptions == NULL)          if (m_pOptions == nullptr)
3029                  return false;                  return false;
3030    
3031          // Aren't we already started, are we?          // Aren't we already started, are we?
# Line 3039  bool MainForm::startClient (void) Line 3039  bool MainForm::startClient (void)
3039          m_pClient = ::lscp_client_create(          m_pClient = ::lscp_client_create(
3040                  m_pOptions->sServerHost.toUtf8().constData(),                  m_pOptions->sServerHost.toUtf8().constData(),
3041                  m_pOptions->iServerPort, qsampler_client_callback, this);                  m_pOptions->iServerPort, qsampler_client_callback, this);
3042          if (m_pClient == NULL) {          if (m_pClient == nullptr) {
3043                  // Is this the first try?                  // Is this the first try?
3044                  // maybe we need to start a local server...                  // maybe we need to start a local server...
3045                  if ((m_pServer && m_pServer->state() == QProcess::Running)                  if ((m_pServer && m_pServer->state() == QProcess::Running)
# Line 3125  bool MainForm::startClient (void) Line 3125  bool MainForm::startClient (void)
3125  // Stop client...  // Stop client...
3126  void MainForm::stopClient (void)  void MainForm::stopClient (void)
3127  {  {
3128          if (m_pClient == NULL)          if (m_pClient == nullptr)
3129                  return;                  return;
3130    
3131          // Log prepare here.          // Log prepare here.
# Line 3157  void MainForm::stopClient (void) Line 3157  void MainForm::stopClient (void)
3157          ::lscp_client_unsubscribe(m_pClient, LSCP_EVENT_CHANNEL_INFO);          ::lscp_client_unsubscribe(m_pClient, LSCP_EVENT_CHANNEL_INFO);
3158          ::lscp_client_unsubscribe(m_pClient, LSCP_EVENT_CHANNEL_COUNT);          ::lscp_client_unsubscribe(m_pClient, LSCP_EVENT_CHANNEL_COUNT);
3159          ::lscp_client_destroy(m_pClient);          ::lscp_client_destroy(m_pClient);
3160          m_pClient = NULL;          m_pClient = nullptr;
3161    
3162          // Hard-notify instrumnet and device configuration forms,          // Hard-notify instrumnet and device configuration forms,
3163          // if visible, that we're running out...          // if visible, that we're running out...
# Line 3177  void MainForm::stopClient (void) Line 3177  void MainForm::stopClient (void)
3177  // Channel strip activation/selection.  // Channel strip activation/selection.
3178  void MainForm::activateStrip ( QMdiSubWindow *pMdiSubWindow )  void MainForm::activateStrip ( QMdiSubWindow *pMdiSubWindow )
3179  {  {
3180          ChannelStrip *pChannelStrip = NULL;          ChannelStrip *pChannelStrip = nullptr;
3181          if (pMdiSubWindow)          if (pMdiSubWindow)
3182                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());                  pChannelStrip = static_cast<ChannelStrip *> (pMdiSubWindow->widget());
3183          if (pChannelStrip)          if (pChannelStrip)

Legend:
Removed from v.3534  
changed lines
  Added in v.3555

  ViewVC Help
Powered by ViewVC