## BtSinkBin

BtSinkBin — bin to be used by BtSinkMachine

## Synopsis

    #include <libbtcore/core.h>

                        BtSinkBin;
    enum                BtSinkBinMode;
    enum                BtSinkBinRecordFormat;

## Description

The sink-bin provides switchable play and record facillities. It also provides controlable master-volume.

## Details

### BtSinkBin

    typedef struct {
      const GstBin parent;
    } BtSinkBin;

Sub-class of a GstBin that implements a signal output (a machine with inputs only).

### enum BtSinkBinMode

    typedef enum {
      BT_SINK_BIN_MODE_PLAY=0,
      BT_SINK_BIN_MODE_RECORD,
      BT_SINK_BIN_MODE_PLAY_AND_RECORD
    } BtSinkBinMode;

BtSinkMachine supports several modes of operation. Playing is the default mode.

`BT_SINK_BIN_MODE_PLAY` | play the song
`BT_SINK_BIN_MODE_RECORD` | record to file
`BT_SINK_BIN_MODE_PLAY_AND_RECORD` | play and record together

### enum BtSinkBinRecordFormat

    typedef enum {
      BT_SINK_BIN_RECORD_FORMAT_OGG_VORBIS=0,
      BT_SINK_BIN_RECORD_FORMAT_MP3,
      BT_SINK_BIN_RECORD_FORMAT_WAV,
      BT_SINK_BIN_RECORD_FORMAT_OGG_FLAC,
      BT_SINK_BIN_RECORD_FORMAT_RAW
    } BtSinkBinRecordFormat;

BtSinkMachine can record audio in several formats.

`BT_SINK_BIN_RECORD_FORMAT_OGG_VORBIS` | ogg vorbis
`BT_SINK_BIN_RECORD_FORMAT_MP3` | mp3
`BT_SINK_BIN_RECORD_FORMAT_WAV` | wav
`BT_SINK_BIN_RECORD_FORMAT_OGG_FLAC` | ogg flac
`BT_SINK_BIN_RECORD_FORMAT_RAW` | raw