## BtSinkBin BtSinkBin — bin to be used by BtSinkMachine |

## Functions

gboolean | bt_sink_bin_is_record_format_supported ()

## Properties

gpointer | analyzers | Read / Write
GstElement * | input-gain | Read / Write
gdouble | master-volume | Read / Write
BtSinkBinMode | mode | Read / Write
gchar * | record-file-name | Read / Write
BtSinkBinRecordFormat | record-format | Read / Write

## Types and Values

struct | BtSinkBin
enum | BtSinkBinMode
enum | BtSinkBinRecordFormat

## Object Hierarchy

        GEnum
        ├── BtSinkBinMode
        ╰── BtSinkBinRecordFormat
        GObject
        ╰── GInitiallyUnowned
            ╰── GstObject
                ╰── GstElement
                    ╰── GstBin
                        ╰── BtSinkBin

## Implemented Interfaces

BtSinkBin implements GstChildProxy and GstBtTempo.

## Includes

    #include <libbtcore/core.h>

## Description

The sink-bin provides switchable play and record facilities. It also provides controllable master-volume.

In play and record modes it plugs a chain of elements. In combined play and record mode it uses a tee and plugs both pipelines.

## Functions

### bt_sink_bin_is_record_format_supported ()

    gboolean
    bt_sink_bin_is_record_format_supported
                                   (BtSinkBinRecordFormat format);

Each record format might need a couple of GStreamer element to work. This function verifies that all needed element are available.

#### Parameters

format | the format to check |

#### Returns

`TRUE` if a fomat is useable

## Types and Values

### struct BtSinkBin

    struct BtSinkBin;

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

### enum BtSinkBinMode

BtSinkBin supports several modes of operation. Playing is the default mode. Passthru is only needed if the song is plugged in another pipeline.

#### Members

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 |
BT_SINK_BIN_MODE_PASS_THRU | output audio on sometimes src pad |

### enum BtSinkBinRecordFormat

BtSinkMachine can record audio in several formats.

#### Members

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 |
BT_SINK_BIN_RECORD_FORMAT_MP4_AAC | mp4 aac |
BT_SINK_BIN_RECORD_FORMAT_FLAC | flac |
BT_SINK_BIN_RECORD_FORMAT_OGG_OPUS | ogg opus |
BT_SINK_BIN_RECORD_FORMAT_COUNT | number of formats |

## Property Details

### The `“analyzers”` property

      “analyzers”                gpointer

list of master analyzers.

Flags: Read / Write

### The `“input-gain”` property

      “input-gain”               GstElement *

the input-gain element, if any.

Flags: Read / Write

### The `“master-volume”` property

      “master-volume”            gdouble

master volume for the song.

Flags: Read / Write

Allowed values: [0,1]

Default value: 1

### The `“mode”` property

      “mode”                     BtSinkBinMode

mode of operation.

Flags: Read / Write

Default value: BT_SINK_BIN_MODE_PLAY

### The `“record-file-name”` property

      “record-file-name”         gchar *

the file-name to use for recording.

Flags: Read / Write

Default value: NULL

### The `“record-format”` property

      “record-format”            BtSinkBinRecordFormat

format to use when in record mode.

Flags: Read / Write

Default value: .vorbis.ogg