/[svn]/linuxsampler/trunk/src/engines/gig/InstrumentScriptVMFunctions.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/gig/InstrumentScriptVMFunctions.cpp

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

revision 2610 by schoenebeck, Sat Jun 7 00:16:03 2014 UTC revision 2611 by schoenebeck, Mon Jun 9 19:20:37 2014 UTC
# Line 31  namespace LinuxSampler { namespace gig { Line 31  namespace LinuxSampler { namespace gig {
31              wrnMsg("gig_set_dim_zone(): argument 1 may not be a negative event ID");              wrnMsg("gig_set_dim_zone(): argument 1 may not be a negative event ID");
32              return successResult();              return successResult();
33          }          }
34            
         int note = m_vm->m_event->cause.Param.Note.Key;  
   
35          EngineChannel* pEngineChannel =          EngineChannel* pEngineChannel =
36              static_cast<EngineChannel*>(m_vm->m_event->cause.pEngineChannel);              static_cast<EngineChannel*>(m_vm->m_event->cause.pEngineChannel);
37    
38            RTList<Event>::Iterator itEvent = pEngineChannel->pEngine->EventByID(id);
39            if (!itEvent) {
40                dmsg(2,("gig_set_dim_zone(): no active event with ID %d\n", id));
41                return successResult();
42            }
43    
44            int note = itEvent->Param.Note.Key;
45    
46          ::gig::Region* pRegion = pEngineChannel->pInstrument->GetRegion(note);          ::gig::Region* pRegion = pEngineChannel->pInstrument->GetRegion(note);
47          if (!pRegion) return successResult();          if (!pRegion) {
48                dmsg(2,("gig_set_dim_zone(): no region for key %d\n", note));
49                return successResult();
50            }
51    
52          int idx = -1, baseBits = 0;          int idx = -1, baseBits = 0;
53          for (int i = 0; i < pRegion->Dimensions; ++i) {          for (int i = 0; i < pRegion->Dimensions; ++i) {
# Line 48  namespace LinuxSampler { namespace gig { Line 57  namespace LinuxSampler { namespace gig {
57              }              }
58              baseBits += pRegion->pDimensionDefinitions[i].bits;              baseBits += pRegion->pDimensionDefinitions[i].bits;
59          }          }
60          if (idx < 0) return successResult(); // no such dimension found          if (idx < 0) {
61                dmsg(2,("gig_set_dim_zone(): no such gig dimension %d\n", dim));
62          RTList<Event>::Iterator itEvent = pEngineChannel->pEngine->EventByID(id);              return successResult(); // no such dimension found
63          if (!itEvent) return successResult();          }
64    
65          int bits = pRegion->pDimensionDefinitions[idx].bits;          int bits = pRegion->pDimensionDefinitions[idx].bits;
66          int mask = 0;          int mask = 0;
# Line 60  namespace LinuxSampler { namespace gig { Line 69  namespace LinuxSampler { namespace gig {
69          itEvent->Format.Gig.DimMask |= mask;          itEvent->Format.Gig.DimMask |= mask;
70          itEvent->Format.Gig.DimBits |= (zone << baseBits) & mask;          itEvent->Format.Gig.DimBits |= (zone << baseBits) & mask;
71    
72            dmsg(3,("gig_set_dim_zone(): success, mask=%d bits=%d\n", itEvent->Format.Gig.DimMask, itEvent->Format.Gig.DimBits));
73    
74          return successResult();          return successResult();
75      }      }
76    

Legend:
Removed from v.2610  
changed lines
  Added in v.2611

  ViewVC Help
Powered by ViewVC