bool _af_pv_getptr (AUpvlist pvlist, int param, void **v) { int i; for (i=0; i<AUpvgetmaxitems(pvlist); i++) { int p, t; AUpvgetparam(pvlist, i, &p); if (p != param) continue; AUpvgetvaltype(pvlist, i, &t); /* Ensure that this parameter is of type AU_PVTYPE_PTR. */ if (t != AU_PVTYPE_PTR) return false; AUpvgetval(pvlist, i, v); return true; } return false; }
bool _af_pv_getdouble (AUpvlist pvlist, int param, double *d) { int i; for (i=0; i<AUpvgetmaxitems(pvlist); i++) { int p, t; AUpvgetparam(pvlist, i, &p); if (p != param) continue; AUpvgetvaltype(pvlist, i, &t); /* Ensure that this parameter is of type AU_PVTYPE_DOUBLE. */ if (t != AU_PVTYPE_DOUBLE) return false; AUpvgetval(pvlist, i, d); return true; } return false; }
bool _af_pv_getlong (AUpvlist pvlist, int param, long *l) { int i; for (i=0; i<AUpvgetmaxitems(pvlist); i++) { int p, t; AUpvgetparam(pvlist, i, &p); if (p != param) continue; AUpvgetvaltype(pvlist, i, &t); /* Ensure that this parameter is of type AU_PVTYPE_LONG. */ if (t != AU_PVTYPE_LONG) return false; AUpvgetval(pvlist, i, l); return true; } return false; }
void *afQueryPointer (int querytype, int arg1, int arg2, int arg3, int arg4) { AUpvlist list; int type; void *value; list = afQuery(querytype, arg1, arg2, arg3, arg4); if (list == AU_NULL_PVLIST) return NULL; AUpvgetvaltype(list, 0, &type); if (type != AU_PVTYPE_PTR) return NULL; AUpvgetval(list, 0, &value); AUpvfree(list); return value; }
double afQueryDouble (int querytype, int arg1, int arg2, int arg3, int arg4) { AUpvlist list; int type; double value; list = afQuery(querytype, arg1, arg2, arg3, arg4); if (list == AU_NULL_PVLIST) return -1; AUpvgetvaltype(list, 0, &type); if (type != AU_PVTYPE_DOUBLE) return -1; AUpvgetval(list, 0, &value); AUpvfree(list); return value; }
long afQueryLong (int querytype, int arg1, int arg2, int arg3, int arg4) { AUpvlist list; int type; long value; list = afQuery(querytype, arg1, arg2, arg3, arg4); if (list == AU_NULL_PVLIST) return -1; AUpvgetvaltype(list, 0, &type); if (type != AU_PVTYPE_LONG) return -1; AUpvgetval(list, 0, &value); AUpvfree(list); return value; }
bool _af_aiff_instparam_valid (AFfilehandle filehandle, AUpvlist list, int i) { int param, type, lval; AUpvgetparam(list, i, ¶m); AUpvgetvaltype(list, i, &type); if (type != AU_PVTYPE_LONG) return AF_FALSE; AUpvgetval(list, i, &lval); switch (param) { case AF_INST_MIDI_BASENOTE: return ((lval >= 0) && (lval <= 127)); case AF_INST_NUMCENTS_DETUNE: return ((lval >= -50) && (lval <= 50)); case AF_INST_MIDI_LOVELOCITY: return ((lval >= 1) && (lval <= 127)); case AF_INST_MIDI_HIVELOCITY: return ((lval >= 1) && (lval <= 127)); case AF_INST_MIDI_LONOTE: return ((lval >= 0) && (lval <= 127)); case AF_INST_MIDI_HINOTE: return ((lval >= 0) && (lval <= 127)); case AF_INST_NUMDBS_GAIN: case AF_INST_SUSLOOPID: case AF_INST_RELLOOPID: return AF_TRUE; default: return AF_FALSE; break; } return AF_TRUE; }
bool WAVEFile::isInstrumentParameterValid(AUpvlist list, int i) { int param, type, lval; AUpvgetparam(list, i, ¶m); AUpvgetvaltype(list, i, &type); if (type != AU_PVTYPE_LONG) return false; AUpvgetval(list, i, &lval); switch (param) { case AF_INST_MIDI_BASENOTE: return ((lval >= 0) && (lval <= 127)); case AF_INST_NUMCENTS_DETUNE: return ((lval >= -50) && (lval <= 50)); case AF_INST_MIDI_LOVELOCITY: return ((lval >= 1) && (lval <= 127)); case AF_INST_MIDI_HIVELOCITY: return ((lval >= 1) && (lval <= 127)); case AF_INST_MIDI_LONOTE: return ((lval >= 0) && (lval <= 127)); case AF_INST_MIDI_HINOTE: return ((lval >= 0) && (lval <= 127)); case AF_INST_NUMDBS_GAIN: return true; default: return false; } return true; }