session baby steps
This commit is contained in:
parent
6f8455c63d
commit
6d88697811
14 changed files with 393 additions and 87 deletions
62
src/back/backsessionclasses.cpp
Normal file
62
src/back/backsessionclasses.cpp
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
#include "backsessionclasses.h"
|
||||
#include "backfuncs.h"
|
||||
Session::Session(Endpoint* ep, IAudioSessionControl2* sessionControl, size_t idx) {
|
||||
this->ep = ep;
|
||||
this->sessionControl = sessionControl;
|
||||
this->idx = idx;
|
||||
|
||||
sessionControl->QueryInterface(__uuidof(ISimpleAudioVolume), (void**)&sessionVolume);
|
||||
DWORD pid;
|
||||
sessionControl->GetProcessId(&pid);
|
||||
if (sessionControl->IsSystemSoundsSession() == S_OK)
|
||||
this->sessionName = std::wstring(LSTRING_SYSTEM_SOUNDS);
|
||||
else {
|
||||
LPWSTR sessionDisplayName;
|
||||
this->sessionControl->GetDisplayName(&sessionDisplayName);
|
||||
this->sessionName = std::wstring(sessionDisplayName);
|
||||
CoTaskMemFree(sessionDisplayName);
|
||||
}
|
||||
}
|
||||
|
||||
float Session::getVolume(int channel){
|
||||
float volume;
|
||||
if (channel == AudioChannel::CHANNEL_MAIN) {
|
||||
if(FAILED(sessionVolume->GetMasterVolume(&volume))) { /* log_debugcpp("si") */;}
|
||||
} else {
|
||||
return 0.0;
|
||||
//if(FAILED(endpointVolume->GetChannelVolumeLevelScalar(channel, &volume))) { /* log_debugcpp("si"); */}
|
||||
}
|
||||
return volume;
|
||||
}
|
||||
|
||||
/*
|
||||
* uint32_t Endpoint::getChannelCount(){
|
||||
* return (uint32_t)channelCount;
|
||||
* }
|
||||
*/
|
||||
|
||||
std::wstring Session::getName() {
|
||||
return sessionName;
|
||||
}
|
||||
|
||||
bool Session::getMute() {
|
||||
BOOL mut;
|
||||
if(FAILED(sessionVolume->GetMute(&mut))) { /* TIP: Below */ }
|
||||
bool mute = (bool)mut;
|
||||
return mute;
|
||||
}
|
||||
|
||||
void Session::setVolume(NGuid guid, int channel, float volume) {
|
||||
//TIP: There used to be log messages here. Now, it's a ghost town.
|
||||
GUID tempMsGuid = NGuidToGUID(guid);
|
||||
if (channel == AudioChannel::CHANNEL_MAIN) {
|
||||
if(FAILED(sessionVolume->SetMasterVolume(volume, &tempMsGuid))) {};
|
||||
} else {
|
||||
//if(FAILED(sessionVolume->SetChannelVolumeLevelScalar(channel, volume, &tempMsGuid))) {};
|
||||
}
|
||||
}
|
||||
|
||||
void Session::setMute(NGuid guid, bool muted) {
|
||||
GUID tempMsGuid = NGuidToGUID(guid);
|
||||
if(FAILED(sessionVolume->SetMute(muted, &tempMsGuid))) { log_wdebugcpp(std::wstring(L"SessionVolume null?")); };
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue