]> Repos - portaudio/commitdiff
wasapi:
authordmitrykos <dmitrykos@0f58301d-fd10-0410-b4af-bbb618454e57>
Thu, 15 Apr 2010 17:15:14 +0000 (17:15 +0000)
committerdmitrykos <dmitrykos@0f58301d-fd10-0410-b4af-bbb618454e57>
Thu, 15 Apr 2010 17:15:14 +0000 (17:15 +0000)
 - fixed Windows 7/Server 2008 R2 and Future detection, this fixes minimal/maximal device periods correction
 - added CO_E_NOTINITIALIZED to text errors with action to take for user in case it happens

src/hostapi/wasapi/pa_win_wasapi.c

index 11714c049c2daa23377c8b513c08cecbe13afa70..30901752152cf894e1a7deaa24e621385ab47b21 100644 (file)
@@ -588,6 +588,9 @@ static HRESULT __LogHostError(HRESULT res, const char *func, const char *file, i
        case AUDCLNT_S_THREAD_ALREADY_REGISTERED    :text ="AUDCLNT_S_THREAD_ALREADY_REGISTERED"; break;\r
        case AUDCLNT_S_POSITION_STALLED                         :text ="AUDCLNT_S_POSITION_STALLED"; break;\r
 \r
+       // other windows common errors:\r
+       case CO_E_NOTINITIALIZED                    :text ="CO_E_NOTINITIALIZED: you must call CoInitialize() before Pa_OpenStream()"; break;\r
+\r
        default:\r
                text = "UNKNOWN ERROR";\r
     }\r
@@ -794,12 +797,14 @@ static BOOL IsWow64()
 // ------------------------------------------------------------------------------------------\r
 typedef enum EWindowsVersion\r
 {\r
-       WINDOWS_UNKNOWN                                 = 0,\r
-       WINDOWS_VISTA_SERVER2008                = (1 << 0),\r
-       WINDOWS_7_SERVER2008R2                  = (1 << 1),\r
-       WINDOWS_7_SERVER2008R2_AND_UP   = (1 << 2)\r
+       WINDOWS_UNKNOWN                  = 0,\r
+       WINDOWS_VISTA_SERVER2008 = (1 << 0),\r
+       WINDOWS_7_SERVER2008R2   = (1 << 1),\r
+       WINDOWS_FUTURE           = (1 << 2)\r
 }\r
 EWindowsVersion;\r
+// Defines Windows 7/Windows Server 2008 R2 and up (future versions)\r
+#define WINDOWS_7_SERVER2008R2_AND_UP (WINDOWS_7_SERVER2008R2|WINDOWS_FUTURE)\r
 // The function is limited to Vista/7 mostly as we need just to find out Vista/WOW64 combination\r
 // in order to use WASAPI WOW64 workarounds.\r
 static UINT32 GetWindowsVersion()\r
@@ -832,6 +837,13 @@ static UINT32 GetWindowsVersion()
 \r
                switch (dwMajorVersion)\r
                {\r
+               case 0:\r
+               case 1:\r
+               case 2:\r
+               case 3:\r
+               case 4:\r
+               case 5:\r
+                       break; // skip lower\r
                case 6:\r
                        switch (dwMinorVersion)\r
                        {\r
@@ -842,8 +854,11 @@ static UINT32 GetWindowsVersion()
                                version |= WINDOWS_7_SERVER2008R2;\r
                                break;\r
                        default:\r
-                               version |= (WINDOWS_7_SERVER2008R2|WINDOWS_7_SERVER2008R2_AND_UP);\r
+                               version |= WINDOWS_FUTURE;\r
                        }\r
+                       break;\r
+               default:\r
+                       version |= WINDOWS_FUTURE;\r
                }\r
        }\r
 \r