wip chex still buggy + customEvent

This commit is contained in:
Hane 2023-09-07 21:50:45 +02:00
commit a15037c5f2
6 changed files with 145 additions and 28 deletions

View file

@ -141,19 +141,16 @@ HRESULT EndpointSituationCallback::OnDeviceRemoved(LPCWSTR pwstrDeviceId) {
return S_OK;
}
HRESULT EndpointSituationCallback::OnDeviceStateChanged(LPCWSTR pwstrDeviceId, DWORD dwNewState) {
HRESULT EndpointSituationCallback::OnDeviceStateChanged(LPCWSTR pwstrDeviceId, DWORD dwNewState) {
std::wstring endpointId = std::wstring(pwstrDeviceId);
switch (dwNewState){
case DEVICE_STATE_ACTIVE:
osh->reviseEndpointShowing(endpointId, EndpointState::ENDPOINT_ACTIVE);
break;
case DEVICE_STATE_DISABLED:
break;
case DEVICE_STATE_NOTPRESENT:
break;
case DEVICE_STATE_UNPLUGGED:
osh->reviseEndpointShowing(endpointId, EndpointState::ENDPOINT_DISABLED);
break;
}
@ -161,16 +158,15 @@ HRESULT EndpointSituationCallback::OnDeviceStateChanged(LPCWSTR pwstrDeviceId, D
}
HRESULT EndpointSituationCallback::OnPropertyValueChanged(LPCWSTR pwstrDeviceId, const PROPERTYKEY key) {
/*
* printf(" -->Changed device property "
* "{%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x}#%d\n",
* key.fmtid.Data1, key.fmtid.Data2, key.fmtid.Data3,
* key.fmtid.Data4[0], key.fmtid.Data4[1],
* key.fmtid.Data4[2], key.fmtid.Data4[3],
* key.fmtid.Data4[4], key.fmtid.Data4[5],
* key.fmtid.Data4[6], key.fmtid.Data4[7],
* key.pid);
*/
log_debugcpp(" -->Changed device property " <<
key.fmtid.Data1 << key.fmtid.Data2 << key.fmtid.Data3 << "\n" <<
key.fmtid.Data4[0]<< key.fmtid.Data4[1]<< "\n"<<
key.fmtid.Data4[2]<< key.fmtid.Data4[3] << "\n"<<
key.fmtid.Data4[4]<< key.fmtid.Data4[5] << "\n"<<
key.fmtid.Data4[6]<< key.fmtid.Data4[7]<< "\n"<<
" pid " << key.pid);
return S_OK;
}
@ -391,7 +387,7 @@ void Overseer::reloadEndpoints() {
IMMDeviceCollection *deviceCollection;
// | DEVICE_STATE_DISABLED | DEVICE_STATE_NOTPRESENT | DEVICE_STATE_UNPLUGGED
// NOTPRESENT shows a lot of garbage, unnamed devices.
if(FAILED(deviceEnumerator->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE | DEVICE_STATE_DISABLED, &deviceCollection) ))
if(FAILED(deviceEnumerator->EnumAudioEndpoints(eRender, DEVICE_STATE_ACTIVE | DEVICE_STATE_DISABLED | DEVICE_STATE_NOTPRESENT | DEVICE_STATE_UNPLUGGED, &deviceCollection) ))
{ log_debugcpp("si"); };
/*