1 |
// qsamplerChannel.cpp |
// qsamplerChannel.cpp |
2 |
// |
// |
3 |
/**************************************************************************** |
/**************************************************************************** |
4 |
Copyright (C) 2004-2006, rncbc aka Rui Nuno Capela. All rights reserved. |
Copyright (C) 2004-2007, rncbc aka Rui Nuno Capela. All rights reserved. |
5 |
|
|
6 |
This program is free software; you can redistribute it and/or |
This program is free software; you can redistribute it and/or |
7 |
modify it under the terms of the GNU General Public License |
modify it under the terms of the GNU General Public License |
19 |
|
|
20 |
*****************************************************************************/ |
*****************************************************************************/ |
21 |
|
|
22 |
|
#include "qsamplerUtilities.h" |
23 |
#include "qsamplerAbout.h" |
#include "qsamplerAbout.h" |
24 |
#include "qsamplerChannel.h" |
#include "qsamplerChannel.h" |
25 |
|
|
203 |
if (m_iInstrumentStatus == 100 && m_sInstrumentFile == sInstrumentFile && m_iInstrumentNr == iInstrumentNr) |
if (m_iInstrumentStatus == 100 && m_sInstrumentFile == sInstrumentFile && m_iInstrumentNr == iInstrumentNr) |
204 |
return true; |
return true; |
205 |
|
|
206 |
if (::lscp_load_instrument_non_modal(pMainForm->client(), sInstrumentFile.latin1(), iInstrumentNr, m_iChannelID) != LSCP_OK) { |
if ( |
207 |
|
::lscp_load_instrument_non_modal( |
208 |
|
pMainForm->client(), |
209 |
|
qsamplerUtilities::lscpEscapePath(sInstrumentFile).latin1(), |
210 |
|
iInstrumentNr, m_iChannelID |
211 |
|
) != LSCP_OK |
212 |
|
) { |
213 |
appendMessagesClient("lscp_load_instrument"); |
appendMessagesClient("lscp_load_instrument"); |
214 |
return false; |
return false; |
215 |
} |
} |
587 |
|
|
588 |
#ifdef CONFIG_INSTRUMENT_NAME |
#ifdef CONFIG_INSTRUMENT_NAME |
589 |
// We got all actual instrument datum... |
// We got all actual instrument datum... |
590 |
m_sInstrumentFile = pChannelInfo->instrument_file; |
m_sInstrumentFile = |
591 |
|
qsamplerUtilities::lscpEscapedPathToPosix(pChannelInfo->instrument_file); |
592 |
m_iInstrumentNr = pChannelInfo->instrument_nr; |
m_iInstrumentNr = pChannelInfo->instrument_nr; |
593 |
m_sInstrumentName = pChannelInfo->instrument_name; |
m_sInstrumentName = |
594 |
|
qsamplerUtilities::lscpEscapedTextToRaw(pChannelInfo->instrument_name); |
595 |
#else |
#else |
596 |
// First, check if intrument name has changed, |
// First, check if intrument name has changed, |
597 |
// taking care that instrument name lookup might be expensive, |
// taking care that instrument name lookup might be expensive, |
648 |
|
|
649 |
// Set the audio routing map. |
// Set the audio routing map. |
650 |
m_audioRouting.clear(); |
m_audioRouting.clear(); |
651 |
char **ppszRouting = pChannelInfo->audio_routing; |
#ifdef CONFIG_AUDIO_ROUTING |
652 |
for (int i = 0; ppszRouting && ppszRouting[i]; i++) { |
int *piAudioRouting = pChannelInfo->audio_routing; |
653 |
m_audioRouting[i] = ::atoi(ppszRouting[i]); |
for (int i = 0; piAudioRouting && piAudioRouting[i] >= 0; i++) |
654 |
} |
m_audioRouting[i] = piAudioRouting[i]; |
655 |
|
#else |
656 |
|
char **ppszAudioRouting = pChannelInfo->audio_routing; |
657 |
|
for (int i = 0; ppszAudioRouting && ppszAudioRouting[i]; i++) |
658 |
|
m_audioRouting[i] = ::atoi(ppszAudioRouting[i]); |
659 |
|
#endif |
660 |
|
|
661 |
return true; |
return true; |
662 |
} |
} |
682 |
} |
} |
683 |
|
|
684 |
|
|
685 |
|
// Spawn instrument editor method. |
686 |
|
bool qsamplerChannel::editChannel (void) |
687 |
|
{ |
688 |
|
#ifdef CONFIG_EDIT_INSTRUMENT |
689 |
|
|
690 |
|
qsamplerMainForm *pMainForm = qsamplerMainForm::getInstance(); |
691 |
|
if (pMainForm == NULL) |
692 |
|
return false; |
693 |
|
if (pMainForm->client() == NULL || m_iChannelID < 0) |
694 |
|
return false; |
695 |
|
|
696 |
|
if (::lscp_edit_instrument(pMainForm->client(), m_iChannelID) != LSCP_OK) { |
697 |
|
appendMessagesClient("lscp_edit_instrument"); |
698 |
|
appendMessagesError(QObject::tr( |
699 |
|
"Could not launch an appropriate instrument editor " |
700 |
|
"for the given instrument!\n" |
701 |
|
"Make sure you have an appropriate " |
702 |
|
"instrument editor like 'gigedit' installed\n" |
703 |
|
"and that it placed its mandatory DLL file " |
704 |
|
"into the sampler's plugin directory.") |
705 |
|
); |
706 |
|
return false; |
707 |
|
} |
708 |
|
|
709 |
|
appendMessages(QObject::tr("edit instrument.")); |
710 |
|
|
711 |
|
return true; |
712 |
|
|
713 |
|
#else |
714 |
|
|
715 |
|
appendMessagesError(QObject::tr( |
716 |
|
"Sorry, QSampler was compiled for a version of liblscp " |
717 |
|
"which lacks this feature.\n" |
718 |
|
"You may want to update liblscp and recompile QSampler afterwards.") |
719 |
|
); |
720 |
|
|
721 |
|
return false; |
722 |
|
|
723 |
|
#endif |
724 |
|
} |
725 |
|
|
726 |
|
|
727 |
// Channel setup dialog form. |
// Channel setup dialog form. |
728 |
bool qsamplerChannel::channelSetup ( QWidget *pParent ) |
bool qsamplerChannel::channelSetup ( QWidget *pParent ) |
729 |
{ |
{ |