00001
00004 #include <bpm/bpm_messages.h>
00005 #include <bpm/bpm_process.h>
00006
00007 int freq_to_sample( double fs, int ns, double f, int *iS ) {
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 double fi;
00023 int i;
00024
00025 if ( f < 0. ) {
00026 *iS = 0;
00027 return BPM_SUCCESS;
00028 }
00029
00030 for ( i=0; i<ns; i++ ) {
00031
00032 fi = (double) i / ( (double) ns ) * fs;
00033 if ( ABS( f - fi ) < ( fs / (double) ns ) ) break;
00034 }
00035
00036 *iS = i;
00037
00038
00039 return BPM_SUCCESS;
00040 }