Changeset 1a30c43


Ignore:
Timestamp:
Dec 13, 2018, 2:17:50 AM (12 months ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink
Children:
2de7cfa
Parents:
56174a2
Message:

[io] sink opens sink_flac if file ends with .flac

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/io/sink.c

    r56174a2 r1a30c43  
    7272    write_data, uint_t write);
    7373#endif /* HAVE_VORBISENC */
     74
     75#ifdef HAVE_FLAC
     76typedef struct _aubio_sink_flac_t aubio_sink_flac_t;
     77extern aubio_sink_flac_t * new_aubio_sink_flac(const char_t *uri,
     78    uint_t samplerate);
     79extern void del_aubio_sink_flac (aubio_sink_flac_t *s);
     80extern uint_t aubio_sink_flac_open(aubio_sink_flac_t *s);
     81extern uint_t aubio_sink_flac_close(aubio_sink_flac_t *s);
     82extern uint_t aubio_sink_flac_preset_channels(aubio_sink_flac_t *s,
     83    uint_t channels);
     84extern uint_t aubio_sink_flac_preset_samplerate(aubio_sink_flac_t *s,
     85    uint_t samplerate);
     86extern uint_t aubio_sink_flac_get_channels(aubio_sink_flac_t *s);
     87extern uint_t aubio_sink_flac_get_samplerate(aubio_sink_flac_t *s);
     88extern void aubio_sink_flac_do(aubio_sink_flac_t *s, fvec_t*
     89    write_data, uint_t write);
     90extern void aubio_sink_flac_do_multi(aubio_sink_flac_t *s, fmat_t*
     91    write_data, uint_t write);
     92#endif /* HAVE_FLAC */
    7493
    7594static const char_t *aubio_get_extension(const char_t *filename)
     
    104123#endif /* HAVE_VORBISENC */
    105124
     125#ifdef HAVE_FLAC
     126  // check if this uri could be for us
     127  uint_t match_flacstream = 0;
     128  if (strcmp (aubio_get_extension(uri), "flac") == 0) match_flacstream = 1;
     129  if (match_flacstream) {
     130    s->sink = (void *)new_aubio_sink_flac(uri, samplerate);
     131    if (s->sink) {
     132      s->s_do = (aubio_sink_do_t)(aubio_sink_flac_do);
     133      s->s_do_multi = (aubio_sink_do_multi_t)(aubio_sink_flac_do_multi);
     134      s->s_preset_samplerate = (aubio_sink_preset_samplerate_t)(aubio_sink_flac_preset_samplerate);
     135      s->s_preset_channels = (aubio_sink_preset_channels_t)(aubio_sink_flac_preset_channels);
     136      s->s_get_samplerate = (aubio_sink_get_samplerate_t)(aubio_sink_flac_get_samplerate);
     137      s->s_get_channels = (aubio_sink_get_channels_t)(aubio_sink_flac_get_channels);
     138      s->s_close = (aubio_sink_close_t)(aubio_sink_flac_close);
     139      s->s_del = (del_aubio_sink_t)(del_aubio_sink_flac);
     140      return s;
     141    }
     142  }
     143#endif /* HAVE_FLAC */
     144
    106145#ifdef HAVE_SINK_APPLE_AUDIO
    107146  s->sink = (void *)new_aubio_sink_apple_audio(uri, samplerate);
Note: See TracChangeset for help on using the changeset viewer.