/*==================================================================== * synsetpitch.c * * Copyright 1995, Silicon Graphics, Inc. * All Rights Reserved. * * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, * Inc.; the contents of this file may not be disclosed to third * parties, copied or duplicated in any form, in whole or in part, * without the prior written permission of Silicon Graphics, Inc. * * RESTRICTED RIGHTS LEGEND: * Use, duplication or disclosure by the Government is subject to * restrictions as set forth in subdivision (c)(1)(ii) of the Rights * in Technical Data and Computer Software clause at DFARS * 252.227-7013, and/or in similar or successor clauses in the FAR, * DOD or NASA FAR Supplement. Unpublished - rights reserved under the * Copyright Laws of the United States. *====================================================================*/ #include "synthInternals.h" #include #include void alSynSetPitch(ALSynth *synth, ALVoice *v, f32 pitch) { ALParam *update; ALFilter *f; if (v->pvoice) { /* * get new update struct from the free list */ update = __allocParam(); ALFailIf(update == 0, ERR_ALSYN_NO_UPDATE); /* * set offset and pitch data */ update->delta = synth->paramSamples + v->pvoice->offset; update->type = AL_FILTER_SET_PITCH; update->data.f = pitch; update->next = 0; f = v->pvoice->channelKnob; (*f->setParam)(f, AL_FILTER_ADD_UPDATE, update); } }