TRACKRENDERER_WARN("no audio sink");
return;
}
- if (strstr(sink_name, "mmaudiosink")) { // mmaudiosink or mmaudiosink2
- pipeline_->SetProperty(Elements::kSinkAudio, "device-volume", volume_);
- } else if (strstr(sink_name, "alsasink")) {
- pipeline_->SetProperty(Elements::kSinkAudio, "alsa-volume", volume_);
- } else if (strstr(sink_name, "pulsesink")) {
- TRACKRENDERER_DEBUG("pulsesink, not set volume");
+ if (strstr(sink_name, "pulsesink")) {
+ pipeline_->SetProperty(Elements::kSinkAudio, "volume", (volume_/100.0));
} else {
TRACKRENDERER_WARN("unknow audio sink name: %s", sink_name);
}
}
bool TrackRenderer::GetVolume(int* volume) {
+ gdouble vol;
if (!volume) return false;
+ if (volume_ == kVolumeNone) {
+ pipeline_->GetProperty(Elements::kSinkAudio, "volume", &vol);
+ TRACKRENDERER_DEBUG("get default volume from sink = %f", vol);
+ volume_ = (int)(vol * 100);
+ }
*volume = volume_;
return true;
}