; This is the official configuration file example that
; serves as documentation for the config file reader.
;
; As you can see, comments are defined by semicolons.
;
; The format is called INFO format, and defined by boost property_tree:
; http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/parsers.html#boost_propertytree.parsers.info_parser

; It consists of six mandatory sections, whose relative order in this
; file are of no importance.

; In case of questions or ambiguities, the documentation for the
; command-line configuration interface still mostly applies.

; The general section defines global multiplex parameters.
general {
    ; the DAB Transmission mode (values 1-4 accepted)
    dabmode 2

    ; the number of ETI frames to generate (set to 0 to get an unlimited number)
    nbframes 10


    ; boolean fileds can accept either false or true as values:

    ; Enable logging to syslog
    syslog false

    ; Write the SCCA field useful for the Factum ETI analyser
    writescca false

    ; Enable timestamp definition necessary for SFN
    ; This also enables time encoding using the MNSC.
    tist false

    ; The statsserver is a simple TCP server that can present
    ; statistics data (buffers, overruns, underruns, etc)
    ; which can then be graphed a tool like Munin
    ; The doc/stats_dabmux_multi.py tool is a suitable
    ; plugin for that.
    ; If the port is zero, or the line commented, the server
    ; is not started.
    statsserverport 12720
}

remotecontrol {
    ; enable the telnet remote control server on the given port
    ; This server allows you to read and define parameters that
    ; some features export
    ; Set the port to 0 to disable the server
    telnetport 12721
}

; Some ensemble parameters
ensemble {
    id 20479
    ecc 1249 ; Extended Country Code (decimal)
    label "TuxMux"
    shortlabel "Tux"
}

; Definition of DAB services
services {
    ; Each service has it's own unique identifier, that is
    ; only used throughout the configuration file
    funk {
        label "Funk"
        shortlabel "Fu"
        pty 0
        language 0
        ; also supports id
    }
    luschtig {
        label "Luschtig"
        ; pty, language, shortlabel and id can be omitted, and will take default values
    }
    rick {
        label "rick"
        shortlabel "rick"
    }

}

; The subchannels are defined in the corresponding section.
; supported types are : audio, bridge, data, enhancedpacket,
;                       dabplus, dmb, packet, test
subchannels {
    funk {
        type audio
        inputfile "funk.mp2"
        nonblock false
        bitrate 128
        id 10
        protection 5
    }
    luschtig {
        type audio
        inputfile "luschtig.mp2"
        nonblock false
        bitrate 128
        id 3
        ;protection 5
    }
    rick {
        type dabplus
        ; example file input
        ;inputfile "rick.dabp"
        ; example zmq input:
        ; accept connections to port 9000 from any interface
        ; use fdk-aac-dabplus-zmq as encoder
        inputfile "tcp://*:9000"
        nonblock false
        bitrate 96
        id 1
        protection 1
    }

    rick2 {
        type dabplus
        ; for dabplus types, you can use the ZeroMQ input (if compiled in)
        ; with the following configuration:
        inputfile "tcp://localhost:9000"
        nonblock false
        bitrate 96
        id 1
        protection 1
    }
}

; For now, each component links one service to one subchannel
components {
    ; the component unique identifiers are not used anywhere, but
    ; are useful to disambiguate different components.
    funky {
        label funk
        shortlabel fu
        service funk
        subchannel funk
    }

    luschtigy {
        label luschtig
        shortlabel lu
        service luschtig
        subchannel luschtig
    }

    ricky {
        label "rick"
        shortlabel "rick"
        service rick
        subchannel rick
    }
}

; A list of outputs, in the format
; unique_id "uri"
outputs {
    foobar "fifo:///dev/stdout?type=raw"

; ZeroMQ output example
    ; zmq  "zmq+tcp://*:8080"
}