diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2014-02-14 15:51:02 +0100 | 
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2014-02-14 16:11:43 +0100 | 
| commit | 35670b8021a6f8c3a2ab742aecb5ef41bc1c73d2 (patch) | |
| tree | bd6f93056b4d28f14b0413fb3b94362e12f322c5 | |
| parent | d6923be4bd2e198b4cba161e8040072128bd392c (diff) | |
| download | dabmux-35670b8021a6f8c3a2ab742aecb5ef41bc1c73d2.tar.gz dabmux-35670b8021a6f8c3a2ab742aecb5ef41bc1c73d2.tar.bz2 dabmux-35670b8021a6f8c3a2ab742aecb5ef41bc1c73d2.zip | |
correct RC mistakes
| -rw-r--r-- | README | 2 | ||||
| -rw-r--r-- | doc/example.mux | 49 | ||||
| -rw-r--r-- | src/MuxElements.h | 4 | ||||
| -rw-r--r-- | src/ParserConfigfile.cpp | 2 | ||||
| -rw-r--r-- | src/RemoteControl.cpp | 15 | ||||
| -rw-r--r-- | src/dabInputZmq.h | 4 | 
6 files changed, 47 insertions, 29 deletions
| @@ -15,7 +15,7 @@ In addition to the features of CRC-DabMux, this fork contains:  - supports logging to syslog  - supports ZMQ input monitoring with munin tool  - supports a Telnet Remote Control for setting/getting parameters -  (this is, for now, not used yet) +  (can change subchannel and component labels)  The src/ directory contains the source code of ODR-DabMux. diff --git a/doc/example.mux b/doc/example.mux index 8372a78..04bdddc 100644 --- a/doc/example.mux +++ b/doc/example.mux @@ -49,6 +49,10 @@ remotecontrol {      ; some features export      ; Set the port to 0 to disable the server      telnetport 12721 + +    ; the remote control server makes use of the unique identifiers +    ; for the subchannels, services and components. Make sure you +    ; chose them so that you can identify them.  }  ; Some ensemble parameters @@ -62,19 +66,19 @@ ensemble {  ; Definition of DAB services  services {      ; Each service has it's own unique identifier, that is -    ; only used throughout the configuration file -    funk { +    ; used throughout the configuration file and for the RC. +    srv-fu {          label "Funk"          shortlabel "Fu"          pty 0          language 0          ; also supports id      } -    luschtig { +    srv-lu {          label "Luschtig"          ; pty, language, shortlabel and id can be omitted, and will take default values      } -    rick { +    srv-ri {          label "rick"          shortlabel "rick"      } @@ -85,7 +89,7 @@ services {  ; supported types are : audio, bridge, data, enhancedpacket,  ;                       dabplus, dmb, packet, test  subchannels { -    funk { +    sub-fu {          type audio          ; example file input          inputfile "funk.mp2" @@ -98,7 +102,7 @@ subchannels {          id 10          protection 5      } -    luschtig { +    sub-lu {          type audio          inputfile "luschtig.mp2"          nonblock false @@ -106,7 +110,7 @@ subchannels {          id 3          ;protection 5      } -    rick { +    sub-ri {          type dabplus          ; example file input          ;inputfile "rick.dabp" @@ -120,7 +124,7 @@ subchannels {          protection 1      } -    rick2 { +    sub-ri2 {          type dabplus          ; for dabplus types, you can use the ZeroMQ input (if compiled in)          ; with the following configuration: @@ -134,9 +138,8 @@ subchannels {  ; 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 { +    ; the component unique identifiers are used for the RC. +    comp-fu {          ; specifies audio -or- packet type, defaults to zero when not given          ; audio: foreground=0, background=1, multi-channel=2          ; data: unspecified=0, TMC=1, EWS=2, ITTS=3, paging=4, TDC=5, IP=59, MOT=60, proprietary=61 @@ -144,8 +147,8 @@ components {          label funk          shortlabel fu -        service funk -        subchannel funk +        service srv-fu +        subchannel sub-fu          ; for packet components, the fields          ; "user application type in FIG 0/13 for packet mode" @@ -155,25 +158,29 @@ components {          ; are supported, with the same syntax as in the manpage      } -    luschtigy { +    comp-lu { +        ; labels are maximum 16 characters in length          label luschtig + +        ; a shortlabel is created by dropping some letters from the +        ; label, max length 8          shortlabel lu -        service luschtig -        subchannel luschtig +        service srv-lu +        subchannel sub-lu      } -    ricky { +    comp-ri {          label "rick"          shortlabel "rick" -        service rick -        subchannel rick +        service srv-ri +        subchannel sub-ri      }  }  ; A list of outputs, in the format -; unique_id "uri" +; unique-id "uri"  outputs { -    foobar "fifo:///dev/stdout?type=raw" +    stdout "fifo:///dev/stdout?type=raw"  ; ZeroMQ output example      ; zmq  "zmq+tcp://*:8080" diff --git a/src/MuxElements.h b/src/MuxElements.h index 41037b5..711f3cf 100644 --- a/src/MuxElements.h +++ b/src/MuxElements.h @@ -168,7 +168,7 @@ class DabComponent : public RemoteControllable  {      public:          DabComponent(std::string uid) : -            RemoteControllable("Component " + uid) +            RemoteControllable(uid)          {              RC_ADD_PARAMETER(label, "Label and shortlabel [label,short]");          } @@ -205,7 +205,7 @@ class DabService : public RemoteControllable  {      public:          DabService(std::string uid) : -            RemoteControllable("Service " + uid) +            RemoteControllable(uid)          {              RC_ADD_PARAMETER(label, "Label and shortlabel [label,short]");          } diff --git a/src/ParserConfigfile.cpp b/src/ParserConfigfile.cpp index d5dba9e..9f62bdd 100644 --- a/src/ParserConfigfile.cpp +++ b/src/ParserConfigfile.cpp @@ -380,6 +380,8 @@ void parse_configfile(string configuration_file,          DabComponent* component = new DabComponent(componentuid); +        component->enrol_at(*rc); +          component->serviceId = service->id;          component->subchId = subchannel->id;          component->SCIdS = SCIdS_per_service[service]++; diff --git a/src/RemoteControl.cpp b/src/RemoteControl.cpp index 3c1c24a..a075497 100644 --- a/src/RemoteControl.cpp +++ b/src/RemoteControl.cpp @@ -179,9 +179,18 @@ RemoteControllerTelnet::dispatch_command(tcp::socket& socket, string command)          }      }      else if (cmd[0] == "set") { -        if (cmd.size() == 4) { +        if (cmd.size() >= 4) {              try { -                set_param_(cmd[1], cmd[2], cmd[3]); +                stringstream new_param_value; +                for (int i = 3; i < cmd.size(); i++) { +                    new_param_value << cmd[i]; + +                    if (i+1 < cmd.size()) { +                        new_param_value << " "; +                    } +                } + +                set_param_(cmd[1], cmd[2], new_param_value.str());                  reply(socket, "ok");              }              catch (ParameterError &e) { @@ -193,7 +202,7 @@ RemoteControllerTelnet::dispatch_command(tcp::socket& socket, string command)          }          else          { -            reply(socket, "Incorrect parameters for command 'get'"); +            reply(socket, "Incorrect parameters for command 'set'");          }      }      else if (cmd[0] == "quit") { diff --git a/src/dabInputZmq.h b/src/dabInputZmq.h index e3d6153..cd8df6f 100644 --- a/src/dabInputZmq.h +++ b/src/dabInputZmq.h @@ -98,7 +98,7 @@ class DabInputZmqBase : public DabInputBase, public RemoteControllable {  class DabInputZmqMPEG : public DabInputZmqBase {      public:          DabInputZmqMPEG(const std::string name) -            : DabInputZmqBase("MPEG " + name) { +            : DabInputZmqBase(name) {                  RC_ADD_PARAMETER(buffer,                          "Size of the input buffer [mpeg frames]");              } @@ -110,7 +110,7 @@ class DabInputZmqMPEG : public DabInputZmqBase {  class DabInputZmqAAC : public DabInputZmqBase {      public:          DabInputZmqAAC(const std::string name) -            : DabInputZmqBase("AAC+ " + name) { +            : DabInputZmqBase(name) {                  RC_ADD_PARAMETER(buffer,                          "Size of the input buffer [aac superframes]");              } | 
