MusicKit
0.0.0
|
00001 #ifndef __MK_DSPConversion_H___ 00002 #define __MK_DSPConversion_H___ 00003 /* $Id$ 00004 * Functions having to do with data type conversion 00005 * Copyright 1988-1992, NeXT Inc. All rights reserved. 00006 * Author: Julius O. Smith III 00007 */ 00008 00009 extern int DSPFix24ToInt(DSPFix24 ival); 00010 00011 extern DSPFix24 DSPIntToFix24(int ival); 00012 00013 extern int DSPFix24ToIntArray( 00014 DSPFix24 *fix24Array, 00015 int *intArray, 00016 int wordCount); 00017 00018 extern int DSPIntToFix24Array( 00019 int *intArray, 00020 DSPFix24 *fix24Array, 00021 int wordCount); 00022 00023 extern float DSPIntToFloat(int ival); 00024 00025 extern int DSPFloatToIntCountClips( 00026 float fval, 00027 int *npc, /* no. positive clips */ 00028 int *nnc); /* no. negative clips */ 00029 00030 extern int DSPFloatToInt(float fval); 00031 00032 extern int DSPFloatToIntArray( 00033 float *floatArray, 00034 int *intArray, 00035 int wordCount); 00036 00037 extern int DSPIntToFloatArray( 00038 int *intArray, 00039 float *floatArray, 00040 int wordCount); 00041 00042 extern float DSPFix24ToFloat(int ival); 00043 00044 extern DSPFix24 DSPFloatToFix24(float fval); 00045 00046 extern int DSPFix24ToFloatArray( 00047 DSPFix24 *fix24Array, 00048 float *floatArray, 00049 int wordCount); 00050 00051 extern int DSPFloatToFix24Array( 00052 float *floatArray, 00053 DSPFix24 *fix24Array, 00054 int wordCount); 00055 00056 extern double DSPIntToDouble(int ival); 00057 00058 extern int DSPDoubleToIntCountClips( 00059 double dval, 00060 int *npc, /* no. positive clips */ 00061 int *nnc); /* no. negative clips */ 00062 00063 extern int DSPDoubleToInt(double dval); 00064 00065 extern int DSPDoubleToIntArray( 00066 double *doubleArray, 00067 int *intArray, 00068 int wordCount); 00069 00070 extern int DSPIntToDoubleArray( 00071 int *intArray, 00072 double *doubleArray, 00073 int wordCount); 00074 00075 extern double DSPFix24ToDouble(int ival); 00076 00077 extern int DSPFix24ToDoubleArray( 00078 DSPFix24 *fix24Array, 00079 double *doubleArray, 00080 int wordCount); 00081 00082 extern DSPFix24 DSPDoubleToFix24(double dval); 00083 00084 extern int DSPDoubleToFix24Array( 00085 double *doubleArray, 00086 DSPFix24 *fix24Array, 00087 int wordCount); 00088 00089 00090 extern int DSPFix48ToInt(register DSPFix48 *aFix48P); 00091 /* 00092 * Returns *aFix48P as an int, masking out the upper two bytes of the 00093 * DSPFix48 datum. If aFix48P is NULL, it returns -1. 00094 */ 00095 00096 00097 extern DSPFix48 *DSPIntToFix48(int ival); 00098 /* 00099 * Returns a pointer to a new DSPFix48 with the value as represented by ival. 00100 */ 00101 00102 00103 extern DSPFix48 *DSPIntToFix48UseArg( 00104 unsigned ival, 00105 register DSPFix48 *aFix48P); 00106 /* 00107 * Returns, in *aFix48P, the value as represented by ival. 00108 * aFix48P must point to a valid DSPFix48 struct. 00109 */ 00110 00111 00112 extern DSPFix48 *DSPDoubleToFix48UseArg( 00113 double dval, 00114 register DSPFix48 *aFix48P); 00115 /* 00116 * The double is assumed to be between -1.0 and 1.0. 00117 * Returns, in *aFix48P, the value as represented by dval. 00118 * aFix48P must point to a valid DSPFix48 struct. 00119 */ 00120 00121 00122 extern DSPFix48 *DSPDoubleToFix48(double dval); 00123 /* 00124 * Returns, a pointer to a new DSPFix48 00125 * with the value as represented by dval. 00126 * The double is assumed to be between -1.0 and 1.0. 00127 */ 00128 00129 00130 extern double DSPFix48ToDouble(register DSPFix48 *aFix48P); 00131 /* 00132 * Returns *aFix48P as a double between 2^47 and -2^47. 00133 * If aFix48P is NULL, returns -1.0. 00134 */ 00135 00136 00137 /********** Float <--> Short *************/ 00138 00139 extern float DSPShortToFloat(short sval); 00140 00141 extern int DSPFloatToShortCountClips( 00142 float fval, 00143 int *npc, 00144 int *nnc); 00145 00146 extern short DSPFloatToShort(float fval); 00147 00148 extern int DSPFloatToShortArray( 00149 float *floatArray, 00150 short *shortArray, 00151 int wordCount); 00152 00153 extern int DSPShortToFloatArray( 00154 short *shortArray, 00155 float *floatArray, 00156 int wordCount); 00157 00158 /********** Double <--> Short *************/ 00159 00160 extern double DSPShortToDouble(short sval); 00161 00162 extern int DSPDoubleToShortCountClips( 00163 double dval, 00164 int *npc, 00165 int *nnc); 00166 00167 extern short DSPDoubleToShort(double dval); 00168 00169 extern int DSPDoubleToShortArray( 00170 double *doubleArray, 00171 short *shortArray, 00172 int wordCount); 00173 00174 extern int DSPShortToDoubleArray( 00175 short *shortArray, 00176 double *doubleArray, 00177 int wordCount); 00178 00179 #endif