public List<VoiceParm> GetParmsOfKindOrDefault(VoiceParmKind kind, bool reconfigure)
 {
     List<VoiceParm> parms = GetParmsOfKind(kind);
     List<VoiceParm> defaultOfKind = defaultVoiceParms.GetParmsOfKind(kind);
     if (parms == null) {
         if (reconfigure)
             return new List<VoiceParm>();
         else
             return new List<VoiceParm>(defaultOfKind);
     }
     List<VoiceParm> returnedParms = new List<VoiceParm>();
     foreach (VoiceParm defParm in defaultOfKind) {
         VoiceParm parm = GetNamedParm(defParm.name);
         if (parm != null) {
     //                     log.InfoFormat("VoiceParmSet.GetParmsOfKindOrDefault: defParm.name {0} parm.name {1} parm.value {2}, parm.ret.lValue {3}",
     //                             defParm.name, parm.name, parm.value, parm.ret.lValue);
             returnedParms.Add(parm);
         }
         else if (!reconfigure)
             returnedParms.Add(defParm);
     }
     return returnedParms;
 }
 public List<VoiceParm> GetParmsOfKind(VoiceParmKind kind)
 {
     Dictionary<int, VoiceParm> parms;
     if (voiceKindParms.TryGetValue(kind, out parms))
         return new List<VoiceParm>(parms.Values);
     else
         return null;
 }
 public void Add(VoiceParmKind kind, string name, string description, ValueKind valueKind, Object value, int index, bool common, float min, float max)
 {
     VoiceParm newParm = new VoiceParm(kind, name, description, valueKind, value, index, common, min, max);
     Add(newParm);
 }
 public void Add(VoiceParmKind kind, string name, string description, ValueKind valueKind, Object value, int index, bool common)
 {
     switch (valueKind) {
     case ValueKind.Int:
         Add(kind, name, description, valueKind, value, index, common, Int32.MinValue, Int32.MaxValue);
         break;
     case ValueKind.Float:
         Add(kind, name, description, valueKind, value, index, common, Single.MinValue, Single.MaxValue);
         break;
     default:
         Add(kind, name, description, valueKind, value, index, common, 0, 0);
         break;
     }
 }
 public VoiceParm(VoiceParm other)
 {
     this.kind = other.kind;
     this.name = other.name;
     this.description = other.description;
     this.valueKind = other.valueKind;
     this.value = other.value;
     this.imin = other.imin;
     this.imax = other.imax;
     this.fmin = other.fmin;
     this.fmax = other.fmax;
     this.ctlIndex = other.ctlIndex;
     this.ret = other.ret;
 }
 public VoiceParm(VoiceParmKind kind, string name, string description, ValueKind valueKind, Object value, int index, bool common, float min, float max)
 {
     this.kind = kind;
     this.name = name;
     this.description = description;
     this.valueKind = valueKind;
     this.value = value;
     this.common = common;
     this.fmin = min;
     this.fmax = max;
     this.ctlIndex = index;
 }