MusicKit  0.0.0
DSPConversion.h
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