Index: trunk/Utilities/EnumerateAudioDevices/Application.manifest
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/Application.manifest (revision 792)
+++ trunk/Utilities/EnumerateAudioDevices/Application.manifest (revision 792)
@@ -0,0 +1,39 @@
+
+
+
+ Alax.Info EnumerateAudioDevices
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
Index: trunk/Utilities/EnumerateAudioDevices/EnumerateAudioDevices.vcxproj
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/EnumerateAudioDevices.vcxproj (revision 791)
+++ trunk/Utilities/EnumerateAudioDevices/EnumerateAudioDevices.vcxproj (revision 792)
@@ -22,4 +22,5 @@
{1AB74749-013C-4258-8B40-CB8B2E44F2B7}
EnumerateAudioDevices
+ 10.0.16299.0
@@ -29,10 +30,10 @@
Unicode
true
- v120_xp
+ v141
Application
Unicode
- v120_xp
+ v141
@@ -41,10 +42,10 @@
Unicode
true
- v120_xp
+ v141
Application
Unicode
- v120_xp
+ v141
@@ -101,4 +102,12 @@
$(WindowsSdkDir)lib\x64;$(LibraryPath)
+
+ false
+
+
+ false
+
+
+
@@ -140,9 +149,11 @@
MachineX86
- RequireAdministrator
- Performing registration...
- "$(TargetPath)" /RegServer
+ COM Registration, Build Increment, Digital Signature
+ rem "$(TargetPath)" /RegServer
+"$(AlaxInfo_Common)\..\Utilities\IncrementBuild\_Bin\IncrementBuild-$(PlatformName).exe" configuration "$(ProjectDir)Module.ini" binary "$(TargetPath)" string "ConfigurationName" "$(ConfigurationName)"
+"$(WindowsSdkDir)bin\x64\signtool" sign /v /f "$(AlaxInfo_Common)\Certificate\PrivateSPC.pfx" /d "Alax.Info $(ProjectName) Application" /du http://alax.info /n "Roman Ryltsov" "$(TargetPath)"
+
@@ -188,6 +199,9 @@
- Performing registration...
- "$(TargetPath)" /RegServer
+ COM Registration, Build Increment, Digital Signature
+ rem "$(TargetPath)" /RegServer
+"$(AlaxInfo_Common)\..\Utilities\IncrementBuild\_Bin\IncrementBuild-$(PlatformName).exe" configuration "$(ProjectDir)Module.ini" binary "$(TargetPath)" string "ConfigurationName" "$(ConfigurationName)"
+"$(WindowsSdkDir)bin\x64\signtool" sign /v /f "$(AlaxInfo_Common)\Certificate\PrivateSPC.pfx" /d "Alax.Info $(ProjectName) Application" /du http://alax.info /n "Roman Ryltsov" "$(TargetPath)"
+
@@ -238,10 +252,18 @@
MachineX86
- RequireAdministrator
- Performing registration...
- "$(TargetPath)" /RegServer
+ COM Registration, Build Increment, Digital Signature
+ rem "$(TargetPath)" /RegServer
+"$(AlaxInfo_Common)\..\Utilities\IncrementBuild\_Bin\IncrementBuild-$(PlatformName).exe" configuration "$(ProjectDir)Module.ini" binary "$(TargetPath)" string "ConfigurationName" "$(ConfigurationName)"
+"$(WindowsSdkDir)bin\x64\signtool" sign /v /f "$(AlaxInfo_Common)\Certificate\PrivateSPC.pfx" /d "Alax.Info $(ProjectName) Application" /du http://alax.info /n "Roman Ryltsov" "$(TargetPath)"
+
+
+ $(IntDir)$(TargetName)$(TargetExt).embed.manifest
+
+
+ $(IntDir)$(TargetName)$(TargetExt).embed.manifest.res
+
@@ -293,7 +315,16 @@
- Performing registration...
- "$(TargetPath)" /RegServer
+ COM Registration, Build Increment, Digital Signature
+ rem "$(TargetPath)" /RegServer
+"$(AlaxInfo_Common)\..\Utilities\IncrementBuild\_Bin\IncrementBuild-$(PlatformName).exe" configuration "$(ProjectDir)Module.ini" binary "$(TargetPath)" string "ConfigurationName" "$(ConfigurationName)"
+"$(WindowsSdkDir)bin\x64\signtool" sign /v /f "$(AlaxInfo_Common)\Certificate\PrivateSPC.pfx" /d "Alax.Info $(ProjectName) Application" /du http://alax.info /n "Roman Ryltsov" "$(TargetPath)"
+
+
+ $(IntDir)$(TargetName)$(TargetExt).embed.manifest
+
+
+ $(IntDir)$(TargetName)$(TargetExt).embed.manifest.res
+
@@ -317,4 +348,7 @@
+
+
+
Index: trunk/Utilities/EnumerateAudioDevices/EnumerateAudioDevices.vcxproj.filters
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/EnumerateAudioDevices.vcxproj.filters (revision 791)
+++ trunk/Utilities/EnumerateAudioDevices/EnumerateAudioDevices.vcxproj.filters (revision 792)
@@ -44,3 +44,8 @@
+
+
+ Resource Files
+
+
Index: trunk/Utilities/EnumerateAudioDevices/MainDialog.h
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/MainDialog.h (revision 791)
+++ trunk/Utilities/EnumerateAudioDevices/MainDialog.h (revision 792)
@@ -6,4 +6,5 @@
#include "rodshow.h"
+#include "romf.h"
#include
#include
@@ -43,5 +44,9 @@
private:
+ CDpiAwareness m_DpiAwareness;
+ CFont m_TextFont;
CRoEdit m_TextEdit;
+ CFont m_ButtonFont;
+ CButton m_CloseButton;
public:
@@ -64,16 +69,69 @@
return FALSE;
}
+ static VOID FormatWaveFormatEx(const WAVEFORMATEX* pWaveFormatEx, SIZE_T nWaveFormatExSize, CRoArrayT& Array)
+ {
+ _A(nWaveFormatExSize >= sizeof (WAVEFORMATEX));
+ Array.Add(AtlFormatString(_T("wFormatTag 0x%02X"), pWaveFormatEx->wFormatTag));
+ Array.Add(AtlFormatString(_T("nChannels %d"), pWaveFormatEx->nChannels));
+ Array.Add(AtlFormatString(_T("nSamplesPerSec %d"), pWaveFormatEx->nSamplesPerSec));
+ Array.Add(AtlFormatString(_T("nAvgBytesPerSec %d"), pWaveFormatEx->nAvgBytesPerSec));
+ Array.Add(AtlFormatString(_T("nBlockAlign %d"), pWaveFormatEx->nBlockAlign));
+ Array.Add(AtlFormatString(_T("wBitsPerSample %d"), pWaveFormatEx->wBitsPerSample));
+ Array.Add(AtlFormatString(_T("cbSize %d"), pWaveFormatEx->cbSize));
+ if(nWaveFormatExSize < sizeof (WAVEFORMATEXTENSIBLE) || pWaveFormatEx->wFormatTag != WAVE_FORMAT_EXTENSIBLE)
+ return;
+ const WAVEFORMATEXTENSIBLE* pWaveFormatExtensible = (const WAVEFORMATEXTENSIBLE*) pWaveFormatEx;
+ Array.Add(AtlFormatString(_T("wValidBitsPerSample %d"), pWaveFormatExtensible->Samples.wValidBitsPerSample));
+ Array.Add(AtlFormatString(_T("dwChannelMask 0x%02X"), pWaveFormatExtensible->dwChannelMask));
+ Array.Add(AtlFormatString(_T("SubFormat %ls"), _PersistHelper::StringFromIdentifier(pWaveFormatExtensible->SubFormat)));
+ }
// Window Message Handler
LRESULT OnInitDialog(HWND, LPARAM)
{
- SetIcon(AtlLoadIcon(IDI_MODULE), TRUE);
+ DlgResize_Init();
+ SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON)), TRUE);
SetIcon(AtlLoadIconImage(IDI_MODULE, LR_DEFAULTCOLOR, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)), FALSE);
CMenuHandle Menu = GetSystemMenu(FALSE);
_W(Menu.AppendMenu(MF_SEPARATOR));
_W(Menu.AppendMenu(MF_STRING, ID_APP_ABOUT, _T("&About...")));
- DlgResize_Init();
CAboutDialog::UpdateCaption(*this);
+ m_TextEdit = GetDlgItem(IDC_TEXT);
+ m_TextFont = m_DpiAwareness.ScaleFont(m_TextEdit.GetFont(), 11);
+ m_TextEdit.SetFont(m_TextFont);
+ m_CloseButton = GetDlgItem(IDOK);
+ m_ButtonFont = m_DpiAwareness.ScaleFont(GetFont(), 9);
+ m_CloseButton.SetFont(m_ButtonFont);
+ #pragma region Position
+ {
+ CRect Position;
+ _W(GetWindowRect(Position));
+ const HMONITOR hMonitor = MonitorFromPoint(Position.CenterPoint(), MONITOR_DEFAULTTONEAREST);
+ MONITORINFO Information = { sizeof Information };
+ if(GetMonitorInfo(hMonitor, &Information))
+ {
+ CSize DefaultExtent = reinterpret_cast(Information.rcWork).Size();
+ DefaultExtent.cx = DefaultExtent.cx * 6 / 8;
+ DefaultExtent.cy = DefaultExtent.cy * 6 / 8;
+ BOOL bUpdate = FALSE;
+ CSize ExcessExtent(DefaultExtent.cx - Position.Width(), DefaultExtent.cy - Position.Height());
+ if(ExcessExtent.cx > 0)
+ {
+ Position.left -= ExcessExtent.cx / 2;
+ Position.right = Position.left + DefaultExtent.cx;
+ bUpdate = TRUE;
+ }
+ if(ExcessExtent.cy > 0)
+ {
+ Position.top -= ExcessExtent.cy / 2;
+ Position.bottom = Position.top + DefaultExtent.cy;
+ bUpdate = TRUE;
+ }
+ if(bUpdate)
+ _W(MoveWindow(Position, FALSE));
+ }
+ }
_W(CenterWindow());
+ #pragma endregion
_ATLTRY
{
@@ -1301,20 +1359,6 @@
if(IsWaveFormatExKey(Key) && Value.vt == VT_BLOB && Value.blob.cbSize >= sizeof (WAVEFORMATEX))
{
- const WAVEFORMATEX* pWaveFormatEx = (const WAVEFORMATEX*) Value.blob.pBlobData;
CRoArrayT Array;
- Array.Add(AtlFormatString(_T("wFormatTag 0x%02X"), pWaveFormatEx->wFormatTag));
- Array.Add(AtlFormatString(_T("nChannels %d"), pWaveFormatEx->nChannels));
- Array.Add(AtlFormatString(_T("nSamplesPerSec %d"), pWaveFormatEx->nSamplesPerSec));
- Array.Add(AtlFormatString(_T("nAvgBytesPerSec %d"), pWaveFormatEx->nAvgBytesPerSec));
- Array.Add(AtlFormatString(_T("nBlockAlign %d"), pWaveFormatEx->nBlockAlign));
- Array.Add(AtlFormatString(_T("wBitsPerSample %d"), pWaveFormatEx->wBitsPerSample));
- Array.Add(AtlFormatString(_T("cbSize %d"), pWaveFormatEx->cbSize));
- if(Value.blob.cbSize >= sizeof (WAVEFORMATEXTENSIBLE) && pWaveFormatEx->wFormatTag == WAVE_FORMAT_EXTENSIBLE)
- {
- const WAVEFORMATEXTENSIBLE* pWaveFormatExtensible = (const WAVEFORMATEXTENSIBLE*) pWaveFormatEx;
- Array.Add(AtlFormatString(_T("wValidBitsPerSample %d"), pWaveFormatExtensible->Samples.wValidBitsPerSample));
- Array.Add(AtlFormatString(_T("dwChannelMask 0x%02X"), pWaveFormatExtensible->dwChannelMask));
- Array.Add(AtlFormatString(_T("SubFormat %ls"), _PersistHelper::StringFromIdentifier(pWaveFormatExtensible->SubFormat)));
- }
+ FormatWaveFormatEx((const WAVEFORMATEX*) Value.blob.pBlobData, Value.blob.cbSize, Array);
sDetail = _StringHelper::Join(Array, _T("; "));
}
@@ -1411,5 +1455,25 @@
CComPtr pUnknown;
const HRESULT nActivateResult = pMmDevice->Activate(Item.Value, CLSCTX_ALL, NULL, (VOID**) &pUnknown);
- sText.AppendFormat(_T("\t") _T("\t") _T("%hs") _T("\t") _T("0x%08X") _T("\r\n"), Item.pszName, nActivateResult);
+ CRoArrayT ArrayA;
+ ArrayA.Add(CString(Item.pszName));
+ ArrayA.Add(MF::FormatResult(nActivateResult));
+ sText.AppendFormat(_T("\t") _T("\t") _T("%s") _T("\r\n"), _StringHelper::Join(ArrayA, _T("\t")));
+ if(FAILED(nActivateResult))
+ continue;
+ if(Item.Value == __uuidof(IAudioClient))
+ {
+ const CComPtr& pAudioClient = reinterpret_cast&>(pUnknown);
+ WAVEFORMATEX* pWaveFormatEx;
+ if(SUCCEEDED(pAudioClient->GetMixFormat(&pWaveFormatEx)))
+ {
+ ArrayA.RemoveAll();
+ ArrayA.Add(_T("Mix Format"));
+ CRoArrayT ArrayB;
+ FormatWaveFormatEx(pWaveFormatEx, sizeof *pWaveFormatEx + pWaveFormatEx->cbSize, ArrayB);
+ ArrayA.Add(_StringHelper::Join(ArrayB, _T("; ")));
+ sText.AppendFormat(_T("\t") _T("\t") _T("\t") _T("%s") _T("\r\n"), _StringHelper::Join(ArrayA, _T("\t")));
+ }
+ // SUGG: Try explicitly well known formats like mono, stereo, 5.1, 7.1 at 48000 Hz, 16-bit, 24-bit and 32-bit IEEE float
+ }
}
#pragma endregion
@@ -1427,5 +1491,4 @@
}
#pragma endregion
- m_TextEdit = GetDlgItem(IDC_TEXT);
m_TextEdit.SetValue(sText);
}
Index: trunk/Utilities/EnumerateAudioDevices/Module.ini
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/Module.ini (revision 792)
+++ trunk/Utilities/EnumerateAudioDevices/Module.ini (revision 792)
@@ -0,0 +1,6 @@
+[General]
+
+[VersionInformation]
+;Language=133 ;MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
+;Version String Format=%d.%d.%d.%d
+Current Build Number=129
Index: trunk/Utilities/EnumerateAudioDevices/Module.rc
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/Module.rc (revision 791)
+++ trunk/Utilities/EnumerateAudioDevices/Module.rc (revision 792)
@@ -116,5 +116,5 @@
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1, 0, 0, 83
+ FILEVERSION 1, 0, 0, 84
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
@@ -135,5 +135,5 @@
VALUE "Created By", "Roman Ryltsov "
VALUE "FileDescription", "Enumerate WASAPI Audio Devices Utility"
- VALUE "FileVersion", "1, 0, 0, 83\0"
+ VALUE "FileVersion", "1, 0, 0, 84\0"
VALUE "InternalName", "EnumerateAudioDevices"
VALUE "LegalCopyright", "Copyright © Alax.Info, Roman Ryltsov, 2008-2011"
Index: trunk/Utilities/EnumerateAudioDevices/stdafx.h
===================================================================
--- trunk/Utilities/EnumerateAudioDevices/stdafx.h (revision 791)
+++ trunk/Utilities/EnumerateAudioDevices/stdafx.h (revision 792)
@@ -8,5 +8,6 @@
// Windows definitions
-#include
+#include
+#include
#define INLINE_HRESULT_FROM_WIN32