AudioEventRegister::AudioEventRegister( const std::string& name, const float& frequency, const qi::SessionPtr& session ) : serviceId(0), p_audio_( session->service("ALAudioDevice")), p_robot_model_(session->service("ALRobotModel")), session_(session), isStarted_(false), isPublishing_(false), isRecording_(false), isDumping_(false) { int micConfig = p_robot_model_.call<int>("_getMicrophoneConfig"); if(micConfig){ channelMap.push_back(3); channelMap.push_back(5); channelMap.push_back(0); channelMap.push_back(2); } else{ channelMap.push_back(0); channelMap.push_back(2); channelMap.push_back(1); channelMap.push_back(4); } publisher_ = boost::make_shared<publisher::BasicPublisher<naoqi_bridge_msgs::AudioBuffer> >( name ); recorder_ = boost::make_shared<recorder::BasicEventRecorder<naoqi_bridge_msgs::AudioBuffer> >( name ); converter_ = boost::make_shared<converter::AudioEventConverter>( name, frequency, session ); converter_->registerCallback( message_actions::PUBLISH, boost::bind(&publisher::BasicPublisher<naoqi_bridge_msgs::AudioBuffer>::publish, publisher_, _1) ); converter_->registerCallback( message_actions::RECORD, boost::bind(&recorder::BasicEventRecorder<naoqi_bridge_msgs::AudioBuffer>::write, recorder_, _1) ); converter_->registerCallback( message_actions::LOG, boost::bind(&recorder::BasicEventRecorder<naoqi_bridge_msgs::AudioBuffer>::bufferize, recorder_, _1) ); }
PeopleEventRegister<T>::PeopleEventRegister( const std::string& name, const std::vector<std::string> keys, const float& frequency, const qi::SessionPtr& session ) : serviceId(0), p_memory_( session->service("ALMemory")), session_(session), isStarted_(false), isPublishing_(false), isRecording_(false), isDumping_(false) { publisher_ = boost::make_shared<publisher::BasicPublisher<T> >( name ); //recorder_ = boost::make_shared<recorder::BasicEventRecorder<T> >( name ); converter_ = boost::make_shared<converter::PeopleEventConverter<T> >( name, frequency, session ); converter_->registerCallback( message_actions::PUBLISH, boost::bind(&publisher::BasicPublisher<T>::publish, publisher_, _1) ); //converter_->registerCallback( message_actions::RECORD, boost::bind(&recorder::BasicEventRecorder<T>::write, recorder_, _1) ); //converter_->registerCallback( message_actions::LOG, boost::bind(&recorder::BasicEventRecorder<T>::bufferize, recorder_, _1) ); keys_.resize(keys.size()); size_t i = 0; for(std::vector<std::string>::const_iterator it = keys.begin(); it != keys.end(); ++it, ++i) keys_[i] = *it; name_ = name; }
MovetoSubscriber::MovetoSubscriber( const std::string& name, const std::string& topic, const qi::SessionPtr& session, const boost::shared_ptr<tf2_ros::Buffer>& tf2_buffer): BaseSubscriber( name, topic, session ), p_motion_( session->service("ALMotion") ), tf2_buffer_( tf2_buffer ) {}
LifeStatusSubscriber::LifeStatusSubscriber(const std::string& name, const std::string& life_status, const qi::SessionPtr& session): life_status_(life_status), BaseSubscriber(name, life_status, session), p_life_status_(session->service("ALAutonomousLife")) {}