/[svn]/linuxsampler/trunk/src/engines/EngineBase.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/EngineBase.h

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

revision 2645 by schoenebeck, Wed Jun 18 00:14:57 2014 UTC revision 2837 by persson, Sun Aug 23 06:14:00 2015 UTC
# Line 4  Line 4 
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck    *   *   Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck    *
6   *   Copyright (C) 2005-2008 Christian Schoenebeck                         *   *   Copyright (C) 2005-2008 Christian Schoenebeck                         *
7   *   Copyright (C) 2009-2013 Christian Schoenebeck and Grigor Iliev        *   *   Copyright (C) 2009-2015 Christian Schoenebeck and Grigor Iliev        *
8   *                                                                         *   *                                                                         *
9   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
10   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
# Line 432  namespace LinuxSampler { Line 432  namespace LinuxSampler {
432               * @param pRegion - region the engine shall stop using               * @param pRegion - region the engine shall stop using
433               */               */
434              virtual void Suspend(RR* pRegion) {              virtual void Suspend(RR* pRegion) {
435                  dmsg(2,("EngineBase: Suspending Region %x ...\n",pRegion));                  dmsg(2,("EngineBase: Suspending Region %p ...\n",(void*)pRegion));
436                  {                  {
437                      LockGuard lock(SuspendedRegionsMutex);                      LockGuard lock(SuspendedRegionsMutex);
438                      SuspensionChangeOngoing.Set(true);                      SuspensionChangeOngoing.Set(true);
439                      pPendingRegionSuspension = pRegion;                      pPendingRegionSuspension = pRegion;
440                      SuspensionChangeOngoing.WaitAndUnlockIf(true);                      SuspensionChangeOngoing.WaitAndUnlockIf(true);
441                  }                  }
442                  dmsg(2,("EngineBase: Region %x suspended.",pRegion));                  dmsg(2,("EngineBase: Region %p suspended.",(void*)pRegion));
443              }              }
444    
445              /**              /**
# Line 449  namespace LinuxSampler { Line 449  namespace LinuxSampler {
449               * @param pRegion - region the engine shall be allowed to use again               * @param pRegion - region the engine shall be allowed to use again
450               */               */
451              virtual void Resume(RR* pRegion) {              virtual void Resume(RR* pRegion) {
452                  dmsg(2,("EngineBase: Resuming Region %x ...\n",pRegion));                  dmsg(2,("EngineBase: Resuming Region %p ...\n",(void*)pRegion));
453                  {                  {
454                      LockGuard lock(SuspendedRegionsMutex);                      LockGuard lock(SuspendedRegionsMutex);
455                      SuspensionChangeOngoing.Set(true);                      SuspensionChangeOngoing.Set(true);
456                      pPendingRegionResumption = pRegion;                      pPendingRegionResumption = pRegion;
457                      SuspensionChangeOngoing.WaitAndUnlockIf(true);                      SuspensionChangeOngoing.WaitAndUnlockIf(true);
458                  }                  }
459                  dmsg(2,("EngineBase: Region %x resumed.\n",pRegion));                  dmsg(2,("EngineBase: Region %p resumed.\n",(void*)pRegion));
460              }              }
461    
462              virtual void ResetSuspendedRegions() {              virtual void ResetSuspendedRegions() {
# Line 634  namespace LinuxSampler { Line 634  namespace LinuxSampler {
634                  // if a valid real-time instrument script is loaded, pre-process                  // if a valid real-time instrument script is loaded, pre-process
635                  // the event list by running the script now, since the script                  // the event list by running the script now, since the script
636                  // might filter events or add new ones for this cycle                  // might filter events or add new ones for this cycle
637                  if (pChannel->pScript && pChannel->pScript->bHasValidScript) {                  if (pChannel->pScript) {
638                      // resume any suspended script executions still hanging                      // resume any suspended script executions still hanging
639                      // around of previous audio fragment cycles                      // around of previous audio fragment cycles
640                      for (RTList<ScriptEvent>::Iterator itEvent = pChannel->pScript->pEvents->first(),                      for (RTList<ScriptEvent>::Iterator itEvent = pChannel->pScript->pEvents->first(),
# Line 978  namespace LinuxSampler { Line 978  namespace LinuxSampler {
978                          dmsg(5,("Engine: instrument change command received\n"));                          dmsg(5,("Engine: instrument change command received\n"));
979                          cmd.bChangeInstrument = false;                          cmd.bChangeInstrument = false;
980                          pEngineChannel->pInstrument = cmd.pInstrument;                          pEngineChannel->pInstrument = cmd.pInstrument;
981                          pEngineChannel->pScript = cmd.pScript;                          pEngineChannel->pScript =
982                                cmd.pScript->bHasValidScript ? cmd.pScript : NULL;
983                          instrumentChanged = true;                          instrumentChanged = true;
984    
985                          pEngineChannel->MarkAllActiveVoicesAsOrphans();                          pEngineChannel->MarkAllActiveVoicesAsOrphans();
# Line 1154  namespace LinuxSampler { Line 1155  namespace LinuxSampler {
1155                                  case 0x1d: { // reverb send of note (Roland GS NRPN)                                  case 0x1d: { // reverb send of note (Roland GS NRPN)
1156                                      const uint note = NrpnCtrlLSB;                                      const uint note = NrpnCtrlLSB;
1157                                      const float reverb = float(itControlChangeEvent->Param.CC.Value) / 127.0f;                                      const float reverb = float(itControlChangeEvent->Param.CC.Value) / 127.0f;
1158                                      dmsg(4,("Note Reverb Send NRPN received (note=%d,send=%d).\n", note, reverb));                                      dmsg(4,("Note Reverb Send NRPN received (note=%d,send=%f).\n", note, reverb));
1159                                      if (note < 128)                                      if (note < 128)
1160                                          pChannel->pMIDIKeyInfo[note].ReverbSend = reverb;                                          pChannel->pMIDIKeyInfo[note].ReverbSend = reverb;
1161                                      break;                                      break;
# Line 1162  namespace LinuxSampler { Line 1163  namespace LinuxSampler {
1163                                  case 0x1e: { // chorus send of note (Roland GS NRPN)                                  case 0x1e: { // chorus send of note (Roland GS NRPN)
1164                                      const uint note = NrpnCtrlLSB;                                      const uint note = NrpnCtrlLSB;
1165                                      const float chorus = float(itControlChangeEvent->Param.CC.Value) / 127.0f;                                      const float chorus = float(itControlChangeEvent->Param.CC.Value) / 127.0f;
1166                                      dmsg(4,("Note Chorus Send NRPN received (note=%d,send=%d).\n", note, chorus));                                      dmsg(4,("Note Chorus Send NRPN received (note=%d,send=%f).\n", note, chorus));
1167                                      if (note < 128)                                      if (note < 128)
1168                                          pChannel->pMIDIKeyInfo[note].ChorusSend = chorus;                                          pChannel->pMIDIKeyInfo[note].ChorusSend = chorus;
1169                                      break;                                      break;

Legend:
Removed from v.2645  
changed lines
  Added in v.2837

  ViewVC Help
Powered by ViewVC