/[svn]/linuxsampler/trunk/src/scriptvm/tree.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/scriptvm/tree.cpp

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

revision 2588 by schoenebeck, Sun Jun 1 14:44:38 2014 UTC revision 2594 by schoenebeck, Thu Jun 5 00:16:25 2014 UTC
# Line 345  void ConstIntVariable::dump(int level) { Line 345  void ConstIntVariable::dump(int level) {
345      printf("ConstIntVariable val=%d\n", value);      printf("ConstIntVariable val=%d\n", value);
346  }  }
347    
348    BuiltInIntVariable::BuiltInIntVariable(const String& name, VMIntRelPtr* ptr)
349        : IntVariable(NULL,false,false), name(name), ptr(ptr)
350    {
351    }
352    
353    void BuiltInIntVariable::assign(Expression* expr) {
354        IntExpr* valueExpr = dynamic_cast<IntExpr*>(expr);
355        if (!valueExpr) return;
356        ptr->assign(valueExpr->evalInt());
357    }
358    
359    int BuiltInIntVariable::evalInt() {
360        return ptr->evalInt();
361    }
362    
363    void BuiltInIntVariable::dump(int level) {
364        printIndents(level);
365        printf("Built-in IntVar '%s'\n", name.c_str());
366    }
367    
368  PolyphonicIntVariable::PolyphonicIntVariable(ParserContext* ctx)  PolyphonicIntVariable::PolyphonicIntVariable(ParserContext* ctx)
369      : IntVariable(ctx,true,false)      : IntVariable(ctx,true,false)
370  {  {
# Line 372  IntArrayVariable::IntArrayVariable(Parse Line 392  IntArrayVariable::IntArrayVariable(Parse
392      }      }
393  }  }
394    
395    IntArrayVariable::IntArrayVariable(ParserContext* ctx, bool bConst)
396        : Variable(ctx, 0, bConst)
397    {
398    }
399    
400  int IntArrayVariable::evalIntElement(uint i) {  int IntArrayVariable::evalIntElement(uint i) {
401      if (i >= values.size()) return 0;      if (i >= values.size()) return 0;
402      return values[i];      return values[i];
# Line 396  void IntArrayVariable::dump(int level) { Line 421  void IntArrayVariable::dump(int level) {
421      printf(")\n");      printf(")\n");
422  }  }
423    
424    BuiltInIntArrayVariable::BuiltInIntArrayVariable(const String& name, VMInt8Array* array)
425        : IntArrayVariable(NULL, false), name(name), array(array)
426    {
427    }
428    
429    int BuiltInIntArrayVariable::evalIntElement(uint i) {
430        return i >= array->size ? 0 : array->data[i];
431    }
432    
433    void BuiltInIntArrayVariable::assignIntElement(uint i, int value) {
434        if (i >= array->size) return;
435        array->data[i] = value;
436    }
437    
438    void BuiltInIntArrayVariable::dump(int level) {
439        printIndents(level);
440        printf("Built-In Int Array Variable '%s'\n", name.c_str());
441    }
442    
443  IntArrayElement::IntArrayElement(IntArrayVariableRef array, IntExprRef arrayIndex)  IntArrayElement::IntArrayElement(IntArrayVariableRef array, IntExprRef arrayIndex)
444      : IntVariable(NULL, false, false, 0), array(array), index(arrayIndex)      : IntVariable(NULL, false, false, 0), array(array), index(arrayIndex)
445  {      {    
# Line 801  VMEventHandler* ParserContext::eventHand Line 845  VMEventHandler* ParserContext::eventHand
845      return handlers->eventHandlerByName(name);      return handlers->eventHandlerByName(name);
846  }  }
847    
848    void ParserContext::registerBuiltInConstIntVariables(const std::map<String,int>& vars) {
849        for (std::map<String,int>::const_iterator it = vars.begin();
850             it != vars.end(); ++it)
851        {
852            ConstIntVariableRef ref = new ConstIntVariable(it->second);
853            vartable[it->first] = ref;
854        }
855    }
856    
857    void ParserContext::registerBuiltInIntVariables(const std::map<String,VMIntRelPtr*>& vars) {
858        for (std::map<String,VMIntRelPtr*>::const_iterator it = vars.begin();
859             it != vars.end(); ++it)
860        {
861            BuiltInIntVariableRef ref = new BuiltInIntVariable(it->first, it->second);
862            vartable[it->first] = ref;
863        }
864    }
865    
866    void ParserContext::registerBuiltInIntArrayVariables(const std::map<String,VMInt8Array*>& vars) {
867        for (std::map<String,VMInt8Array*>::const_iterator it = vars.begin();
868             it != vars.end(); ++it)
869        {
870            BuiltInIntArrayVariableRef ref = new BuiltInIntArrayVariable(it->first, it->second);
871            vartable[it->first] = ref;
872        }
873    }
874    
875  } // namespace LinuxSampler  } // namespace LinuxSampler

Legend:
Removed from v.2588  
changed lines
  Added in v.2594

  ViewVC Help
Powered by ViewVC