Subversion Repositories Kolibri OS

Rev

Rev 1905 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef MPG123_SYNTH_H
  2. #define MPG123_SYNTH_H
  3.  
  4. /* This is included inside frame.h, which is included in mpg123lib_intern.h,
  5.    at the appropriate place.
  6.    Explicit header inclusions here would cause circular dependencies. */
  7.  
  8. /* The handle needs these types for selecting the decoding routine at runtime.
  9.    Not just for optimization, mainly for XtoY, mono/stereo. */
  10. typedef int (*func_synth)(real *,int, mpg123_handle *,int );
  11. typedef int (*func_synth_mono)(real *, mpg123_handle *);
  12. typedef int (*func_synth_stereo)(real *, real *, mpg123_handle *);
  13. enum synth_channel  { c_plain=0, c_stereo, c_m2s, c_mono, c_limit };
  14. enum synth_resample
  15. {
  16.          r_none=-1
  17.         ,r_1to1=0
  18. #       ifndef NO_DOWNSAMPLE
  19.         ,r_2to1
  20.         ,r_4to1
  21. #       endif
  22. #       ifndef NO_NTOM
  23.         ,r_ntom
  24. #       endif
  25.         ,r_limit
  26. };
  27. enum synth_format
  28. {
  29.          f_none=-1
  30. #       ifndef NO_16BIT
  31.         ,f_16
  32. #       endif
  33. #       ifndef NO_8BIT
  34.         ,f_8
  35. #       endif
  36. #       ifndef NO_REAL
  37.         ,f_real
  38. #       endif
  39. #       ifndef NO_32BIT
  40.         ,f_32
  41. #       endif
  42.         ,f_limit
  43. };
  44. struct synth_s
  45. {
  46.         func_synth              plain[r_limit][f_limit];
  47.         func_synth_stereo      stereo[r_limit][f_limit];
  48.         func_synth_mono   mono2stereo[r_limit][f_limit];
  49.         func_synth_mono          mono[r_limit][f_limit];
  50. };
  51.  
  52. #endif
  53.