void TumFeatureExtractor::customStartIO() throw(CMSException)
    {
      if (cMan == NULL) { SMILE_ERR(1,"componentManager (cMan) is NULL, smileMainThread can not be started!"); }
      else {
        // main openSMILE initialisation
        cMan->createInstances(0); // 0 = do not read config (we already did that ..)

        /* connect all the feature senders / receivers, etc. */

        // get openSMILE component pointers by name from _cMan
        if (asink != NULL) setSmileAMQsink(cMan->getComponentInstance(asink));
        if (asrc != NULL) setSmileAMQsource(cMan->getComponentInstance(asrc)); 
        if (emmas != NULL) setSmileEMMAsender(cMan->getComponentInstance(emmas)); 

        if (amqsink != NULL) {
          amqsink->setFeatureSender(featureSender,&meta);
        } else {
          SMILE_WRN(1,"amqsink == NULL in TumFeatureExtractor, please check semaineCfg section in config file (no features will be sent now!).");
        }

        if (emmasender != NULL) {
          emmasender->setEmmaSender(emmaSender,&meta);
        } else {
          SMILE_WRN(1,"emmasender == NULL in TumFeatureExtractor, please check semaineCfg section in config file (no emma XML messages will be sent!).");
        }

        // start the smile main thread, and call run
        smileThreadCreate( smileMainThread, smileThreadRunner, (void*)cMan  );
      }
      
    }
    void TumOpenSMILE::customStartIO() throw(CMSException)
    {
      if (cMan == NULL) { SMILE_ERR(1,"componentManager (cMan) is NULL, smileMainThread can not be started!"); }
      else {
        // main openSMILE initialisation
        cMan->createInstances(0); // 0 = do not read config (we already did that ..)

        /* connect all the feature senders / receivers, etc. */

        setSmileEMMAsender(wordSenderInfo.OSinstanceName, wordSender);
        setSmileEMMAsender(nonverbalSenderInfo.OSinstanceName, nonverbalSender);
        setSmileEMMAsender(emotionSenderInfo.OSinstanceName, emotionSender);
        setSmileEMMAsender(userinfoSenderInfo.OSinstanceName, userinfoSender);

        // get openSMILE component pointers by name from _cMan
        if (featureSenderOS != NULL) setSmileAMQsink(featureSenderOS, featureSender);
        //if (asrc != NULL) setSmileAMQsource(cMan->getComponentInstance(asrc)); 

        // start the smile main thread, and call run
        smileThreadCreate( smileMainThread, smileThreadRunner, (void*)cMan  );
      }
      
    }