# Copyright © 2015, Microsoft Corporation. All rights reserved. # :: ======================================================= :: <# DESCRIPTION: TS_NotDefault checks whether given audio device is default on not. ARGUMENTS: $deviceType: Type of the audio device which needs to be verified. $deviceID: ID of the audio device which needs to be verified. RETURNS: <&true> if not a default audio device otherwise <$false> #> #==================================================================================== # Initialize #==================================================================================== PARAM($deviceType, $deviceID) Import-LocalizedData -BindingVariable localizationString -FileName CL_LocalizationData #==================================================================================== # Load Utilities #==================================================================================== . .\CL_AudioDiagnosticSnapIn.ps1 . .\CL_Utility.ps1 #==================================================================================== # Main #==================================================================================== [bool]$result = $true [bool]$detected = $false Write-DiagProgress -Activity $localizationString.notDefault_progress try { Register-AudioDiagnosticSnapIn $device = Get-AudioDevice -ID $deviceID Parse-List $deviceType | Foreach-Object { if(-not([String]::IsNullOrEmpty($_))) { if(-not($device.IsDefaultAudioDevice($_))) { $result = $false } } } } catch{} finally { Unregister-AudioDiagnosticSnapIn } if(-not($result)) { $detected = $true } Update-DiagRootCause -ID 'RC_NotDefault' -Detected $detected -Parameter @{'DeviceType' = $deviceType; 'DeviceID' = $deviceID} return $detected