@@ -60,49 +60,9 @@ static const rb_memory_view_entry_t jfk_reader_view_entry = {
6060 jfk_reader_memory_view_available_p
6161};
6262
63- static VALUE
64- read_jfk (int argc , VALUE * argv , VALUE obj )
65- {
66- const char * audio_path_str = StringValueCStr (argv [0 ]);
67- const int n_samples = 176000 ;
68-
69- short samples [n_samples ];
70- FILE * file = fopen (audio_path_str , "rb" );
71-
72- fseek (file , 78 , SEEK_SET );
73- fread (samples , sizeof (short ), n_samples , file );
74- fclose (file );
75-
76- VALUE rb_samples = rb_ary_new2 (n_samples );
77- for (int i = 0 ; i < n_samples ; i ++ ) {
78- rb_ary_push (rb_samples , INT2FIX (samples [i ]));
79- }
80-
81- VALUE rb_data = rb_ary_new2 (n_samples );
82- for (int i = 0 ; i < n_samples ; i ++ ) {
83- rb_ary_push (rb_data , DBL2NUM (samples [i ]/32768.0 ));
84- }
85-
86- float data [n_samples ];
87- for (int i = 0 ; i < n_samples ; i ++ ) {
88- data [i ] = samples [i ]/32768.0 ;
89- }
90- void * c_data = (void * )data ;
91- VALUE rb_void = rb_enc_str_new ((const char * )c_data , sizeof (data ), rb_ascii8bit_encoding ());
92-
93- VALUE rb_result = rb_ary_new3 (3 , rb_samples , rb_data , rb_void );
94- return rb_result ;
95- }
96-
9763void Init_jfk_reader (void )
9864{
9965 VALUE cJFKReader = rb_define_class ("JFKReader" , rb_cObject );
10066 rb_memory_view_register (cJFKReader , & jfk_reader_view_entry );
10167 rb_define_method (cJFKReader , "initialize" , jfk_reader_initialize , 1 );
102-
103-
104- rb_define_global_function ("read_jfk" , read_jfk , -1 );
105-
106-
107-
10868}
0 commit comments