Ejemplo n.º 1
0
bool PulseSink::on_shmdata_disconnect() {
  pmanage<MPtr(&PContainer::enable)>(devices_enum_id_);
  prune_tree(".shmdata.reader." + shmpath_);
  shm_sub_.reset();
  On_scope_exit { gst_pipeline_ = std::make_unique<GstPipeliner>(nullptr, nullptr); };
  return remake_elements();
}
Ejemplo n.º 2
0
bool GTKVideo::on_shmdata_disconnect() {
  prune_tree(".shmdata.reader." + shmpath_);
  shm_sub_.reset();
  On_scope_exit{gst_pipeline_ =
        std2::make_unique<GstPipeliner>(nullptr,
                                        [this](GstMessage *msg){
                                          return this->bus_sync(msg);
                                        });};
  return remake_elements();
}
Ejemplo n.º 3
0
bool PulseSrc::stop() {
  shm_sub_.reset(nullptr);
  prune_tree(".shmdata.writer." + shmpath_);
  pmanage<MPtr(&PContainer::remove)>(volume_id_);
  volume_id_ = 0;
  pmanage<MPtr(&PContainer::remove)>(mute_id_);
  mute_id_ = 0;
  if (!remake_elements()) return false;
  volume_id_ = pmanage<MPtr(&PContainer::push)>(
      "volume", GPropToProp::to_prop(G_OBJECT(pulsesrc_.get_raw()), "volume"));
  mute_id_ = pmanage<MPtr(&PContainer::push)>(
      "mute", GPropToProp::to_prop(G_OBJECT(pulsesrc_.get_raw()), "mute"));
  gst_pipeline_ = std::make_unique<GstPipeliner>(nullptr, nullptr);
  return true;
}