1 /* Convert to mono `Filter' 2 3 * Copyright (C) 1999 S.J. Tappin 4 * Derived from the Copy only filter (J.A. Bezemer 1998) 5 * 6 * Licensed under the terms of the GNU General Public License. 7 * ABSOLUTELY NO WARRANTY. 8 * See the file `COPYING' in this directory. 9 */ 10 11 #include "signpr_mono.h" 12 #include "signpr_general.h" 13 #include "errorwindow.h" 14 15 16 void monoize_param_defaults(parampointer_t parampointer)17monoize_param_defaults (parampointer_t parampointer) 18 { 19 } 20 21 #ifndef SWIG 22 void monoize_param_screen(parampointer_t parampointer)23monoize_param_screen (parampointer_t parampointer) 24 { 25 error_window ("This `filter' does not have adjustable parameters. It \ 26 just averages the left & right signals."); 27 } 28 #endif 29 30 void init_monoize_filter(int filterno,parampointer_t parampointer)31init_monoize_filter (int filterno, parampointer_t parampointer) 32 { 33 parampointer->buffer = init_buffer (0, 0); 34 35 parampointer->filterno = filterno; 36 } 37 38 void delete_monoize_filter(parampointer_t parampointer)39delete_monoize_filter (parampointer_t parampointer) 40 { 41 delete_buffer (¶mpointer->buffer); 42 } 43 44 45 sample_t 46 #ifndef SWIG monoize_filter(parampointer_t parampointer)47monoize_filter (parampointer_t parampointer) 48 #else 49 monoize_filter (parampointer_t parampointer, int *filter_type) 50 #endif 51 { 52 sample_t sample; 53 longsample_t sum; 54 55 #ifndef SWIG 56 advance_current_pos (¶mpointer->buffer, parampointer->filterno); 57 #else 58 advance_current_pos (¶mpointer->buffer, parampointer->filterno, filter_type); 59 #endif 60 61 sample = get_from_buffer (¶mpointer->buffer, 0); 62 sum.left = (sample.left + sample.right) / 2; 63 sample.left = sum.left; 64 sample.right = sum.left; 65 66 return sample; 67 } 68