; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.21022.08 

	TITLE	c:\Develop\DScaler423a\DScaler\CX2388xSource_Audio.cpp
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB OLDNAMES

PUBLIC	?UnMute@CCX2388xSource@@UAEXXZ			; CCX2388xSource::UnMute
PUBLIC	?Mute@CCX2388xSource@@UAEXXZ			; CCX2388xSource::Mute
PUBLIC	??C?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CAutoMuteSetting>::operator->
;	COMDAT ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA
_BSS	SEGMENT
?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA DD 01H DUP (?) ; `CCX2388xSource::AutoDetect_BGDK'::`2'::iA2DetectCnt
PUBLIC	?AutoDetect_I@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ ; CCX2388xSource::AutoDetect_I
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\cx2388xsource_audio.cpp
;	COMDAT ?AutoDetect_I@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ
_TEXT	SEGMENT
_this$ = -8						; size = 4
_SoundChannel$ = -4					; size = 4
?AutoDetect_I@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ PROC ; CCX2388xSource::AutoDetect_I, COMDAT
; _this$ = ecx

; 315  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx

; 316  :     // \Todo: add nicam detection
; 317  :     eSoundChannel SoundChannel = SOUNDCHANNEL_MONO;

  00009	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _SoundChannel$[ebp], 1

; 318  :     return SoundChannel;

  00010	8b 45 fc	 mov	 eax, DWORD PTR _SoundChannel$[ebp]

; 319  : }

  00013	8b e5		 mov	 esp, ebp
  00015	5d		 pop	 ebp
  00016	c3		 ret	 0
?AutoDetect_I@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ ENDP ; CCX2388xSource::AutoDetect_I
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\smartptr.h
;	COMDAT ??C?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
??C?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ PROC ; SmartPtr<CCX2388xSource::CAutoMuteSetting>::operator->, COMDAT
; _this$ = ecx

; 168  :     {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 169  :         return GetRawPointer();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?GetRawPointer@?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CAutoMuteSetting>::GetRawPointer

; 170  :     }

  0000f	8b e5		 mov	 esp, ebp
  00011	5d		 pop	 ebp
  00012	c3		 ret	 0
??C?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ ENDP ; SmartPtr<CCX2388xSource::CAutoMuteSetting>::operator->
PUBLIC	?StopUpdateAudioStatus@CCX2388xSource@@AAEXXZ	; CCX2388xSource::StopUpdateAudioStatus
; Function compile flags: /Odtp
; File c:\develop\dscaler423a\dscaler\cx2388xsource_audio.cpp
;	COMDAT ?StopUpdateAudioStatus@CCX2388xSource@@AAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?StopUpdateAudioStatus@CCX2388xSource@@AAEXXZ PROC	; CCX2388xSource::StopUpdateAudioStatus, COMDAT
; _this$ = ecx

; 103  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 104  :     KillTimer(GetMainWnd(), TIMER_CX2388X);

  00007	6a 0a		 push	 10			; 0000000aH
  00009	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  0000e	50		 push	 eax
  0000f	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__KillTimer@8

; 105  : }

  00015	8b e5		 mov	 esp, ebp
  00017	5d		 pop	 ebp
  00018	c3		 ret	 0
?StopUpdateAudioStatus@CCX2388xSource@@AAEXXZ ENDP	; CCX2388xSource::StopUpdateAudioStatus
_TEXT	ENDS
PUBLIC	?StartUpdateAudioStatus@CCX2388xSource@@AAEXXZ	; CCX2388xSource::StartUpdateAudioStatus
; Function compile flags: /Odtp
;	COMDAT ?StartUpdateAudioStatus@CCX2388xSource@@AAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?StartUpdateAudioStatus@CCX2388xSource@@AAEXXZ PROC	; CCX2388xSource::StartUpdateAudioStatus, COMDAT
; _this$ = ecx

; 97   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 98   :     m_AutoDetectA2Counter = 0;

  00007	8b 45 fc	 mov	 eax, DWORD PTR _this$[ebp]
  0000a	c7 80 1c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [eax+540], 0

; 99   :     SetTimer(GetMainWnd(), TIMER_CX2388X, TIMER_CX2388X_MS, NULL);

  00014	6a 00		 push	 0
  00016	68 fa 00 00 00	 push	 250			; 000000faH
  0001b	6a 0a		 push	 10			; 0000000aH
  0001d	e8 00 00 00 00	 call	 ?GetMainWnd@@YAPAUHWND__@@XZ ; GetMainWnd
  00022	50		 push	 eax
  00023	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__SetTimer@16

; 100  : }

  00029	8b e5		 mov	 esp, ebp
  0002b	5d		 pop	 ebp
  0002c	c3		 ret	 0
?StartUpdateAudioStatus@CCX2388xSource@@AAEXXZ ENDP	; CCX2388xSource::StartUpdateAudioStatus
PUBLIC	?AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ ; CCX2388xSource::AutoDetect_BGDK
; Function compile flags: /Odtp
;	COMDAT ?AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ
_TEXT	SEGMENT
tv207 = -16						; size = 4
_this$ = -12						; size = 4
_dwVal$150645 = -8					; size = 4
_SoundChannel$ = -4					; size = 4
?AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ PROC ; CCX2388xSource::AutoDetect_BGDK, COMDAT
; _this$ = ecx

; 263  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	89 4d f4	 mov	 DWORD PTR _this$[ebp], ecx

; 264  :     static int iA2DetectCnt = 0;
; 265  : 
; 266  :     // Start Auto Detecting...
; 267  :     if(m_AutoDetectA2Counter == 0)

  00009	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  0000c	83 b8 1c 02 00
	00 00		 cmp	 DWORD PTR [eax+540], 0
  00013	75 3e		 jne	 SHORT $LN7@AutoDetect@7

; 268  :     {
; 269  :         // ... with Mono.
; 270  :         iA2DetectCnt = 0;

  00015	c7 05 00 00 00
	00 00 00 00 00	 mov	 DWORD PTR ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA, 0

; 271  :         m_pCard->WriteDword(AUD_PHASE_FIX_CTL, 0x00000000);

  0001f	6a 00		 push	 0
  00021	68 f0 05 32 00	 push	 3278320			; 003205f0H
  00026	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	83 c1 70	 add	 ecx, 112		; 00000070H
  0002c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00031	8b c8		 mov	 ecx, eax
  00033	e8 00 00 00 00	 call	 ?WriteDword@CPCICard@@QAEXKK@Z ; CPCICard::WriteDword

; 272  :         m_pCard->AndOrDataDword(AUD_DEEMPH1_SRC_SEL, 0, ~0x00000002);

  00038	6a fd		 push	 -3			; fffffffdH
  0003a	6a 00		 push	 0
  0003c	68 5c 04 32 00	 push	 3277916			; 0032045cH
  00041	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00044	83 c1 70	 add	 ecx, 112		; 00000070H
  00047	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  0004c	8b c8		 mov	 ecx, eax
  0004e	e8 00 00 00 00	 call	 ?AndOrDataDword@CPCICard@@QAEXKKK@Z ; CPCICard::AndOrDataDword
$LN7@AutoDetect@7:

; 273  :     }
; 274  : 
; 275  :     // Timeout Auto Detecting after 10 * 250 ms
; 276  :     if(m_AutoDetectA2Counter == 10)

  00053	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00056	83 b9 1c 02 00
	00 0a		 cmp	 DWORD PTR [ecx+540], 10	; 0000000aH
  0005d	75 58		 jne	 SHORT $LN6@AutoDetect@7

; 277  :     {
; 278  :         if(iA2DetectCnt < 3)

  0005f	83 3d 00 00 00
	00 03		 cmp	 DWORD PTR ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA, 3
  00066	7d 35		 jge	 SHORT $LN5@AutoDetect@7

; 279  :         {
; 280  :             // Stereo not found; switch to Mono
; 281  :             m_pCard->OrDataDword(AUD_DEEMPH1_SRC_SEL, 0x00000002);

  00068	6a 02		 push	 2
  0006a	68 5c 04 32 00	 push	 3277916			; 0032045cH
  0006f	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00072	83 c1 70	 add	 ecx, 112		; 00000070H
  00075	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  0007a	8b c8		 mov	 ecx, eax
  0007c	e8 00 00 00 00	 call	 ?OrDataDword@CPCICard@@QAEXKK@Z ; CPCICard::OrDataDword

; 282  :             m_pCard->WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_FMRADIO_EN_RDS|EN_DMTRX_SUMDIFF|EN_A2_FORCE_MONO1);

  00081	68 08 12 00 00	 push	 4616			; 00001208H
  00086	68 8c 05 32 00	 push	 3278220			; 0032058cH
  0008b	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0008e	83 c1 70	 add	 ecx, 112		; 00000070H
  00091	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00096	8b c8		 mov	 ecx, eax
  00098	e8 00 00 00 00	 call	 ?WriteDword@CPCICard@@QAEXKK@Z ; CPCICard::WriteDword
$LN5@AutoDetect@7:

; 283  :         }
; 284  : 
; 285  :         m_AutoDetectA2Counter++;

  0009d	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  000a0	8b 82 1c 02 00
	00		 mov	 eax, DWORD PTR [edx+540]
  000a6	83 c0 01	 add	 eax, 1
  000a9	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000ac	89 81 1c 02 00
	00		 mov	 DWORD PTR [ecx+540], eax
  000b2	e9 c8 00 00 00	 jmp	 $LN4@AutoDetect@7
$LN6@AutoDetect@7:

; 286  :     }
; 287  : 
; 288  :     else if(m_AutoDetectA2Counter < 10)

  000b7	8b 55 f4	 mov	 edx, DWORD PTR _this$[ebp]
  000ba	83 ba 1c 02 00
	00 0a		 cmp	 DWORD PTR [edx+540], 10	; 0000000aH
  000c1	0f 8d b8 00 00
	00		 jge	 $LN4@AutoDetect@7

; 289  :     {
; 290  :         DWORD dwVal = m_pCard->ReadDword(AUD_STATUS) & 0x03;

  000c7	68 90 05 32 00	 push	 3278224			; 00320590H
  000cc	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  000cf	83 c1 70	 add	 ecx, 112		; 00000070H
  000d2	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  000d7	8b c8		 mov	 ecx, eax
  000d9	e8 00 00 00 00	 call	 ?ReadDword@CPCICard@@QAEKK@Z ; CPCICard::ReadDword
  000de	83 e0 03	 and	 eax, 3
  000e1	89 45 f8	 mov	 DWORD PTR _dwVal$150645[ebp], eax

; 291  : 
; 292  :         if(dwVal == 0)

  000e4	0f 85 80 00 00
	00		 jne	 $LN2@AutoDetect@7

; 293  :         {
; 294  :             // Stereo detected
; 295  :             iA2DetectCnt++;

  000ea	a1 00 00 00 00	 mov	 eax, DWORD PTR ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA
  000ef	83 c0 01	 add	 eax, 1
  000f2	a3 00 00 00 00	 mov	 DWORD PTR ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA, eax

; 296  :             if(iA2DetectCnt == 3)

  000f7	83 3d 00 00 00
	00 03		 cmp	 DWORD PTR ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA, 3
  000fe	75 6a		 jne	 SHORT $LN2@AutoDetect@7

; 297  :             {
; 298  :                 // after 3x detected switch to Stereo
; 299  :                 m_pCard->WriteDword(AUD_MODE_CHG_TIMER,        0x000000f0);

  00100	68 f0 00 00 00	 push	 240			; 000000f0H
  00105	68 b4 05 32 00	 push	 3278260			; 003205b4H
  0010a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0010d	83 c1 70	 add	 ecx, 112		; 00000070H
  00110	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00115	8b c8		 mov	 ecx, eax
  00117	e8 00 00 00 00	 call	 ?WriteDword@CPCICard@@QAEXKK@Z ; CPCICard::WriteDword

; 300  :                 m_pCard->WriteDword(AUD_PHASE_FIX_CTL,        0x00000001);

  0011c	6a 01		 push	 1
  0011e	68 f0 05 32 00	 push	 3278320			; 003205f0H
  00123	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  00126	83 c1 70	 add	 ecx, 112		; 00000070H
  00129	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  0012e	8b c8		 mov	 ecx, eax
  00130	e8 00 00 00 00	 call	 ?WriteDword@CPCICard@@QAEXKK@Z ; CPCICard::WriteDword

; 301  :                 m_pCard->OrDataDword(AUD_DEEMPH1_SRC_SEL,    0x00000002);

  00135	6a 02		 push	 2
  00137	68 5c 04 32 00	 push	 3277916			; 0032045cH
  0013c	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0013f	83 c1 70	 add	 ecx, 112		; 00000070H
  00142	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00147	8b c8		 mov	 ecx, eax
  00149	e8 00 00 00 00	 call	 ?OrDataDword@CPCICard@@QAEXKK@Z ; CPCICard::OrDataDword

; 302  :                 m_pCard->WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_FMRADIO_EN_RDS|EN_DMTRX_SUMDIFF|EN_A2_FORCE_STEREO);

  0014e	68 0a 12 00 00	 push	 4618			; 0000120aH
  00153	68 8c 05 32 00	 push	 3278220			; 0032058cH
  00158	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0015b	83 c1 70	 add	 ecx, 112		; 00000070H
  0015e	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00163	8b c8		 mov	 ecx, eax
  00165	e8 00 00 00 00	 call	 ?WriteDword@CPCICard@@QAEXKK@Z ; CPCICard::WriteDword
$LN2@AutoDetect@7:

; 303  :             }
; 304  :         }
; 305  : 
; 306  :         m_AutoDetectA2Counter++;

  0016a	8b 4d f4	 mov	 ecx, DWORD PTR _this$[ebp]
  0016d	8b 91 1c 02 00
	00		 mov	 edx, DWORD PTR [ecx+540]
  00173	83 c2 01	 add	 edx, 1
  00176	8b 45 f4	 mov	 eax, DWORD PTR _this$[ebp]
  00179	89 90 1c 02 00
	00		 mov	 DWORD PTR [eax+540], edx
$LN4@AutoDetect@7:

; 307  :     }
; 308  : 
; 309  :     eSoundChannel SoundChannel;
; 310  :     iA2DetectCnt >= 3 ? SoundChannel = SOUNDCHANNEL_STEREO : SoundChannel = SOUNDCHANNEL_MONO;

  0017f	83 3d 00 00 00
	00 03		 cmp	 DWORD PTR ?iA2DetectCnt@?1??AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ@4HA, 3
  00186	7c 0f		 jl	 SHORT $LN10@AutoDetect@7
  00188	c7 45 fc 02 00
	00 00		 mov	 DWORD PTR _SoundChannel$[ebp], 2
  0018f	8b 4d fc	 mov	 ecx, DWORD PTR _SoundChannel$[ebp]
  00192	89 4d f0	 mov	 DWORD PTR tv207[ebp], ecx
  00195	eb 0d		 jmp	 SHORT $LN11@AutoDetect@7
$LN10@AutoDetect@7:
  00197	c7 45 fc 01 00
	00 00		 mov	 DWORD PTR _SoundChannel$[ebp], 1
  0019e	8b 55 fc	 mov	 edx, DWORD PTR _SoundChannel$[ebp]
  001a1	89 55 f0	 mov	 DWORD PTR tv207[ebp], edx
$LN11@AutoDetect@7:

; 311  :     return SoundChannel;

  001a4	8b 45 fc	 mov	 eax, DWORD PTR _SoundChannel$[ebp]

; 312  : }

  001a7	8b e5		 mov	 esp, ebp
  001a9	5d		 pop	 ebp
  001aa	c3		 ret	 0
?AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ ENDP ; CCX2388xSource::AutoDetect_BGDK
_TEXT	ENDS
PUBLIC	?BalanceOnChange@CCX2388xSource@@QAEXJJ@Z	; CCX2388xSource::BalanceOnChange
; Function compile flags: /Odtp
;	COMDAT ?BalanceOnChange@CCX2388xSource@@QAEXJJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_NewValue$ = 8						; size = 4
_OldValue$ = 12						; size = 4
?BalanceOnChange@CCX2388xSource@@QAEXJJ@Z PROC		; CCX2388xSource::BalanceOnChange, COMDAT
; _this$ = ecx

; 61   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 62   :     m_pCard->SetAudioBalance((WORD)NewValue);

  00007	0f b7 45 08	 movzx	 eax, WORD PTR _NewValue$[ebp]
  0000b	50		 push	 eax
  0000c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000f	83 c1 70	 add	 ecx, 112		; 00000070H
  00012	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00017	8b c8		 mov	 ecx, eax
  00019	e8 00 00 00 00	 call	 ?SetAudioBalance@CCX2388xCard@@QAEXG@Z ; CCX2388xCard::SetAudioBalance

; 63   : }

  0001e	8b e5		 mov	 esp, ebp
  00020	5d		 pop	 ebp
  00021	c2 08 00	 ret	 8
?BalanceOnChange@CCX2388xSource@@QAEXJJ@Z ENDP		; CCX2388xSource::BalanceOnChange
_TEXT	ENDS
PUBLIC	?VolumeOnChange@CCX2388xSource@@QAEXJJ@Z	; CCX2388xSource::VolumeOnChange
; Function compile flags: /Odtp
;	COMDAT ?VolumeOnChange@CCX2388xSource@@QAEXJJ@Z
_TEXT	SEGMENT
tv80 = -8						; size = 4
_this$ = -4						; size = 4
_NewValue$ = 8						; size = 4
_OldValue$ = 12						; size = 4
?VolumeOnChange@CCX2388xSource@@QAEXJJ@Z PROC		; CCX2388xSource::VolumeOnChange, COMDAT
; _this$ = ecx

; 55   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 08	 sub	 esp, 8
  00006	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 56   :     m_pCard->SetAudioVolume((WORD)NewValue);

  00009	0f b7 45 08	 movzx	 eax, WORD PTR _NewValue$[ebp]
  0000d	50		 push	 eax
  0000e	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00011	83 c1 70	 add	 ecx, 112		; 00000070H
  00014	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00019	8b c8		 mov	 ecx, eax
  0001b	e8 00 00 00 00	 call	 ?SetAudioVolume@CCX2388xCard@@QAEXG@Z ; CCX2388xCard::SetAudioVolume

; 57   :     EventCollector->RaiseEvent(this, EVENT_VOLUME, OldValue, NewValue);

  00020	83 7d fc 00	 cmp	 DWORD PTR _this$[ebp], 0
  00024	74 0b		 je	 SHORT $LN3@VolumeOnCh@2
  00026	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00029	83 c1 40	 add	 ecx, 64			; 00000040H
  0002c	89 4d f8	 mov	 DWORD PTR tv80[ebp], ecx
  0002f	eb 07		 jmp	 SHORT $LN4@VolumeOnCh@2
$LN3@VolumeOnCh@2:
  00031	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR tv80[ebp], 0
$LN4@VolumeOnCh@2:
  00038	6a 00		 push	 0
  0003a	8b 55 08	 mov	 edx, DWORD PTR _NewValue$[ebp]
  0003d	52		 push	 edx
  0003e	8b 45 0c	 mov	 eax, DWORD PTR _OldValue$[ebp]
  00041	50		 push	 eax
  00042	6a 0e		 push	 14			; 0000000eH
  00044	8b 4d f8	 mov	 ecx, DWORD PTR tv80[ebp]
  00047	51		 push	 ecx
  00048	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  0004d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  00052	8b c8		 mov	 ecx, eax
  00054	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent

; 58   : }

  00059	8b e5		 mov	 esp, ebp
  0005b	5d		 pop	 ebp
  0005c	c2 08 00	 ret	 8
?VolumeOnChange@CCX2388xSource@@QAEXJJ@Z ENDP		; CCX2388xSource::VolumeOnChange
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?UnMute@CCX2388xSource@@UAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?UnMute@CCX2388xSource@@UAEXXZ PROC			; CCX2388xSource::UnMute, COMDAT
; _this$ = ecx

; 50   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 51   :     m_pCard->SetAudioUnMute((WORD)m_Volume->GetValue());

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	81 c1 5c 03 00
	00		 add	 ecx, 860		; 0000035cH
  00010	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVolumeSetting@CCX2388xSource@@@@QBEPAVCVolumeSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVolumeSetting>::operator->
  00015	8b c8		 mov	 ecx, eax
  00017	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  0001c	50		 push	 eax
  0001d	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00020	83 c1 70	 add	 ecx, 112		; 00000070H
  00023	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00028	8b c8		 mov	 ecx, eax
  0002a	e8 00 00 00 00	 call	 ?SetAudioUnMute@CCX2388xCard@@QAEXG@Z ; CCX2388xCard::SetAudioUnMute

; 52   : }

  0002f	8b e5		 mov	 esp, ebp
  00031	5d		 pop	 ebp
  00032	c3		 ret	 0
?UnMute@CCX2388xSource@@UAEXXZ ENDP			; CCX2388xSource::UnMute
; Function compile flags: /Odtp
_TEXT	ENDS
;	COMDAT ?Mute@CCX2388xSource@@UAEXXZ
_TEXT	SEGMENT
_this$ = -4						; size = 4
?Mute@CCX2388xSource@@UAEXXZ PROC			; CCX2388xSource::Mute, COMDAT
; _this$ = ecx

; 45   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 46   :     m_pCard->SetAudioMute();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	83 c1 70	 add	 ecx, 112		; 00000070H
  0000d	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00012	8b c8		 mov	 ecx, eax
  00014	e8 00 00 00 00	 call	 ?SetAudioMute@CCX2388xCard@@QAEXXZ ; CCX2388xCard::SetAudioMute

; 47   : }

  00019	8b e5		 mov	 esp, ebp
  0001b	5d		 pop	 ebp
  0001c	c3		 ret	 0
?Mute@CCX2388xSource@@UAEXXZ ENDP			; CCX2388xSource::Mute
PUBLIC	__$ArrayPad$
PUBLIC	?UpdateAudioStatus@CCX2388xSource@@AAEXXZ	; CCX2388xSource::UpdateAudioStatus
;	COMDAT xdata$x
xdata$x	SEGMENT
__unwindtable$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ DD 0ffffffffH
	DD	FLAT:__unwindfunclet$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ$0
__ehfuncinfo$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ DD 019930522H
	DD	01H
	DD	FLAT:__unwindtable$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ
	DD	2 DUP(00H)
	DD	2 DUP(00H)
	DD	00H
	DD	00H
; Function compile flags: /Odtp
xdata$x	ENDS
;	COMDAT ?UpdateAudioStatus@CCX2388xSource@@AAEXXZ
_TEXT	SEGMENT
tv223 = -596						; size = 4
tv192 = -592						; size = 4
tv169 = -588						; size = 4
tv162 = -584						; size = 4
tv150 = -580						; size = 4
tv140 = -576						; size = 4
tv134 = -572						; size = 4
_this$ = -568						; size = 4
$T353163 = -564						; size = 28
_SoundChannel$ = -536					; size = 4
_szSoundChannel$ = -532					; size = 512
__$ArrayPad$ = -16					; size = 4
__$EHRec$ = -12						; size = 12
?UpdateAudioStatus@CCX2388xSource@@AAEXXZ PROC		; CCX2388xSource::UpdateAudioStatus, COMDAT
; _this$ = ecx

; 109  : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	6a ff		 push	 -1
  00005	68 00 00 00 00	 push	 __ehhandler$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ
  0000a	64 a1 00 00 00
	00		 mov	 eax, DWORD PTR fs:0
  00010	50		 push	 eax
  00011	81 ec 48 02 00
	00		 sub	 esp, 584		; 00000248H
  00017	a1 00 00 00 00	 mov	 eax, DWORD PTR ___security_cookie
  0001c	33 c5		 xor	 eax, ebp
  0001e	89 45 f0	 mov	 DWORD PTR __$ArrayPad$[ebp], eax
  00021	50		 push	 eax
  00022	8d 45 f4	 lea	 eax, DWORD PTR __$EHRec$[ebp]
  00025	64 a3 00 00 00
	00		 mov	 DWORD PTR fs:0, eax
  0002b	89 8d c8 fd ff
	ff		 mov	 DWORD PTR _this$[ebp], ecx

; 110  :     eSoundChannel SoundChannel = SOUNDCHANNEL_MONO;

  00031	c7 85 e8 fd ff
	ff 01 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 1

; 111  : 
; 112  :     if(IsInTunerMode())

  0003b	8b 85 c8 fd ff
	ff		 mov	 eax, DWORD PTR _this$[ebp]
  00041	8b 10		 mov	 edx, DWORD PTR [eax]
  00043	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00049	8b 42 68	 mov	 eax, DWORD PTR [edx+104]
  0004c	ff d0		 call	 eax
  0004e	85 c0		 test	 eax, eax
  00050	0f 84 5c 02 00
	00		 je	 $LN42@UpdateAudi@3

; 113  :     {
; 114  :         if(IsVideoPresent())

  00056	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0005c	8b 11		 mov	 edx, DWORD PTR [ecx]
  0005e	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00064	8b 82 94 00 00
	00		 mov	 eax, DWORD PTR [edx+148]
  0006a	ff d0		 call	 eax
  0006c	85 c0		 test	 eax, eax
  0006e	0f 84 fc 01 00
	00		 je	 $LN41@UpdateAudi@3

; 115  :         {
; 116  :             if(TRUE == (BOOL)m_AutoMute->GetValue())

  00074	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0007a	81 c1 84 03 00
	00		 add	 ecx, 900		; 00000384H
  00080	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CAutoMuteSetting>::operator->
  00085	8b c8		 mov	 ecx, eax
  00087	e8 00 00 00 00	 call	 ?GetValue@CYesNoSetting@@QAEHXZ ; CYesNoSetting::GetValue
  0008c	83 f8 01	 cmp	 eax, 1
  0008f	75 1c		 jne	 SHORT $LN40@UpdateAudi@3

; 117  :             {
; 118  :                 if(Audio_IsMute() && !Audio_GetUserMute())

  00091	e8 00 00 00 00	 call	 ?Audio_IsMute@@YAHXZ	; Audio_IsMute
  00096	85 c0		 test	 eax, eax
  00098	74 13		 je	 SHORT $LN40@UpdateAudi@3
  0009a	e8 00 00 00 00	 call	 ?Audio_GetUserMute@@YAHXZ ; Audio_GetUserMute
  0009f	85 c0		 test	 eax, eax
  000a1	75 0a		 jne	 SHORT $LN40@UpdateAudi@3

; 119  :                 {
; 120  :                     Audio_Unmute();

  000a3	6a 00		 push	 0
  000a5	e8 00 00 00 00	 call	 ?Audio_Unmute@@YAXK@Z	; Audio_Unmute
  000aa	83 c4 04	 add	 esp, 4
$LN40@UpdateAudi@3:

; 121  :                 }
; 122  :             }
; 123  : 
; 124  :             switch(m_pCard->GetCurrentAudioStandard())

  000ad	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000b3	83 c1 70	 add	 ecx, 112		; 00000070H
  000b6	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  000bb	8b c8		 mov	 ecx, eax
  000bd	e8 00 00 00 00	 call	 ?GetCurrentAudioStandard@CCX2388xCard@@QAE?AW4eCX2388xAudioStandard@@XZ ; CCX2388xCard::GetCurrentAudioStandard
  000c2	89 85 c4 fd ff
	ff		 mov	 DWORD PTR tv134[ebp], eax
  000c8	8b 8d c4 fd ff
	ff		 mov	 ecx, DWORD PTR tv134[ebp]
  000ce	83 e9 01	 sub	 ecx, 1
  000d1	89 8d c4 fd ff
	ff		 mov	 DWORD PTR tv134[ebp], ecx
  000d7	83 bd c4 fd ff
	ff 04		 cmp	 DWORD PTR tv134[ebp], 4
  000de	0f 87 8a 01 00
	00		 ja	 $LN37@UpdateAudi@3
  000e4	8b 95 c4 fd ff
	ff		 mov	 edx, DWORD PTR tv134[ebp]
  000ea	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN50@UpdateAudi@3[edx*4]
$LN36@UpdateAudi@3:

; 125  :             {
; 126  :             case AUDIO_STANDARD_A2:
; 127  :                 switch(m_pCard->GetCurrentStereoType())

  000f1	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  000f7	83 c1 70	 add	 ecx, 112		; 00000070H
  000fa	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  000ff	8b c8		 mov	 ecx, eax
  00101	e8 00 00 00 00	 call	 ?GetCurrentStereoType@CCX2388xCard@@QAE?AW4eCX2388xStereoType@@XZ ; CCX2388xCard::GetCurrentStereoType
  00106	89 85 c0 fd ff
	ff		 mov	 DWORD PTR tv140[ebp], eax
  0010c	83 bd c0 fd ff
	ff 04		 cmp	 DWORD PTR tv140[ebp], 4
  00113	0f 87 9c 00 00
	00		 ja	 $LN34@UpdateAudi@3
  00119	8b 85 c0 fd ff
	ff		 mov	 eax, DWORD PTR tv140[ebp]
  0011f	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN51@UpdateAudi@3[eax*4]
$LN33@UpdateAudi@3:

; 128  :                 {
; 129  :                 case STEREOTYPE_AUTO:
; 130  :                     switch((eVideoFormat)m_VideoFormat->GetValue())

  00126	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0012c	81 c1 8c 02 00
	00		 add	 ecx, 652		; 0000028cH
  00132	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVideoFormatSetting@CCX2388xSource@@@@QBEPAVCVideoFormatSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVideoFormatSetting>::operator->
  00137	8b c8		 mov	 ecx, eax
  00139	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  0013e	89 85 bc fd ff
	ff		 mov	 DWORD PTR tv150[ebp], eax
  00144	83 bd bc fd ff
	ff 0d		 cmp	 DWORD PTR tv150[ebp], 13 ; 0000000dH
  0014b	77 38		 ja	 SHORT $LN31@UpdateAudi@3
  0014d	8b 8d bc fd ff
	ff		 mov	 ecx, DWORD PTR tv150[ebp]
  00153	0f b6 91 00 00
	00 00		 movzx	 edx, BYTE PTR $LN48@UpdateAudi@3[ecx]
  0015a	ff 24 95 00 00
	00 00		 jmp	 DWORD PTR $LN52@UpdateAudi@3[edx*4]
$LN30@UpdateAudi@3:

; 131  :                     {
; 132  :                     case VIDEOFORMAT_PAL_I:
; 133  :                         SoundChannel = AutoDetect_I();

  00161	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00167	e8 00 00 00 00	 call	 ?AutoDetect_I@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ ; CCX2388xSource::AutoDetect_I
  0016c	89 85 e8 fd ff
	ff		 mov	 DWORD PTR _SoundChannel$[ebp], eax

; 134  :                         break;

  00172	eb 11		 jmp	 SHORT $LN31@UpdateAudi@3
$LN29@UpdateAudi@3:

; 135  : 
; 136  :                     case VIDEOFORMAT_PAL_B:
; 137  :                     case VIDEOFORMAT_PAL_G:
; 138  :                     case VIDEOFORMAT_PAL_D:
; 139  :                     case VIDEOFORMAT_SECAM_K:
; 140  :                     case VIDEOFORMAT_SECAM_D:
; 141  :                         SoundChannel = AutoDetect_BGDK();

  00174	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  0017a	e8 00 00 00 00	 call	 ?AutoDetect_BGDK@CCX2388xSource@@AAE?AW4eSoundChannel@@XZ ; CCX2388xSource::AutoDetect_BGDK
  0017f	89 85 e8 fd ff
	ff		 mov	 DWORD PTR _SoundChannel$[ebp], eax
$LN31@UpdateAudi@3:

; 142  :                         break;
; 143  :                     }
; 144  :                     break;

  00185	eb 2e		 jmp	 SHORT $LN34@UpdateAudi@3
$LN28@UpdateAudi@3:

; 145  : 
; 146  :                 case STEREOTYPE_MONO:
; 147  :                     SoundChannel = SOUNDCHANNEL_MONO;

  00187	c7 85 e8 fd ff
	ff 01 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 1

; 148  :                     break;

  00191	eb 22		 jmp	 SHORT $LN34@UpdateAudi@3
$LN27@UpdateAudi@3:

; 149  : 
; 150  :                 case STEREOTYPE_STEREO:
; 151  :                     SoundChannel = SOUNDCHANNEL_STEREO;

  00193	c7 85 e8 fd ff
	ff 02 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 2

; 152  :                     break;

  0019d	eb 16		 jmp	 SHORT $LN34@UpdateAudi@3
$LN26@UpdateAudi@3:

; 153  : 
; 154  :                 case STEREOTYPE_ALT1:
; 155  :                     SoundChannel = SOUNDCHANNEL_LANGUAGE1;

  0019f	c7 85 e8 fd ff
	ff 03 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 3

; 156  :                     break;

  001a9	eb 0a		 jmp	 SHORT $LN34@UpdateAudi@3
$LN25@UpdateAudi@3:

; 157  : 
; 158  :                 case STEREOTYPE_ALT2:
; 159  :                     SoundChannel = SOUNDCHANNEL_LANGUAGE2;

  001ab	c7 85 e8 fd ff
	ff 04 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 4
$LN34@UpdateAudi@3:

; 160  :                     break;
; 161  :                 }
; 162  : 
; 163  :                 break;

  001b5	e9 b4 00 00 00	 jmp	 $LN37@UpdateAudi@3
$LN24@UpdateAudi@3:

; 164  : 
; 165  :             case AUDIO_STANDARD_NICAM:
; 166  :                 switch(m_pCard->GetCurrentStereoType())

  001ba	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  001c0	83 c1 70	 add	 ecx, 112		; 00000070H
  001c3	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  001c8	8b c8		 mov	 ecx, eax
  001ca	e8 00 00 00 00	 call	 ?GetCurrentStereoType@CCX2388xCard@@QAE?AW4eCX2388xStereoType@@XZ ; CCX2388xCard::GetCurrentStereoType
  001cf	89 85 b8 fd ff
	ff		 mov	 DWORD PTR tv162[ebp], eax
  001d5	83 bd b8 fd ff
	ff 04		 cmp	 DWORD PTR tv162[ebp], 4
  001dc	77 3b		 ja	 SHORT $LN22@UpdateAudi@3
  001de	8b 85 b8 fd ff
	ff		 mov	 eax, DWORD PTR tv162[ebp]
  001e4	ff 24 85 00 00
	00 00		 jmp	 DWORD PTR $LN53@UpdateAudi@3[eax*4]
$LN21@UpdateAudi@3:

; 167  :                 {
; 168  :                 case STEREOTYPE_AUTO:
; 169  :                 case STEREOTYPE_STEREO:
; 170  :                     SoundChannel = SOUNDCHANNEL_STEREO;

  001eb	c7 85 e8 fd ff
	ff 02 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 2

; 171  :                     break;

  001f5	eb 22		 jmp	 SHORT $LN22@UpdateAudi@3
$LN20@UpdateAudi@3:

; 172  : 
; 173  :                 case STEREOTYPE_MONO:
; 174  :                     SoundChannel = SOUNDCHANNEL_MONO;

  001f7	c7 85 e8 fd ff
	ff 01 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 1

; 175  :                     break;

  00201	eb 16		 jmp	 SHORT $LN22@UpdateAudi@3
$LN19@UpdateAudi@3:

; 176  : 
; 177  :                 case STEREOTYPE_ALT1:
; 178  :                     SoundChannel = SOUNDCHANNEL_LANGUAGE1;

  00203	c7 85 e8 fd ff
	ff 03 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 3

; 179  :                     break;

  0020d	eb 0a		 jmp	 SHORT $LN22@UpdateAudi@3
$LN18@UpdateAudi@3:

; 180  : 
; 181  :                 case STEREOTYPE_ALT2:
; 182  :                     SoundChannel = SOUNDCHANNEL_LANGUAGE2;

  0020f	c7 85 e8 fd ff
	ff 04 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 4
$LN22@UpdateAudi@3:

; 183  :                     break;
; 184  :                 }
; 185  : 
; 186  :                 break;

  00219	eb 53		 jmp	 SHORT $LN37@UpdateAudi@3
$LN17@UpdateAudi@3:

; 187  : 
; 188  :             case AUDIO_STANDARD_BTSC:
; 189  :                 switch(m_pCard->GetCurrentStereoType())

  0021b	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00221	83 c1 70	 add	 ecx, 112		; 00000070H
  00224	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00229	8b c8		 mov	 ecx, eax
  0022b	e8 00 00 00 00	 call	 ?GetCurrentStereoType@CCX2388xCard@@QAE?AW4eCX2388xStereoType@@XZ ; CCX2388xCard::GetCurrentStereoType
  00230	89 85 b4 fd ff
	ff		 mov	 DWORD PTR tv169[ebp], eax
  00236	83 bd b4 fd ff
	ff 04		 cmp	 DWORD PTR tv169[ebp], 4
  0023d	77 23		 ja	 SHORT $LN15@UpdateAudi@3
  0023f	8b 8d b4 fd ff
	ff		 mov	 ecx, DWORD PTR tv169[ebp]
  00245	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN54@UpdateAudi@3[ecx*4]
$LN14@UpdateAudi@3:

; 190  :                 {
; 191  :                 case STEREOTYPE_AUTO:
; 192  :                 case STEREOTYPE_STEREO:
; 193  :                     SoundChannel = SOUNDCHANNEL_STEREO;

  0024c	c7 85 e8 fd ff
	ff 02 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 2

; 194  :                     break;

  00256	eb 0a		 jmp	 SHORT $LN15@UpdateAudi@3
$LN13@UpdateAudi@3:

; 195  : 
; 196  :                 case STEREOTYPE_MONO:
; 197  :                 case STEREOTYPE_ALT1:
; 198  :                 case STEREOTYPE_ALT2:
; 199  :                     SoundChannel = SOUNDCHANNEL_MONO;

  00258	c7 85 e8 fd ff
	ff 01 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 1
$LN15@UpdateAudi@3:

; 200  :                     break;
; 201  :                 }
; 202  : 
; 203  :                 break;

  00262	eb 0a		 jmp	 SHORT $LN37@UpdateAudi@3
$LN12@UpdateAudi@3:

; 204  : 
; 205  :             case AUDIO_STANDARD_BTSC_SAP:
; 206  :                 SoundChannel = SOUNDCHANNEL_STEREO;

  00264	c7 85 e8 fd ff
	ff 02 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 2
$LN37@UpdateAudi@3:

; 207  :                 break;
; 208  : 
; 209  :             case AUDIO_STANDARD_AUTO:
; 210  :             case AUDIO_STANDARD_EIAJ:
; 211  :             case AUDIO_STANDARD_FM:
; 212  :                 break;    // \todo: add more support
; 213  :             }
; 214  :         }
; 215  : 
; 216  :         // no Video present
; 217  :         else

  0026e	eb 40		 jmp	 SHORT $LN10@UpdateAudi@3
$LN41@UpdateAudi@3:

; 218  :         {
; 219  :             if(TRUE == (BOOL)m_AutoMute->GetValue())

  00270	8b 8d c8 fd ff
	ff		 mov	 ecx, DWORD PTR _this$[ebp]
  00276	81 c1 84 03 00
	00		 add	 ecx, 900		; 00000384H
  0027c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCAutoMuteSetting@CCX2388xSource@@@@QBEPAVCAutoMuteSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CAutoMuteSetting>::operator->
  00281	8b c8		 mov	 ecx, eax
  00283	e8 00 00 00 00	 call	 ?GetValue@CYesNoSetting@@QAEHXZ ; CYesNoSetting::GetValue
  00288	83 f8 01	 cmp	 eax, 1
  0028b	75 13		 jne	 SHORT $LN9@UpdateAudi@3

; 220  :             {
; 221  :                 if(!Audio_IsMute())

  0028d	e8 00 00 00 00	 call	 ?Audio_IsMute@@YAHXZ	; Audio_IsMute
  00292	85 c0		 test	 eax, eax
  00294	75 0a		 jne	 SHORT $LN9@UpdateAudi@3

; 222  :                 {
; 223  :                     Audio_Mute();

  00296	6a 00		 push	 0
  00298	e8 00 00 00 00	 call	 ?Audio_Mute@@YAXK@Z	; Audio_Mute
  0029d	83 c4 04	 add	 esp, 4
$LN9@UpdateAudi@3:

; 224  :                 }
; 225  :             }
; 226  : 
; 227  :             m_AutoDetectA2Counter = 0;

  002a0	8b 95 c8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  002a6	c7 82 1c 02 00
	00 00 00 00 00	 mov	 DWORD PTR [edx+540], 0
$LN10@UpdateAudi@3:

; 228  :         }
; 229  :     }
; 230  : 
; 231  :     // if not in tuner mode, show always Stereo
; 232  :     else

  002b0	eb 0a		 jmp	 SHORT $LN7@UpdateAudi@3
$LN42@UpdateAudi@3:

; 233  :     {
; 234  :         SoundChannel = SOUNDCHANNEL_STEREO;

  002b2	c7 85 e8 fd ff
	ff 02 00 00 00	 mov	 DWORD PTR _SoundChannel$[ebp], 2
$LN7@UpdateAudi@3:

; 235  :     }
; 236  : 
; 237  :     TCHAR szSoundChannel[256] = _T("");

  002bc	66 a1 00 00 00
	00		 mov	 ax, WORD PTR ??_C@_11LOCGONAA@?$AA?$AA@
  002c2	66 89 85 ec fd
	ff ff		 mov	 WORD PTR _szSoundChannel$[ebp], ax
  002c9	68 fe 01 00 00	 push	 510			; 000001feH
  002ce	6a 00		 push	 0
  002d0	8d 8d ee fd ff
	ff		 lea	 ecx, DWORD PTR _szSoundChannel$[ebp+2]
  002d6	51		 push	 ecx
  002d7	e8 00 00 00 00	 call	 _memset
  002dc	83 c4 0c	 add	 esp, 12			; 0000000cH

; 238  : 
; 239  :     switch(SoundChannel)

  002df	8b 95 e8 fd ff
	ff		 mov	 edx, DWORD PTR _SoundChannel$[ebp]
  002e5	89 95 b0 fd ff
	ff		 mov	 DWORD PTR tv192[ebp], edx
  002eb	8b 85 b0 fd ff
	ff		 mov	 eax, DWORD PTR tv192[ebp]
  002f1	83 e8 01	 sub	 eax, 1
  002f4	89 85 b0 fd ff
	ff		 mov	 DWORD PTR tv192[ebp], eax
  002fa	83 bd b0 fd ff
	ff 03		 cmp	 DWORD PTR tv192[ebp], 3
  00301	77 63		 ja	 SHORT $LN5@UpdateAudi@3
  00303	8b 8d b0 fd ff
	ff		 mov	 ecx, DWORD PTR tv192[ebp]
  00309	ff 24 8d 00 00
	00 00		 jmp	 DWORD PTR $LN55@UpdateAudi@3[ecx*4]
$LN4@UpdateAudi@3:

; 240  :     {
; 241  :     case SOUNDCHANNEL_MONO:
; 242  :         _tcscpy(szSoundChannel,_T("Mono"));

  00310	68 00 00 00 00	 push	 OFFSET ??_C@_19CPEBCAPB@?$AAM?$AAo?$AAn?$AAo?$AA?$AA@
  00315	8d 95 ec fd ff
	ff		 lea	 edx, DWORD PTR _szSoundChannel$[ebp]
  0031b	52		 push	 edx
  0031c	e8 00 00 00 00	 call	 _wcscpy
  00321	83 c4 08	 add	 esp, 8

; 243  :         break;

  00324	eb 40		 jmp	 SHORT $LN5@UpdateAudi@3
$LN3@UpdateAudi@3:

; 244  : 
; 245  :     case SOUNDCHANNEL_STEREO:
; 246  :         _tcscpy(szSoundChannel,_T("Stereo"));

  00326	68 00 00 00 00	 push	 OFFSET ??_C@_1O@LAKFPCJA@?$AAS?$AAt?$AAe?$AAr?$AAe?$AAo?$AA?$AA@
  0032b	8d 85 ec fd ff
	ff		 lea	 eax, DWORD PTR _szSoundChannel$[ebp]
  00331	50		 push	 eax
  00332	e8 00 00 00 00	 call	 _wcscpy
  00337	83 c4 08	 add	 esp, 8

; 247  :         break;

  0033a	eb 2a		 jmp	 SHORT $LN5@UpdateAudi@3
$LN2@UpdateAudi@3:

; 248  : 
; 249  :     case SOUNDCHANNEL_LANGUAGE1:
; 250  :         _tcscpy(szSoundChannel,_T("Language 1"));

  0033c	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@DBHHGKMD@?$AAL?$AAa?$AAn?$AAg?$AAu?$AAa?$AAg?$AAe?$AA?5?$AA1?$AA?$AA@
  00341	8d 8d ec fd ff
	ff		 lea	 ecx, DWORD PTR _szSoundChannel$[ebp]
  00347	51		 push	 ecx
  00348	e8 00 00 00 00	 call	 _wcscpy
  0034d	83 c4 08	 add	 esp, 8

; 251  :         break;

  00350	eb 14		 jmp	 SHORT $LN5@UpdateAudi@3
$LN1@UpdateAudi@3:

; 252  : 
; 253  :     case SOUNDCHANNEL_LANGUAGE2:
; 254  :         _tcscpy(szSoundChannel,_T("Language 2"));

  00352	68 00 00 00 00	 push	 OFFSET ??_C@_1BG@CDMCMFCN@?$AAL?$AAa?$AAn?$AAg?$AAu?$AAa?$AAg?$AAe?$AA?5?$AA2?$AA?$AA@
  00357	8d 95 ec fd ff
	ff		 lea	 edx, DWORD PTR _szSoundChannel$[ebp]
  0035d	52		 push	 edx
  0035e	e8 00 00 00 00	 call	 _wcscpy
  00363	83 c4 08	 add	 esp, 8
$LN5@UpdateAudi@3:

; 255  :         break;
; 256  :     }
; 257  : 
; 258  :     StatusBar_ShowText(STATUS_AUDIO, szSoundChannel);

  00366	8d 85 ec fd ff
	ff		 lea	 eax, DWORD PTR _szSoundChannel$[ebp]
  0036c	50		 push	 eax
  0036d	8d 8d cc fd ff
	ff		 lea	 ecx, DWORD PTR $T353163[ebp]
  00373	e8 00 00 00 00	 call	 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
  00378	c7 45 fc 00 00
	00 00		 mov	 DWORD PTR __$EHRec$[ebp+8], 0
  0037f	8d 8d cc fd ff
	ff		 lea	 ecx, DWORD PTR $T353163[ebp]
  00385	51		 push	 ecx
  00386	6a 03		 push	 3
  00388	e8 00 00 00 00	 call	 ?StatusBar_ShowText@@YAXW4eStatusBarBox@@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@@Z ; StatusBar_ShowText
  0038d	83 c4 08	 add	 esp, 8
  00390	c7 45 fc ff ff
	ff ff		 mov	 DWORD PTR __$EHRec$[ebp+8], -1
  00397	8d 8d cc fd ff
	ff		 lea	 ecx, DWORD PTR $T353163[ebp]
  0039d	e8 00 00 00 00	 call	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >

; 259  :     EventCollector->RaiseEvent(this, EVENT_SOUNDCHANNEL, -1, SoundChannel);

  003a2	83 bd c8 fd ff
	ff 00		 cmp	 DWORD PTR _this$[ebp], 0
  003a9	74 11		 je	 SHORT $LN45@UpdateAudi@3
  003ab	8b 95 c8 fd ff
	ff		 mov	 edx, DWORD PTR _this$[ebp]
  003b1	83 c2 40	 add	 edx, 64			; 00000040H
  003b4	89 95 ac fd ff
	ff		 mov	 DWORD PTR tv223[ebp], edx
  003ba	eb 0a		 jmp	 SHORT $LN46@UpdateAudi@3
$LN45@UpdateAudi@3:
  003bc	c7 85 ac fd ff
	ff 00 00 00 00	 mov	 DWORD PTR tv223[ebp], 0
$LN46@UpdateAudi@3:
  003c6	6a 00		 push	 0
  003c8	8b 85 e8 fd ff
	ff		 mov	 eax, DWORD PTR _SoundChannel$[ebp]
  003ce	50		 push	 eax
  003cf	6a ff		 push	 -1
  003d1	6a 12		 push	 18			; 00000012H
  003d3	8b 8d ac fd ff
	ff		 mov	 ecx, DWORD PTR tv223[ebp]
  003d9	51		 push	 ecx
  003da	b9 00 00 00 00	 mov	 ecx, OFFSET ?EventCollector@@3V?$SmartPtr@VCEventCollector@@@@A ; EventCollector
  003df	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCEventCollector@@@@QBEPAVCEventCollector@@XZ ; SmartPtr<CEventCollector>::operator->
  003e4	8b c8		 mov	 ecx, eax
  003e6	e8 00 00 00 00	 call	 ?RaiseEvent@CEventCollector@@QAEXPAVCEventObject@@W4eEventType@@JJPAW43@@Z ; CEventCollector::RaiseEvent

; 260  : }

  003eb	8b 4d f4	 mov	 ecx, DWORD PTR __$EHRec$[ebp]
  003ee	64 89 0d 00 00
	00 00		 mov	 DWORD PTR fs:0, ecx
  003f5	59		 pop	 ecx
  003f6	8b 4d f0	 mov	 ecx, DWORD PTR __$ArrayPad$[ebp]
  003f9	33 cd		 xor	 ecx, ebp
  003fb	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00400	8b e5		 mov	 esp, ebp
  00402	5d		 pop	 ebp
  00403	c3		 ret	 0
$LN50@UpdateAudi@3:
  00404	00 00 00 00	 DD	 $LN17@UpdateAudi@3
  00408	00 00 00 00	 DD	 $LN37@UpdateAudi@3
  0040c	00 00 00 00	 DD	 $LN36@UpdateAudi@3
  00410	00 00 00 00	 DD	 $LN12@UpdateAudi@3
  00414	00 00 00 00	 DD	 $LN24@UpdateAudi@3
$LN51@UpdateAudi@3:
  00418	00 00 00 00	 DD	 $LN33@UpdateAudi@3
  0041c	00 00 00 00	 DD	 $LN27@UpdateAudi@3
  00420	00 00 00 00	 DD	 $LN28@UpdateAudi@3
  00424	00 00 00 00	 DD	 $LN26@UpdateAudi@3
  00428	00 00 00 00	 DD	 $LN25@UpdateAudi@3
$LN52@UpdateAudi@3:
  0042c	00 00 00 00	 DD	 $LN29@UpdateAudi@3
  00430	00 00 00 00	 DD	 $LN30@UpdateAudi@3
  00434	00 00 00 00	 DD	 $LN31@UpdateAudi@3
$LN48@UpdateAudi@3:
  00438	00		 DB	 0
  00439	00		 DB	 0
  0043a	00		 DB	 0
  0043b	02		 DB	 2
  0043c	01		 DB	 1
  0043d	02		 DB	 2
  0043e	02		 DB	 2
  0043f	02		 DB	 2
  00440	02		 DB	 2
  00441	02		 DB	 2
  00442	00		 DB	 0
  00443	02		 DB	 2
  00444	02		 DB	 2
  00445	00		 DB	 0
  00446	8b ff		 npad	 2
$LN53@UpdateAudi@3:
  00448	00 00 00 00	 DD	 $LN21@UpdateAudi@3
  0044c	00 00 00 00	 DD	 $LN21@UpdateAudi@3
  00450	00 00 00 00	 DD	 $LN20@UpdateAudi@3
  00454	00 00 00 00	 DD	 $LN19@UpdateAudi@3
  00458	00 00 00 00	 DD	 $LN18@UpdateAudi@3
$LN54@UpdateAudi@3:
  0045c	00 00 00 00	 DD	 $LN14@UpdateAudi@3
  00460	00 00 00 00	 DD	 $LN14@UpdateAudi@3
  00464	00 00 00 00	 DD	 $LN13@UpdateAudi@3
  00468	00 00 00 00	 DD	 $LN13@UpdateAudi@3
  0046c	00 00 00 00	 DD	 $LN13@UpdateAudi@3
$LN55@UpdateAudi@3:
  00470	00 00 00 00	 DD	 $LN4@UpdateAudi@3
  00474	00 00 00 00	 DD	 $LN3@UpdateAudi@3
  00478	00 00 00 00	 DD	 $LN2@UpdateAudi@3
  0047c	00 00 00 00	 DD	 $LN1@UpdateAudi@3
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
__unwindfunclet$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ$0:
  00000	8d 8d cc fd ff
	ff		 lea	 ecx, DWORD PTR $T353163[ebp]
  00006	e9 00 00 00 00	 jmp	 ??1?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@XZ ; std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >::~basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >
__ehhandler$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ:
  0000b	8b 54 24 08	 mov	 edx, DWORD PTR [esp+8]
  0000f	8d 42 0c	 lea	 eax, DWORD PTR [edx+12]
  00012	8b 8a b4 fd ff
	ff		 mov	 ecx, DWORD PTR [edx-588]
  00018	33 c8		 xor	 ecx, eax
  0001a	e8 00 00 00 00	 call	 @__security_check_cookie@4
  0001f	8b 4a fc	 mov	 ecx, DWORD PTR [edx-4]
  00022	33 c8		 xor	 ecx, eax
  00024	e8 00 00 00 00	 call	 @__security_check_cookie@4
  00029	b8 00 00 00 00	 mov	 eax, OFFSET __ehfuncinfo$?UpdateAudioStatus@CCX2388xSource@@AAEXXZ
  0002e	e9 00 00 00 00	 jmp	 ___CxxFrameHandler3
text$x	ENDS
?UpdateAudioStatus@CCX2388xSource@@AAEXXZ ENDP		; CCX2388xSource::UpdateAudioStatus
PUBLIC	?StereoTypeOnChange@CCX2388xSource@@QAEXJJ@Z	; CCX2388xSource::StereoTypeOnChange
; Function compile flags: /Odtp
;	COMDAT ?StereoTypeOnChange@CCX2388xSource@@QAEXJJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_NewValue$ = 8						; size = 4
_OldValue$ = 12						; size = 4
?StereoTypeOnChange@CCX2388xSource@@QAEXJJ@Z PROC	; CCX2388xSource::StereoTypeOnChange, COMDAT
; _this$ = ecx

; 82   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 83   :     StopUpdateAudioStatus();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?StopUpdateAudioStatus@CCX2388xSource@@AAEXXZ ; CCX2388xSource::StopUpdateAudioStatus

; 84   :     m_pCard->AudioInit(
; 85   :                         m_VideoSource->GetValue(),
; 86   :                         (eVideoFormat)m_VideoFormat->GetValue(),
; 87   :                         (eCX2388xAudioStandard)m_AudioStandard->GetValue(),
; 88   :                         (eCX2388xStereoType)NewValue
; 89   :                       );

  0000f	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00012	50		 push	 eax
  00013	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00016	81 c1 6c 03 00
	00		 add	 ecx, 876		; 0000036cH
  0001c	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCAudioStandardSetting@CCX2388xSource@@@@QBEPAVCAudioStandardSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CAudioStandardSetting>::operator->
  00021	8b c8		 mov	 ecx, eax
  00023	e8 00 00 00 00	 call	 ?GetValue@CListSetting@@QAEJXZ ; CListSetting::GetValue
  00028	50		 push	 eax
  00029	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002c	81 c1 8c 02 00
	00		 add	 ecx, 652		; 0000028cH
  00032	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVideoFormatSetting@CCX2388xSource@@@@QBEPAVCVideoFormatSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVideoFormatSetting>::operator->
  00037	8b c8		 mov	 ecx, eax
  00039	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  0003e	50		 push	 eax
  0003f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00042	81 c1 84 02 00
	00		 add	 ecx, 644		; 00000284H
  00048	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVideoSourceSetting@CCX2388xSource@@@@QBEPAVCVideoSourceSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVideoSourceSetting>::operator->
  0004d	8b c8		 mov	 ecx, eax
  0004f	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  00054	50		 push	 eax
  00055	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00058	83 c1 70	 add	 ecx, 112		; 00000070H
  0005b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00060	8b c8		 mov	 ecx, eax
  00062	e8 00 00 00 00	 call	 ?AudioInit@CCX2388xCard@@QAEXHW4eVideoFormat@@W4eCX2388xAudioStandard@@W4eCX2388xStereoType@@@Z ; CCX2388xCard::AudioInit

; 90   : 
; 91   :     m_Volume->DoOnChangeEvent();

  00067	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	81 c1 5c 03 00
	00		 add	 ecx, 860		; 0000035cH
  00070	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVolumeSetting@CCX2388xSource@@@@QBEPAVCVolumeSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVolumeSetting>::operator->
  00075	8b c8		 mov	 ecx, eax
  00077	e8 00 00 00 00	 call	 ?DoOnChangeEvent@CSliderSetting@@QAEXXZ ; CSliderSetting::DoOnChangeEvent

; 92   : 
; 93   :     StartUpdateAudioStatus();

  0007c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	e8 00 00 00 00	 call	 ?StartUpdateAudioStatus@CCX2388xSource@@AAEXXZ ; CCX2388xSource::StartUpdateAudioStatus

; 94   : }

  00084	8b e5		 mov	 esp, ebp
  00086	5d		 pop	 ebp
  00087	c2 08 00	 ret	 8
?StereoTypeOnChange@CCX2388xSource@@QAEXJJ@Z ENDP	; CCX2388xSource::StereoTypeOnChange
_TEXT	ENDS
PUBLIC	?AudioStandardOnChange@CCX2388xSource@@QAEXJJ@Z	; CCX2388xSource::AudioStandardOnChange
; Function compile flags: /Odtp
;	COMDAT ?AudioStandardOnChange@CCX2388xSource@@QAEXJJ@Z
_TEXT	SEGMENT
_this$ = -4						; size = 4
_NewValue$ = 8						; size = 4
_OldValue$ = 12						; size = 4
?AudioStandardOnChange@CCX2388xSource@@QAEXJJ@Z PROC	; CCX2388xSource::AudioStandardOnChange, COMDAT
; _this$ = ecx

; 66   : {

  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	89 4d fc	 mov	 DWORD PTR _this$[ebp], ecx

; 67   :     StopUpdateAudioStatus();

  00007	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0000a	e8 00 00 00 00	 call	 ?StopUpdateAudioStatus@CCX2388xSource@@AAEXXZ ; CCX2388xSource::StopUpdateAudioStatus

; 68   :     m_pCard->AudioInit(
; 69   :                         m_VideoSource->GetValue(),
; 70   :                         (eVideoFormat)m_VideoFormat->GetValue(),
; 71   :                         (eCX2388xAudioStandard)NewValue,
; 72   :                         (eCX2388xStereoType)m_StereoType->GetValue()
; 73   :                       );

  0000f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00012	81 c1 74 03 00
	00		 add	 ecx, 884		; 00000374H
  00018	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCStereoTypeSetting@CCX2388xSource@@@@QBEPAVCStereoTypeSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CStereoTypeSetting>::operator->
  0001d	8b c8		 mov	 ecx, eax
  0001f	e8 00 00 00 00	 call	 ?GetValue@CListSetting@@QAEJXZ ; CListSetting::GetValue
  00024	50		 push	 eax
  00025	8b 45 08	 mov	 eax, DWORD PTR _NewValue$[ebp]
  00028	50		 push	 eax
  00029	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0002c	81 c1 8c 02 00
	00		 add	 ecx, 652		; 0000028cH
  00032	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVideoFormatSetting@CCX2388xSource@@@@QBEPAVCVideoFormatSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVideoFormatSetting>::operator->
  00037	8b c8		 mov	 ecx, eax
  00039	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  0003e	50		 push	 eax
  0003f	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00042	81 c1 84 02 00
	00		 add	 ecx, 644		; 00000284H
  00048	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVideoSourceSetting@CCX2388xSource@@@@QBEPAVCVideoSourceSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVideoSourceSetting>::operator->
  0004d	8b c8		 mov	 ecx, eax
  0004f	e8 00 00 00 00	 call	 ?GetValue@CSliderSetting@@QAEJXZ ; CSliderSetting::GetValue
  00054	50		 push	 eax
  00055	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  00058	83 c1 70	 add	 ecx, 112		; 00000070H
  0005b	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCCX2388xCard@@@@QBEPAVCCX2388xCard@@XZ ; SmartPtr<CCX2388xCard>::operator->
  00060	8b c8		 mov	 ecx, eax
  00062	e8 00 00 00 00	 call	 ?AudioInit@CCX2388xCard@@QAEXHW4eVideoFormat@@W4eCX2388xAudioStandard@@W4eCX2388xStereoType@@@Z ; CCX2388xCard::AudioInit

; 74   : 
; 75   :     // needed, AUD_VOL_CTRL's default is 0x14 after writing to AUD_SOFT_RESET
; 76   :     m_Volume->DoOnChangeEvent();

  00067	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0006a	81 c1 5c 03 00
	00		 add	 ecx, 860		; 0000035cH
  00070	e8 00 00 00 00	 call	 ??C?$SmartPtr@VCVolumeSetting@CCX2388xSource@@@@QBEPAVCVolumeSetting@CCX2388xSource@@XZ ; SmartPtr<CCX2388xSource::CVolumeSetting>::operator->
  00075	8b c8		 mov	 ecx, eax
  00077	e8 00 00 00 00	 call	 ?DoOnChangeEvent@CSliderSetting@@QAEXXZ ; CSliderSetting::DoOnChangeEvent

; 77   : 
; 78   :     StartUpdateAudioStatus();

  0007c	8b 4d fc	 mov	 ecx, DWORD PTR _this$[ebp]
  0007f	e8 00 00 00 00	 call	 ?StartUpdateAudioStatus@CCX2388xSource@@AAEXXZ ; CCX2388xSource::StartUpdateAudioStatus

; 79   : }

  00084	8b e5		 mov	 esp, ebp
  00086	5d		 pop	 ebp
  00087	c2 08 00	 ret	 8
?AudioStandardOnChange@CCX2388xSource@@QAEXJJ@Z ENDP	; CCX2388xSource::AudioStandardOnChange
END
