primitiveSum(void)
{
	// FloatArrayPlugin>>#primitiveSum
    sqInt i;
    sqInt length;
    sqInt rcvr;
    float *rcvrPtr;
    double  sum;

	rcvr = stackObjectValue(0);
	if (failed()) {
		return null;
	}
	success(isWords(rcvr));
	if (failed()) {
		return null;
	}
	length = stSizeOf(rcvr);
	rcvrPtr = ((float *) (firstIndexableField(rcvr)));
	sum = 0.0;
	for (i = 0; i <= (length - 1); i += 1) {
		sum += ((double) (rcvrPtr[i]));
	}
	popthenPush(1, floatObjectOf(sum));
}
primitiveLength(void)
{
	// FloatArrayPlugin>>#primitiveLength
    sqInt i;
    sqInt length;
    sqInt rcvr;
    float *rcvrPtr;
    double  result;

	rcvr = stackObjectValue(0);
	if (failed()) {
		return null;
	}
	success(isWords(rcvr));
	if (failed()) {
		return null;
	}
	length = stSizeOf(rcvr);
	success(1);
	rcvrPtr = ((float *) (firstIndexableField(rcvr)));
	result = 0.0;
	for (i = 0; i <= (length - 1); i += 1) {
		result += (((double) (rcvrPtr[i]))) * (((double) (rcvrPtr[i])));
	}
	result = sqrt(result);
	popthenPush(1, floatObjectOf(result));
}
primitiveSoundGetVolume(void)
{
	// SoundPlugin>>#primitiveSoundGetVolume
	double left;
	sqInt results;
	double right;

	left = 0;
	right = 0;
	snd_Volume((double *) &left,(double *) &right);
	pushRemappableOop(floatObjectOf(right));
	pushRemappableOop(floatObjectOf(left));
	pushRemappableOop(instantiateClassindexableSize(classArray(), 2));
	results = popRemappableOop();
	storePointerofObjectwithValue(0, results, popRemappableOop());
	storePointerofObjectwithValue(1, results, popRemappableOop());
	if (failed()) {
		return null;
	}
	popthenPush(1, results);
	return null;
}
primitiveSoundGetRecordingSampleRate(void)
{
	// SoundPlugin>>#primitiveSoundGetRecordingSampleRate
	double  rate;
	sqInt _return_value;


	/* fail if not recording */

rate = snd_GetRecordingSampleRate();
	_return_value = floatObjectOf(rate);
	if (failed()) {
		return null;
	}
	popthenPush(1, _return_value);
	return null;
}
Exemple #5
0
primitiveSum(void)
{
    sqInt i;
    sqInt length;
    sqInt rcvr;
    float *rcvrPtr;
    double sum;

	rcvr = stackValue(0);
	if (!(isWords(rcvr))) {
		return primitiveFail();
	}
	length = stSizeOf(rcvr);
	rcvrPtr = ((float *) (firstIndexableField(rcvr)));
	sum = 0.0;
	for (i = 0; i < length; i += 1) {
		sum += ((double) (rcvrPtr[i]));
	}
	popthenPush(1, floatObjectOf(sum));
	return 0;
}
Exemple #6
0
primitiveLength(void)
{
    sqInt i;
    double len;
    sqInt length;
    sqInt rcvr;
    float *rcvrPtr;

	rcvr = stackValue(0);
	if (!(isWords(rcvr))) {
		primitiveFailFor(PrimErrBadReceiver);
	}
	length = stSizeOf(rcvr);
	rcvrPtr = ((float *) (firstIndexableField(rcvr)));
	len = 0.0;
	for (i = 0; i < length; i += 1) {
		len += (((double) (rcvrPtr[i]))) * (((double) (rcvrPtr[i])));
	}
	if (!(len > 0.0)) {
		primitiveFailFor(PrimErrBadReceiver);
	}
	popthenPush(1, floatObjectOf(sqrt(len)));
	return 0;
}