You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(49) |
Mar
(6) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
|---|
|
From: <ad...@us...> - 2003-11-01 14:57:11
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv22945
Modified Files:
Nova-T.inf automation.cpp
Log Message:
Fixes to get working with MCE 2004
Index: Nova-T.inf
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Nova-T.inf,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Nova-T.inf 4 Mar 2003 08:02:18 -0000 1.4
--- Nova-T.inf 1 Nov 2003 14:57:08 -0000 1.5
***************
*** 72,81 ****
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Interfaces]
--- 72,81 ----
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,%KSNAME_Filter%,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,%KSNAME_Filter%,NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,%KSNAME_Filter%,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,%KSNAME_Filter%,NovaT.Interfaces,
[NovaT.Interfaces]
***************
*** 156,159 ****
--- 156,162 ----
;***********************************************************************
; $Log$
+ ; Revision 1.5 2003/11/01 14:57:08 adcockj
+ ; Fixes to get working with MCE 2004
+ ;
; Revision 1.4 2003/03/04 08:02:18 adcockj
; Interim Checkin
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** automation.cpp 26 Apr 2003 09:40:50 -0000 1.8
--- automation.cpp 1 Nov 2003 14:57:08 -0000 1.9
***************
*** 46,50 ****
ULONG frequency=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
--- 46,51 ----
ULONG frequency=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! if(frequency==-1 || frequency==0)
! return STATUS_SUCCESS;
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
***************
*** 64,68 ****
ULONG freq_mult=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
--- 65,70 ----
ULONG freq_mult=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! if(freq_mult==-1 || freq_mult==0)
! return STATUS_SUCCESS;
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
***************
*** 324,327 ****
--- 326,332 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.9 2003/11/01 14:57:08 adcockj
+ * Fixes to get working with MCE 2004
+ *
* Revision 1.8 2003/04/26 09:40:50 adcockj
* Reverted back to original code
|
|
From: <ad...@us...> - 2003-04-26 09:46:46
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv850
Modified Files:
tuner.cpp
Log Message:
Synced Tuner code to linux driver
Index: tuner.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** tuner.cpp 26 Apr 2003 09:40:51 -0000 1.7
--- tuner.cpp 26 Apr 2003 09:46:40 -0000 1.8
***************
*** 98,109 ****
unsigned char buffer[4];
I2C_INSTRUCTIONS i2c;
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
DbgPrint("Nova-T: Setting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult);
! div=(unsigned __int32)(unsigned __int64)((36000000+bob)/166666);
! buffer[0]=(div>>8)&0x7F;
! buffer[1]=div&0xFF;
! buffer[2]=((div>>10)&0x60)|0x88;
! buffer[3]=0xC0;
i2c.address=GETCONTEXT(device)->tuner_address;
i2c.bRead=FALSE;
--- 98,114 ----
unsigned char buffer[4];
I2C_INSTRUCTIONS i2c;
+ unsigned char cfg, cpump, band_select;
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
DbgPrint("Nova-T: Setting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult);
! div = (unsigned __int32)(unsigned __int64)(36125000 + bob) / 166666;
! cfg = 0x88;
! cpump = div < 175000 ? 2 : div < 390000 ? 1 :
! div < 470000 ? 2 : div < 750000 ? 1 : 3;
! band_select = div < 175000 ? 0x0e : div < 470000 ? 0x05 : 0x03;
! buffer[0] = (div >> 8) & 0x7f;
! buffer[1] = div & 0xff;
! buffer[2] = ((div >> 10) & 0x60) | cfg;
! buffer[3] = cpump | band_select;
i2c.address=GETCONTEXT(device)->tuner_address;
i2c.bRead=FALSE;
***************
*** 114,119 ****
--- 119,128 ----
}
+
/*****************************************************************************\
* $Log$
+ * Revision 1.8 2003/04/26 09:46:40 adcockj
+ * Synced Tuner code to linux driver
+ *
* Revision 1.7 2003/04/26 09:40:51 adcockj
* Reverted back to original code
|
|
From: <ad...@us...> - 2003-04-26 09:40:57
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv31545
Modified Files:
NovaTDriver.dsp Sources automation.cpp automation.h debug.cpp
device.cpp device.h driver.cpp l64781.cpp l64781.h saa7146.cpp
saa7146.h tuner.cpp tuner.h
Log Message:
Reverted back to original code
Index: NovaTDriver.dsp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/NovaTDriver.dsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NovaTDriver.dsp 27 Feb 2003 16:50:52 -0000 1.2
--- NovaTDriver.dsp 26 Apr 2003 09:40:50 -0000 1.3
***************
*** 39,44 ****
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
! # PROP Output_Dir "objfre\i386"
! # PROP Intermediate_Dir "objfre\i386"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
--- 39,44 ----
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
! # PROP Output_Dir "objfre_wxp_x86\i386"
! # PROP Intermediate_Dir "objfre_wxp_x86\i386"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
***************
*** 54,61 ****
LINK32=link.exe
# ADD BASE LINK32 wdm.lib wmilib.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /machine:IX86 /nodefaultlib /out:"objfre\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
! # ADD LINK32 wdm.lib wmilib.lib ks.lib ksguid.lib BdaSup.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /machine:IX86 /nodefaultlib /out:"objfre\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
# Begin Custom Build - Finishing up...
! TargetPath=.\objfre\i386\NovaTDriver.sys
! InputPath=.\objfre\i386\NovaTDriver.sys
SOURCE="$(InputPath)"
--- 54,61 ----
LINK32=link.exe
# ADD BASE LINK32 wdm.lib wmilib.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /machine:IX86 /nodefaultlib /out:"objfre\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
! # ADD LINK32 wdm.lib wmilib.lib ks.lib ksguid.lib BdaSup.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /machine:IX86 /nodefaultlib /out:"objfre_wxp_x86\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
# Begin Custom Build - Finishing up...
! TargetPath=.\objfre_wxp_x86\i386\NovaTDriver.sys
! InputPath=.\objfre_wxp_x86\i386\NovaTDriver.sys
SOURCE="$(InputPath)"
***************
*** 74,79 ****
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
! # PROP Output_Dir "objchk\i386"
! # PROP Intermediate_Dir "objchk\i386"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
--- 74,79 ----
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
! # PROP Output_Dir "objchk_wxp_x86\i386"
! # PROP Intermediate_Dir "objchk_wxp_x86\i386"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
***************
*** 89,96 ****
LINK32=link.exe
# ADD BASE LINK32 wdm.lib wmilib.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /machine:IX86 /nodefaultlib /out:"objchk\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
! # ADD LINK32 wdm.lib wmilib.lib ks.lib ksguid.lib BdaSup.lib ntoskrnl.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /machine:IX86 /nodefaultlib /out:"objchk\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
# Begin Custom Build - Finishing up...
! TargetPath=.\objchk\i386\NovaTDriver.sys
! InputPath=.\objchk\i386\NovaTDriver.sys
SOURCE="$(InputPath)"
--- 89,96 ----
LINK32=link.exe
# ADD BASE LINK32 wdm.lib wmilib.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /machine:IX86 /nodefaultlib /out:"objchk\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
! # ADD LINK32 wdm.lib wmilib.lib ks.lib ksguid.lib BdaSup.lib ntoskrnl.lib /nologo /base:"0x10000" /version:5.1 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /machine:IX86 /nodefaultlib /out:"objchk_wxp_x86\i386\NovaTDriver.sys" /libpath:"$(ddkpath)\lib\wxp\i386" -align:0x80 -debug:full -debugtype:vc6 -driver -fullbuild -ignore:4010,4037,4039,4049,4065,4070,4078,4087,4089,4198,4221 -merge:_PAGE=PAGE -merge:_TEXT=.text -opt:icf -opt:nowin98 -opt:ref -osversion:4.00 -release -section:init,d -subsystem:native,4.00
# Begin Custom Build - Finishing up...
! TargetPath=.\objchk_wxp_x86\i386\NovaTDriver.sys
! InputPath=.\objchk_wxp_x86\i386\NovaTDriver.sys
SOURCE="$(InputPath)"
***************
*** 182,189 ****
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
- # Begin Source File
-
- SOURCE=".\Nova-T.inf"
- # End Source File
# End Target
# End Project
--- 182,185 ----
Index: Sources
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Sources,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Sources 4 Mar 2003 08:02:19 -0000 1.2
--- Sources 26 Apr 2003 09:40:50 -0000 1.3
***************
*** 10,20 ****
TARGETTYPE=DRIVER
# Presumably these paths need adjusted for other DDK versions.
! TARGETLIBS=$(DDK_LIB_PATH)\ks.lib \
! $(DDK_LIB_PATH)\ksguid.lib \
! $(DDK_LIB_PATH)\BdaSup.lib
! INCLUDES= \
! $(DDK_INC_PATH); \
! $(DDK_INC_PATH)\wdm;
!
SOURCES=HNTbda.rc\
driver.cpp\
--- 10,18 ----
TARGETTYPE=DRIVER
# Presumably these paths need adjusted for other DDK versions.
! TARGETLIBS=$(DDK_LIB_DEST)\i386\ks.lib \
! $(DDK_LIB_DEST)\i386\ksguid.lib \
! $(DDK_LIB_DEST)\i386\BdaSup.lib
! INCLUDES=$(DDK_INC_PATH)\inc; \
! $(DDK_INC_PATH)\wdm;
SOURCES=HNTbda.rc\
driver.cpp\
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** automation.cpp 7 Mar 2003 08:04:11 -0000 1.7
--- automation.cpp 26 Apr 2003 09:40:50 -0000 1.8
***************
*** 25,62 ****
#include "automation.h"
- #pragma const_seg("PAGECONST")
- #pragma code_seg("PAGE")
-
// This file is mainly just a horrible pile of functions which connect the
// automation tables for the kernel streaming/BDA interface to the functions
// which actually do the work elsewhere in the driver.
! // drivers should keep a note of all requested changes and only do them
! // when FilterCommitChanges() is called
! #define GETDEVICEFROMIRPPIN(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
! #define GETDEVICEFROMIRPFILT(irp) KsFilterGetDevice(KsGetFilterFromIrp(irp))
// For Tuner node
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
-
NTSTATUS TunerFrequencyPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",*pulProperty));
! if((*pulProperty==BDA_FREQUENCY_NOT_SET)||
! (*pulProperty==BDA_FREQUENCY_NOT_DEFINED)) {
! return STATUS_SUCCESS;
! }
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(*pulProperty!=GETCONTEXT(device)->tuner.frequency) {
! GETCONTEXT(device)->tuner.frequency=*pulProperty;
! }
! GETCONTEXT(device)->tuner.ChangeOutstanding=TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
return STATUS_SUCCESS;
}
--- 25,55 ----
#include "automation.h"
// This file is mainly just a horrible pile of functions which connect the
// automation tables for the kernel streaming/BDA interface to the functions
// which actually do the work elsewhere in the driver.
! // One problem is that the driver should keep a note of all requested changes
! // and only validate them when FilterCommitChanges() and such are called, but
! // currently those functions do nothing and it just validates/makes changes
! // immediately.
! #define GETDEVICEFROMIRP(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
// For Tuner node
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
NTSTATUS TunerFrequencyPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ULONG frequency=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! if(frequency!=GETCONTEXT(device)->tuner.frequency) {
! GETCONTEXT(device)->tuner.frequency=frequency;
! Tuner_SetFrequency(device);
! }
! DbgPrint("Nova-T: TunerFrequencyPut(%u)\n",frequency);
return STATUS_SUCCESS;
}
***************
*** 64,85 ****
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
-
NTSTATUS TunerFrequencyMultiplerPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",*pulProperty));
! if((*pulProperty==BDA_FREQUENCY_MULTIPLIER_NOT_SET)||
! (*pulProperty==BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED)) {
! return STATUS_SUCCESS;
! }
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->tuner.freq_mult!=*pulProperty) {
! GETCONTEXT(device)->tuner.freq_mult=*pulProperty;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
return STATUS_SUCCESS;
}
--- 57,73 ----
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
NTSTATUS TunerFrequencyMultiplerPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ULONG freq_mult=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
! GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! Tuner_SetFrequency(device);
}
+ DbgPrint("Nova-T: TunerFrequencyMultiplerPut(%u)\n",freq_mult);
return STATUS_SUCCESS;
}
***************
*** 87,286 ****
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthGet"));
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
-
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",*pulProperty));
! if((*pulProperty==BDA_CHAN_BANDWITH_NOT_SET)||
! (*pulProperty==BDA_CHAN_BANDWITH_NOT_DEFINED)) {
! return STATUS_SUCCESS;
! }
! // note that the tuner isn't effected by this setting but the
! // demodulator is so that's why we signal that that has changed
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->tuner.bandwidth!=*pulProperty) {
! GETCONTEXT(device)->tuner.bandwidth=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
}
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// In mDb or something
! *pulProperty=L64781_SignalStrength(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%i)", *pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! *pulProperty=L64781_HasSignal(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty)
{
! *pulProperty=(L64781_Signal2NoiseRatio(GETDEVICEFROMIRPPIN(pIrp))*100)/255;
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty)
{
! *pulProperty=L64781_HasLock(GETDEVICEFROMIRPPIN(pIrp));
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypeGet"));
! *pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%d)",*pulProperty));
! if(*pulProperty < BDA_MOD_NOT_SET ||
! *pulProperty >= BDA_MOD_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_MOD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_MOD_QPSK)&&(*pulProperty!=BDA_MOD_16QAM)&&(*pulProperty!=BDA_MOD_64QAM)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Modulation Type : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.modulation!=*pulProperty) {
! GETCONTEXT(device)->demodulator.modulation=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
- _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypeGet"));
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%d)",*pulProperty));
! if(*pulProperty < BDA_FEC_METHOD_NOT_SET ||
! *pulProperty >= BDA_FEC_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_FEC_METHOD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if(*pulProperty!=BDA_FEC_VITERBI) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown FEC Type"));
! }
! return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRateGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%d)",*pulProperty));
! if(*pulProperty < BDA_BCC_RATE_NOT_SET ||
! *pulProperty >= BDA_BCC_RATE_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_BCC_RATE_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_BCC_RATE_1_2)&&
! (*pulProperty!=BDA_BCC_RATE_2_3)&&
! (*pulProperty!=BDA_BCC_RATE_3_4)&&
! (*pulProperty!=BDA_BCC_RATE_5_6)&&
! (*pulProperty!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Inner Rate : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.HP_coderate!=*pulProperty) {
! GETCONTEXT(device)->demodulator.HP_coderate=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
- _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypeGet"));
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%d)",*pulProperty));
! if(*pulProperty < BDA_FEC_METHOD_NOT_SET ||
! *pulProperty >= BDA_FEC_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_FEC_METHOD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if(*pulProperty!=BDA_FEC_VITERBI) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown FEC Type"));
! }
! return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRateGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%d)",*pulProperty));
! if(*pulProperty < BDA_BCC_RATE_NOT_SET ||
! *pulProperty >= BDA_BCC_RATE_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_BCC_RATE_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_BCC_RATE_1_2)&&
! (*pulProperty!=BDA_BCC_RATE_2_3)&&
! (*pulProperty!=BDA_BCC_RATE_3_4)&&
! (*pulProperty!=BDA_BCC_RATE_5_6)&&
! (*pulProperty!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Outer Rate : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.LP_coderate!=*pulProperty) {
! GETCONTEXT(device)->demodulator.LP_coderate=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
--- 75,206 ----
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ULONG bandwidth=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
! GETCONTEXT(device)->tuner.bandwidth=bandwidth;
! L64781_ParametersUpdated(device);
}
+ DbgPrint("Nova-T: TunerBandwidthPut(%u)\n",bandwidth);
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// In mDb or something
! *pulProperty=(LONG)L64781_SignalStrength(device);
! DbgPrint("Nova-T: TunerSignalStrengthGet, irp=0x%p, device=0x%p, strength=%i\n",pIrp,device,*pulProperty);
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRP(pIrp));
return STATUS_SUCCESS;
}
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRP(pIrp))*100)/255);
return STATUS_SUCCESS;
}
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRP(pIrp));
return STATUS_SUCCESS;
}
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ModulationType newtype=(ModulationType)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! DbgPrint("Nova-T: DemodModulationTypePut (%d)\n",newtype);
! if((newtype!=BDA_MOD_QPSK)&&(newtype!=BDA_MOD_16QAM)&&(newtype!=BDA_MOD_64QAM)) return STATUS_INVALID_PARAMETER;
! if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
! GETCONTEXT(device)->demodulator.modulation=newtype;
! L64781_ParametersUpdated(device);
! }
! DbgPrint("Nova-T: DemodModulationTypePut(%u)\n",newtype);
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! DbgPrint("Nova-T: DemodInnerFecTypePut (%d)\n",*pulProperty);
! if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
! else return STATUS_INVALID_PARAMETER;
}
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! DbgPrint("Nova-T: DemodInnerFecRatePut (%d)\n",rate);
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! if((rate!=BDA_BCC_RATE_1_2)&&
! (rate!=BDA_BCC_RATE_2_3)&&
! (rate!=BDA_BCC_RATE_3_4)&&
! (rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) return STATUS_INVALID_PARAMETER; // Fix
! if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
! GETCONTEXT(device)->demodulator.HP_coderate=rate;
! L64781_ParametersUpdated(device);
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! DbgPrint("Nova-T: DemodOuterFecTypePut (%d)\n",(*pulProperty));
! if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
! else return STATUS_INVALID_PARAMETER;
}
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! DbgPrint("Nova-T: DemodOuterFecRatePut (%d)\n", rate);
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! if((rate!=BDA_BCC_RATE_1_2)&&
! (rate!=BDA_BCC_RATE_2_3)&&
! (rate!=BDA_BCC_RATE_3_4)&&
! (rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) return STATUS_INVALID_PARAMETER; // Fix
! if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
! GETCONTEXT(device)->demodulator.LP_coderate=rate;
! L64781_ParametersUpdated(device);
! }
return STATUS_SUCCESS;
}
***************
*** 288,395 ****
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSymbolRateGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSymbolRatePut(%u)",*pulProperty));
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // \todo Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%d)",*pulProperty));
! if(*pulProperty < BDA_GUARD_NOT_SET ||
! *pulProperty >= BDA_GUARD_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_GUARD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_GUARD_1_32)&&
! (*pulProperty!=BDA_GUARD_1_16)&&
! (*pulProperty!=BDA_GUARD_1_8)&&
! (*pulProperty!=BDA_GUARD_1_4)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Guard Interval : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.guard_interval!=*pulProperty) {
! GETCONTEXT(device)->demodulator.guard_interval=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModeGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",*pulProperty));
! if(*pulProperty < BDA_XMIT_MODE_NOT_SET ||
! *pulProperty >= BDA_XMIT_MODE_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_XMIT_MODE_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_XMIT_MODE_2K)&&
! (*pulProperty!=BDA_XMIT_MODE_8K)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Transmission Mode : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.transmit_mode!=*pulProperty) {
! GETCONTEXT(device)->demodulator.transmit_mode=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionGet"));
! *pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",*pulProperty));
! if(*pulProperty < BDA_SPECTRAL_INVERSION_NOT_SET ||
! *pulProperty >= BDA_SPECTRAL_INVERSION_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_SPECTRAL_INVERSION_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_SPECTRAL_INVERSION_AUTOMATIC)&&
! (*pulProperty!=BDA_SPECTRAL_INVERSION_NORMAL)&&
! (*pulProperty!=BDA_SPECTRAL_INVERSION_INVERTED)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Spectral Inversion : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.inversion!=*pulProperty) {
! GETCONTEXT(device)->demodulator.inversion=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
--- 208,275 ----
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! DbgPrint("Nova-T: DemodSymbolRatePut (%d)\n", *pulProperty);
! // Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
+ // L64781_ParametersUpdated(device);
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(GuardInterval)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! GuardInterval guard_interval=(GuardInterval)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
! GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
! L64781_ParametersUpdated(device);
! }
! DbgPrint("Nova-T: DemodGuardIntervalPut(%i)\n",guard_interval);
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(TransmissionMode)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! TransmissionMode transmit_mode=(TransmissionMode)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
! GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
! L64781_ParametersUpdated(device);
! }
! DbgPrint("Nova-T: DemodTransmissionModePut(%i)\n",transmit_mode);
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! SpectralInversion inversion=(SpectralInversion)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
! GETCONTEXT(device)->demodulator.inversion=inversion;
! L64781_ParametersUpdated(device);
! }
! DbgPrint("Nova-T: DemodSpectralInversionPut (%d)\n", inversion);
return STATUS_SUCCESS;
}
***************
*** 400,404 ****
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("StartChanges()"));
status=BdaStartChanges(pIrp);
if(NT_SUCCESS(status)) {
--- 280,284 ----
NTSTATUS status;
! DbgPrint("Nova-T: StartChanges()\n");
status=BdaStartChanges(pIrp);
if(NT_SUCCESS(status)) {
***************
*** 411,415 ****
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("CheckChanges()"));
status=BdaCheckChanges(pIrp);
if(NT_SUCCESS(status)) {
--- 291,295 ----
NTSTATUS status;
! DbgPrint("Nova-T: CheckChanges()\n");
status=BdaCheckChanges(pIrp);
if(NT_SUCCESS(status)) {
***************
*** 420,460 ****
NTSTATUS FilterCommitChanges(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OPTIONAL PVOID pvIgnored)
{
! NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("CommitChanges()"));
!
! PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
!
! if(device != NULL && GETCONTEXT(device) != NULL) {
! // we will always reset the setting on moving out of stop
! // so don't bother updating the hardware if we are stopped
! if(GETCONTEXT(device)->cur_state != KSSTATE_STOP) {
! // make sure we don't try and access the i2c bus at the same
! // time as the monitoring thread
! ExAcquireFastMutex(&GETCONTEXT(device)->i2cMutex);
! // Commit alterations only if there are changes
! if(GETCONTEXT(device)->tuner.ChangeOutstanding == TRUE) {
! Tuner_SetFrequency(device);
! }
! if(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE) {
! L64781_UpdateParameters(device);
! }
! ExReleaseFastMutex(&GETCONTEXT(device)->i2cMutex);
! }
! }
return BdaCommitChanges(pIrp);
}
-
NTSTATUS FilterGetChangeState(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OUT PULONG pulChangeState)
{
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
- PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
! _DbgPrintF(DEBUGLVL_TERSE, ("GetChangeState()"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
! if(NT_SUCCESS(status) && device != NULL && GETCONTEXT(device) != NULL) {
! if((topologyChangeState==BDA_CHANGES_PENDING)||
! (GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE)||
! (GETCONTEXT(device)->tuner.ChangeOutstanding == TRUE)) {
*pulChangeState=BDA_CHANGES_PENDING;
} else {
--- 300,317 ----
NTSTATUS FilterCommitChanges(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OPTIONAL PVOID pvIgnored)
{
! DbgPrint("Nova-T: CommitChanges()\n");
! // Validate alterations
! // Commit alterations
return BdaCommitChanges(pIrp);
}
NTSTATUS FilterGetChangeState(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OUT PULONG pulChangeState)
{
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
! DbgPrint("Nova-T: GetChangeState()\n");
status=BdaGetChangeState(pIrp,&topologyChangeState);
! if(NT_SUCCESS(status)) {
! if((topologyChangeState==BDA_CHANGES_PENDING)/*||(pFilter->m_BdaChangeState==BDA_CHANGES_PENDING)*/) {
*pulChangeState=BDA_CHANGES_PENDING;
} else {
***************
*** 467,486 ****
/*****************************************************************************\
* $Log$
! * Revision 1.7 2003/03/07 08:04:11 adcockj
! * Temp remove monitoring thread
! *
! * Revision 1.6 2003/03/06 17:48:42 adcockj
! * Added TPS change monitoring thread
! *
! * Revision 1.5 2003/03/04 08:02:19 adcockj
! * Interim Checkin
! *
! * Revision 1.4 2003/02/28 17:28:23 adcockj
! * Removed nelines from debug prints
! *
! * Revision 1.3 2003/02/27 16:50:52 adcockj
! * Tidy up debug logging ready for release
! * Make changes only on Commit method
! * Extra logging in Checked build
*
* Revision 1.2 2003/02/17 11:07:11 adcockj
--- 324,329 ----
/*****************************************************************************\
* $Log$
! * Revision 1.8 2003/04/26 09:40:50 adcockj
! * Reverted back to original code
*
* Revision 1.2 2003/02/17 11:07:11 adcockj
Index: automation.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** automation.h 6 Mar 2003 17:48:42 -0000 1.3
--- automation.h 26 Apr 2003 09:40:50 -0000 1.4
***************
*** 10,37 ****
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty);
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty);
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty);
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty);
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty);
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty);
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty);
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty);
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty);
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty);
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty);
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty);
// For filter
--- 10,41 ----
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define TunerSignalStrengthPut NULL
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define TunerSignalPresentPut NULL
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define DemodSignalQualityPut NULL
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define DemodSignalLockedPut NULL
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
// For filter
Index: debug.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/debug.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** debug.cpp 4 Mar 2003 08:02:20 -0000 1.3
--- debug.cpp 26 Apr 2003 09:40:50 -0000 1.4
***************
*** 24,30 ****
#include "debug.h"
- #pragma const_seg("PAGECONST")
- #pragma code_seg("PAGE")
-
const char *data="HNTbda";
--- 24,27 ----
***************
*** 93,98 ****
/*****************************************************************************\
* $Log$
! * Revision 1.3 2003/03/04 08:02:20 adcockj
! * Interim Checkin
*
* Revision 1.2 2003/02/17 11:07:12 adcockj
--- 90,95 ----
/*****************************************************************************\
* $Log$
! * Revision 1.4 2003/04/26 09:40:50 adcockj
! * Reverted back to original code
*
* Revision 1.2 2003/02/17 11:07:12 adcockj
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** device.cpp 7 Apr 2003 07:00:47 -0000 1.10
--- device.cpp 26 Apr 2003 09:40:51 -0000 1.11
***************
*** 25,32 ****
#include "saa7146.h"
- #pragma const_seg()
- #pragma code_seg()
-
-
#if PAGE_SIZE!=SAA7146_PAGE_SIZE
#error This driver currently requires the architecture page size to be equal to the SAA7146 page size.
--- 25,28 ----
***************
*** 51,55 ****
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceAdd()"));
// Allocate context storage
device->Context=ExAllocatePoolWithTag(NonPagedPool,sizeof(DEVICE_CONTEXT),'ECIM');
--- 47,51 ----
NTSTATUS result;
! DbgPrint("Nova-T: DeviceAdd()\n");
// Allocate context storage
device->Context=ExAllocatePoolWithTag(NonPagedPool,sizeof(DEVICE_CONTEXT),'ECIM');
***************
*** 58,69 ****
if(result!=STATUS_SUCCESS) ExFreePool(device->Context);
KeInitializeDpc(&GETCONTEXT(device)->dpc,DeviceDPCRoutine,device);
- ExInitializeFastMutex(&GETCONTEXT(device)->i2cMutex);
- KeInitializeEvent(&GETCONTEXT(device)->monitorThreadKill, NotificationEvent, FALSE);
- GETCONTEXT(device)->monitorThread = NULL;
// Prepare tuner type and I2C addresses, assuming they're always the same on Nova-T boards
GETCONTEXT(device)->demod_address=I2C_L64781;
GETCONTEXT(device)->tuner_address=I2C_TUNER;
GETCONTEXT(device)->tuner.type=TUNER_TSA5060;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceAdd() complete"));
// Done
return result;
--- 54,62 ----
if(result!=STATUS_SUCCESS) ExFreePool(device->Context);
KeInitializeDpc(&GETCONTEXT(device)->dpc,DeviceDPCRoutine,device);
// Prepare tuner type and I2C addresses, assuming they're always the same on Nova-T boards
GETCONTEXT(device)->demod_address=I2C_L64781;
GETCONTEXT(device)->tuner_address=I2C_TUNER;
GETCONTEXT(device)->tuner.type=TUNER_TSA5060;
! DbgPrint("Nova-T: DeviceAdd() complete\n");
// Done
return result;
***************
*** 71,75 ****
VOID DeviceRemove(IN PKSDEVICE device,IN PIRP irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceRemove()"));
}
--- 64,68 ----
VOID DeviceRemove(IN PKSDEVICE device,IN PIRP irp)
{
! DbgPrint("Nova-T: DeviceRemove()\n");
}
***************
*** 79,83 ****
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStart()"));
// Search for memory to map
for(i=0,mem=-1,interrupt=-1;(i<translatedResources->List[0].PartialResourceList.Count)&&((mem==-1)||(interrupt==-1));i++) {
--- 72,76 ----
NTSTATUS result;
! DbgPrint("Nova-T: DeviceStart()\n");
// Search for memory to map
for(i=0,mem=-1,interrupt=-1;(i<translatedResources->List[0].PartialResourceList.Count)&&((mem==-1)||(interrupt==-1));i++) {
***************
*** 164,168 ****
return result;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStart() complete"));
// Ready!
return STATUS_SUCCESS;
--- 157,161 ----
return result;
}
! DbgPrint("Nova-T: DeviceStart() complete\n");
// Ready!
return STATUS_SUCCESS;
***************
*** 173,179 ****
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop()"));
! // confirm that the monitoring thread has stopped
! //StopMonitoringThread(device);
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
--- 166,170 ----
int i;
! DbgPrint("Nova-T: DeviceStop()\n");
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
***************
*** 189,193 ****
// Unmap memory
MmUnmapIoSpace(GETCONTEXT(device)->pci_memory,GETCONTEXT(device)->pci_size);
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop() complete"));
}
--- 180,184 ----
// Unmap memory
MmUnmapIoSpace(GETCONTEXT(device)->pci_memory,GETCONTEXT(device)->pci_size);
! DbgPrint("Nova-T: DeviceStop() complete\n");
}
***************
*** 198,202 ****
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("FilterCreate()"));
Filter->Context=KsFilterGetDevice(Filter);
if((Filter->Context==NULL)||(((PKSDEVICE)Filter->Context)->Context==NULL)) return STATUS_DEVICE_NOT_CONNECTED;
--- 189,193 ----
NTSTATUS result;
! DbgPrint("Nova-T: FilterCreate()\n");
Filter->Context=KsFilterGetDevice(Filter);
if((Filter->Context==NULL)||(((PKSDEVICE)Filter->Context)->Context==NULL)) return STATUS_DEVICE_NOT_CONNECTED;
***************
*** 212,216 ****
NTSTATUS FilterClose(IN PKSFILTER Filter,IN PIRP Irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("FilterClose()"));
BdaUninitFilter(Filter);
// Shut down anything still going on
--- 203,207 ----
NTSTATUS FilterClose(IN PKSFILTER Filter,IN PIRP Irp)
{
! DbgPrint("Nova-T: FilterClose()\n");
BdaUninitFilter(Filter);
// Shut down anything still going on
***************
*** 234,292 ****
return STATUS_SUCCESS;
}
- VOID MonitorThreadProc(IN PKSDEVICE device)
- {
- NTSTATUS result;
- while(TRUE) {
- LARGE_INTEGER TimeOut;
- // hopefully this is half a second and we'll try not to use up too much
- // processor while in here but we need to check if we need to update
- // the demod parameters based on a newly received TPS block
- // we could also check for errors and possibly AFC here as well
- TimeOut.QuadPart = -5000000;
- result=KeWaitForSingleObject(&GETCONTEXT(device)->monitorThreadKill, Executive, KernelMode, FALSE, &TimeOut);
- if(result==STATUS_TIMEOUT) {
- // make sure we don't try and access the i2c bus at the same
- // time as the user is trying to retune
- ExAcquireFastMutex(&GETCONTEXT(device)->i2cMutex);
- BOOL GotUpdate=L64781_CheckForTPSUpdate(device);
- ExReleaseFastMutex(&GETCONTEXT(device)->i2cMutex);
- if(GotUpdate==TRUE) {
- break;
- }
- }
- // if we exited the above for any other reason then
- // get out of this thread as either we have been signaled or
- // there is a problem
- else {
- break;
- }
- }
- PsTerminateSystemThread(STATUS_SUCCESS);
- }
- #pragma code_seg("page")
- void StartMonitoringThread(IN PKSDEVICE device)
- {
- NTSTATUS result;
- HANDLE hThread;
- KeClearEvent(&GETCONTEXT(device)->monitorThreadKill);
- result = PsCreateSystemThread(&hThread, 0L,
- NULL, NULL, NULL, (PKSTART_ROUTINE)MonitorThreadProc, device);
- if (!NT_SUCCESS(result)) {
- PrintString(device,"StartMonitoringThread: Failed to start thread",result);
- return;
- }
- ObReferenceObjectByHandle(hThread, THREAD_ALL_ACCESS, NULL, KernelMode, (PVOID*) &GETCONTEXT(device)->monitorThread, NULL);
- ZwClose(hThread);
- return;
- }
- void StopMonitoringThread(IN PKSDEVICE device)
- {
- if(GETCONTEXT(device)->monitorThread != NULL) {
- KeSetEvent(&GETCONTEXT(device)->monitorThreadKill, 0, FALSE);
- KeWaitForSingleObject(&GETCONTEXT(device)->monitorThread, Executive, KernelMode, FALSE, NULL);
- ObDereferenceObject(&GETCONTEXT(device)->monitorThread);
- GETCONTEXT(device)->monitorThread = NULL;
- }
- }
NTSTATUS OutputSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
--- 225,228 ----
***************
*** 304,312 ****
else if(FromState==KSSTATE_RUN) j="Run";
else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("Changed state from %s to %s",j,i));
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
- Tuner_SetFrequency((PKSDEVICE)Pin->Context);
- L64781_UpdateParameters((PKSDEVICE)Pin->Context);
NTSTATUS result=SAA7146_StartStream((PKSDEVICE)Pin->Context);
if(result!=STATUS_SUCCESS) {
--- 240,246 ----
else if(FromState==KSSTATE_RUN) j="Run";
else j="Unknown";
! DbgPrint("Nova-T: Changed state from %s to %s\n",j,i);
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
NTSTATUS result=SAA7146_StartStream((PKSDEVICE)Pin->Context);
if(result!=STATUS_SUCCESS) {
***************
*** 314,334 ****
return result;
}
! //StartMonitoringThread((PKSDEVICE)Pin->Context);
! }
!
! if((ToState==KSSTATE_RUN)&&(FromState==KSSTATE_PAUSE)) {
! //StopMonitoringThread((PKSDEVICE)Pin->Context);
! }
!
! if((ToState==KSSTATE_PAUSE)&&(FromState==KSSTATE_RUN)) {
! //StartMonitoringThread((PKSDEVICE)Pin->Context);
! //L64781_UpdateParameters((PKSDEVICE)Pin->Context);
}
!
! if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) {
! SAA7146_StopStream((PKSDEVICE)Pin->Context);
! }
GETCONTEXT(Pin->Context)->cur_state=ToState;
! _DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
return STATUS_SUCCESS;
}
--- 248,259 ----
return result;
}
! // Temp
! L64781_ParametersUpdated((PKSDEVICE)Pin->Context);
! Tuner_SetFrequency((PKSDEVICE)Pin->Context);
! // And now, continue
}
! if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
! DbgPrint("Nova-T: State changed!\n");
return STATUS_SUCCESS;
}
***************
*** 336,364 ****
/*****************************************************************************\
* $Log$
! * Revision 1.10 2003/04/07 07:00:47 adcockj
! * Synced to linux driver
! *
! * Revision 1.9 2003/03/17 21:21:53 adcockj
! * Fixes for new streaming code
! *
! * Revision 1.8 2003/03/10 18:36:21 adcockj
! * Changes to ties up to chip spec more closely
! *
! * Revision 1.7 2003/03/07 08:04:12 adcockj
! * Temp remove monitoring thread
! *
! * Revision 1.6 2003/03/06 17:48:42 adcockj
! * Added TPS change monitoring thread
! *
! * Revision 1.5 2003/03/04 08:02:20 adcockj
! * Interim Checkin
! *
! * Revision 1.4 2003/02/28 17:28:23 adcockj
! * Removed nelines from debug prints
! *
! * Revision 1.3 2003/02/27 16:50:52 adcockj
! * Tidy up debug logging ready for release
! * Make changes only on Commit method
! * Extra logging in Checked build
*
* Revision 1.2 2003/02/17 11:07:12 adcockj
--- 261,266 ----
/*****************************************************************************\
* $Log$
! * Revision 1.11 2003/04/26 09:40:51 adcockj
! * Reverted back to original code
*
* Revision 1.2 2003/02/17 11:07:12 adcockj
Index: device.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** device.h 26 Apr 2003 09:34:52 -0000 1.6
--- device.h 26 Apr 2003 09:40:51 -0000 1.7
***************
*** 25,35 ****
KSSTATE cur_state;
int switcher;
- unsigned long lastcopied;
int pv_error;
int lost_error;
int counter;
- KEVENT monitorThreadKill;
- PKTHREAD monitorThread;
- FAST_MUTEX i2cMutex;
// I2C bus data
unsigned char demod_address; // Address of L64781 demodulator
--- 25,31 ----
***************
*** 40,44 ****
DUMMY_DATA dummy;
} DEVICE_CONTEXT;
!
#define GETCONTEXT(x) ((DEVICE_CONTEXT*)(((PKSDEVICE)(x))->Context))
--- 36,40 ----
DUMMY_DATA dummy;
} DEVICE_CONTEXT;
!
#define GETCONTEXT(x) ((DEVICE_CONTEXT*)(((PKSDEVICE)(x))->Context))
***************
*** 67,72 ****
NTSTATUS OutputClose(IN PKSPIN Pin,IN PIRP Irp);
NTSTATUS OutputSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState);
-
- void StopMonitoringThread(IN PKSDEVICE device);
#endif // __DEVICE_H__
--- 63,66 ----
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** driver.cpp 7 Apr 2003 07:00:49 -0000 1.9
--- driver.cpp 26 Apr 2003 09:40:51 -0000 1.10
***************
*** 25,32 ****
#include "automation.h"
- #pragma const_seg("PAGECONST")
- #pragma code_seg("PAGE")
-
-
extern const KS_DATARANGE_BDA_ANTENNA AntennaIn;
--- 25,28 ----
***************
*** 69,77 ****
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(
TunerSignalStrengthGet,
! NULL
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(
TunerSignalPresentGet,//CAntennaPin::GetSignalStatus,
! NULL
),
};
--- 65,73 ----
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(
TunerSignalStrengthGet,
! TunerSignalStrengthPut
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(
TunerSignalPresentGet,//CAntennaPin::GetSignalStatus,
! TunerSignalPresentPut
),
};
***************
*** 107,115 ****
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(
DemodSignalQualityGet,
! NULL
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(
DemodSignalLockedGet,//CTransportPin::GetSignalStatus,
! NULL
),
};
--- 103,111 ----
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(
DemodSignalQualityGet,
! DemodSignalQualityPut
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(
DemodSignalLockedGet,//CTransportPin::GetSignalStatus,
! DemodSignalLockedPut
),
};
***************
*** 180,206 ****
/* For filter */
- DEFINE_KSPROPERTY_TABLE(FilterTopologyProperties) {
- DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(BdaPropertyNodeTypes,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(BdaPropertyPinTypes,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(BdaPropertyTemplateConnections,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(BdaPropertyNodeMethods,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(BdaPropertyNodeProperties,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(BdaPropertyNodeEvents,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(BdaPropertyGetControllingPinId,NULL),
- DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(BdaPropertyNodeDescriptors,NULL),
- };
-
-
- DEFINE_KSPROPERTY_SET_TABLE(FilterProperties) {
-
- DEFINE_KSPROPERTY_SET
- (
- &KSPROPSETID_BdaTopology,
- SIZEOF_ARRAY(FilterTopologyProperties),
- FilterTopologyProperties,
- 0, NULL
- ),
- };
-
DEFINE_KSMETHOD_TABLE(FilterConfiguration) {
DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(BdaMethodCreateTopology,NULL),
--- 176,179 ----
***************
*** 264,282 ****
NTSTATUS AntennaSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
{
! char *i,*j;
! if(ToState==KSSTATE_STOP) i="Stop";
! else if(ToState==KSSTATE_ACQUIRE) i="Acquire";
! else if(ToState==KSSTATE_PAUSE) i="Pause";
! else if(ToState==KSSTATE_RUN) i="Run";
! else i="Unknown";
! if(FromState==KSSTATE_STOP) j="Stop";
! else if(FromState==KSSTATE_ACQUIRE) j="Acquire";
! else if(FromState==KSSTATE_PAUSE) j="Pause";
! else if(FromState==KSSTATE_RUN) j="Run";
! else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("AntennaSetDeviceState called from %s to %s",j,i));
}
return STATUS_SUCCESS;
}
--- 237,257 ----
NTSTATUS AntennaSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
+ /*
{
! int i,j;
! if(ToState==KSSTATE_STOP) i=0;
! else if(ToState==KSSTATE_ACQUIRE) i=1;
! else if(ToState==KSSTATE_PAUSE) i=2;
! else if(ToState==KSSTATE_RUN) i=3;
! else i=15;
! if(FromState==KSSTATE_STOP) j=0;
! else if(FromState==KSSTATE_ACQUIRE) j=1;
! else if(FromState==KSSTATE_PAUSE) j=2;
! else if(FromState==KSSTATE_RUN) j=3;
! else j=15;
! PrintString((PKSDEVICE)Pin->Context,"AntennaSetDeviceState: Changed state!",(i<<4)|j);
}
+ */
return STATUS_SUCCESS;
}
***************
*** 304,309 ****
NTSTATUS OutputProcess(IN PKSPIN Pin)
{
! return SAA7134_OutputProcess(Pin);
! //return STATUS_SUCCESS;
}
--- 279,283 ----
NTSTATUS OutputProcess(IN PKSPIN Pin)
{
! return STATUS_SUCCESS;
}
***************
*** 314,318 ****
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ AntennaSetDeviceState, // This is meant to say antenna
/* Connect */ NULL,
/* Disconnect */ NULL,
--- 288,292 ----
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ OutputSetDeviceState, // This is meant to say output
/* Connect */ NULL,
/* Disconnect */ NULL,
***************
*** 325,329 ****
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ OutputSetDeviceState, // This is meant to say output
/* Connect */ NULL,
/* Disconnect */ NULL,
--- 299,303 ----
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ AntennaSetDeviceState, // This is meant to say antenna
/* Connect */ NULL,
/* Disconnect */ NULL,
***************
*** 415,420 ****
SIZEOF_ARRAY(StreamInterface),
StreamInterface,
! 0,
! NULL,
SIZEOF_ARRAY(OutputFormat),
OutputFormat,
--- 389,393 ----
SIZEOF_ARRAY(StreamInterface),
StreamInterface,
! 0,NULL,
SIZEOF_ARRAY(OutputFormat),
OutputFormat,
***************
*** 426,430 ****
},
KSPIN_FLAG_FIXED_FORMAT|/*KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT|KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING|*/
! KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING|KSPIN_FLAG_CRITICAL_PROCESSING,
1,
1,
--- 399,403 ----
},
KSPIN_FLAG_FIXED_FORMAT|/*KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT|KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING|...
[truncated message content] |
|
From: <ad...@us...> - 2003-04-26 09:34:59
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv29750
Modified Files:
device.h l64781.cpp saa7146.cpp
Log Message:
My last set of changes to try and resolve my issue with tuning
Index: device.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** device.h 7 Mar 2003 08:04:13 -0000 1.5
--- device.h 26 Apr 2003 09:34:52 -0000 1.6
***************
*** 25,28 ****
--- 25,29 ----
KSSTATE cur_state;
int switcher;
+ unsigned long lastcopied;
int pv_error;
int lost_error;
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** l64781.cpp 7 Apr 2003 16:28:05 -0000 1.11
--- l64781.cpp 26 Apr 2003 09:34:52 -0000 1.12
***************
*** 112,115 ****
--- 112,116 ----
PULONG pulData;
+ return Default;
pPartialValueInfo=(PKEY_VALUE_PARTIAL_INFORMATION) rgulValueInfo;
pulData=(PULONG)pPartialValueInfo->Data;
***************
*** 465,468 ****
--- 466,472 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.12 2003/04/26 09:34:52 adcockj
+ * My last set of changes to try and resolve my issue with tuning
+ *
* Revision 1.11 2003/04/07 16:28:05 adcockj
* Added registry setting of defaults and changed register setting order
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** saa7146.cpp 7 Apr 2003 07:00:50 -0000 1.9
--- saa7146.cpp 26 Apr 2003 09:34:53 -0000 1.10
***************
*** 77,80 ****
--- 77,81 ----
GETCONTEXT(device)->pv_error=0; // Number of Protection Violation errors
GETCONTEXT(device)->switcher=0; // Switches buffers
+ GETCONTEXT(device)->lastcopied=0;
GETCONTEXT(device)->lost_error=0; // Indicates lost buffers due to kernel not processing fast enough
GETCONTEXT(device)->counter=0;
***************
*** 82,86 ****
for(i=0;i<PAGE_ALLOCATE;i++) RtlZeroMemory(GETCONTEXT(device)->dma_pages[i],0x1000);
DeviceWriteRegister32(device,REG_PCI_BT_V1,0x001c0000);
! DeviceWriteRegister32(device,REG_DD1_INIT,DD1_PORTA(DD1_FIDESx_FALLING|DD1_SYNC_x_110|DD1_SIO_x_00)|DD1_PORTB(DD1_FIDESx_NOINT|DD1_SYNC_x_010|DD1_SIO_x_00));
DeviceWriteRegister32(device,REG_MC2,SET_BITS(MC2_UPLD_D1_A|MC2_UPLD_D1_B));
DeviceWriteRegister32(device,REG_BRS_CONTROL,0x60000000); // Hmm.
--- 83,88 ----
for(i=0;i<PAGE_ALLOCATE;i++) RtlZeroMemory(GETCONTEXT(device)->dma_pages[i],0x1000);
DeviceWriteRegister32(device,REG_PCI_BT_V1,0x001c0000);
! //DeviceWriteRegister32(device,REG_DD1_INIT,DD1_PORTA(DD1_FIDESx_BOTH|DD1_SYNC_x_110|DD1_SIO_x_00)|DD1_PORTB(DD1_FIDESx_BOTH|DD1_SYNC_x_010|DD1_SIO_x_00));
! DeviceWriteRegister32(device,REG_DD1_INIT,0x02000600);
DeviceWriteRegister32(device,REG_MC2,SET_BITS(MC2_UPLD_D1_A|MC2_UPLD_D1_B));
DeviceWriteRegister32(device,REG_BRS_CONTROL,0x60000000); // Hmm.
***************
*** 91,96 ****
DeviceWriteRegister32(device,REG_BASEEVEN3,TS_WIDTH*TS_HEIGHT/2);
DeviceWriteRegister32(device,REG_PROTADDR3,TS_WIDTH*TS_HEIGHT);
DeviceWriteRegister32(device,REG_PITCH3,TS_WIDTH);
- DeviceWriteRegister32(device,REG_BASEPAGE3,GETCONTEXT(device)->page_address.LowPart|DMA_ME1|0xB0);
DeviceWriteRegister32(device,REG_NUM_LINE_BYTE3,((TS_HEIGHT/2)<<16)|TS_WIDTH);
DeviceWriteRegister32(device,REG_MC2,SET_BITS(MC2_UPLD_DMA3));
--- 93,98 ----
DeviceWriteRegister32(device,REG_BASEEVEN3,TS_WIDTH*TS_HEIGHT/2);
DeviceWriteRegister32(device,REG_PROTADDR3,TS_WIDTH*TS_HEIGHT);
+ DeviceWriteRegister32(device,REG_BASEPAGE3,GETCONTEXT(device)->page_address.LowPart|DMA_ME1|0x90);
DeviceWriteRegister32(device,REG_PITCH3,TS_WIDTH);
DeviceWriteRegister32(device,REG_NUM_LINE_BYTE3,((TS_HEIGHT/2)<<16)|TS_WIDTH);
DeviceWriteRegister32(device,REG_MC2,SET_BITS(MC2_UPLD_DMA3));
***************
*** 112,117 ****
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)&~IR_V_PE); // VPE interrupt off
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)&~IR_FIDB); // FIDB interrupt off
! if(GETCONTEXT(device)->pv_error>0) PrintString(device,"Protection Violation errors occurred during run",GETCONTEXT(device)->pv_error);
! if(GETCONTEXT(device)->lost_error>0) PrintString(device,"Missed some interrupts during run",GETCONTEXT(device)->lost_error);
PrintString(device,"Stopped stream, packets sent:",GETCONTEXT(device)->counter);
}
--- 114,119 ----
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)&~IR_V_PE); // VPE interrupt off
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)&~IR_FIDB); // FIDB interrupt off
! PrintString(device,"Protection Violation errors occurred during run",GETCONTEXT(device)->pv_error);
! PrintString(device,"Missed some interrupts during run",GETCONTEXT(device)->lost_error);
PrintString(device,"Stopped stream, packets sent:",GETCONTEXT(device)->counter);
}
***************
*** 127,132 ****
// Tell chip which half isn't being used
GETCONTEXT(device)->switcher^=1;
! DeviceWriteRegister32(device,REG_DD1_INIT,DD1_PORTA(DD1_SYNC_x_110|(GETCONTEXT(device)->switcher?DD1_FIDESx_RISING:DD1_FIDESx_FALLING))|DD1_PORTB(DD1_SYNC_x_010));
! DeviceWriteRegister32(device,REG_MC2,SET_BITS(MC2_UPLD_D1_A|MC2_UPLD_D1_B));
// Queue DPC call to be run when kernel IRQL gets better
if((GETCONTEXT(device)->cur_state==KSSTATE_RUN)/*&&(((unsigned char**)GETCONTEXT(device)->dma_pages)[table_start][table_offset]==0x47)*/)
--- 129,134 ----
// Tell chip which half isn't being used
GETCONTEXT(device)->switcher^=1;
! //DeviceWriteRegister32(device,REG_DD1_INIT,DD1_PORTA(DD1_SYNC_x_110|(GETCONTEXT(device)->switcher?DD1_FIDESx_RISING:DD1_FIDESx_FALLING))|DD1_PORTB(DD1_SYNC_x_010));
! //DeviceWriteRegister32(device,REG_MC2,SET_BITS(MC2_UPLD_D1_A|MC2_UPLD_D1_B));
// Queue DPC call to be run when kernel IRQL gets better
if((GETCONTEXT(device)->cur_state==KSSTATE_RUN)/*&&(((unsigned char**)GETCONTEXT(device)->dma_pages)[table_start][table_offset]==0x47)*/)
***************
*** 188,192 ****
offset=(int)SystemArgument2;
stream_pointer=KsPinGetLeadingEdgeStreamPointer(GETCONTEXT(device)->pin_out,KSSTREAM_POINTER_STATE_LOCKED);
! if(stream_pointer!=NULL) {
// packet=(unsigned char*)ExAllocatePool(NonPagedPool,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT);
// outsize=TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT;
--- 190,194 ----
offset=(int)SystemArgument2;
stream_pointer=KsPinGetLeadingEdgeStreamPointer(GETCONTEXT(device)->pin_out,KSSTREAM_POINTER_STATE_LOCKED);
! if(stream_pointer!=NULL && stream_pointer->OffsetOut.Remaining >= (TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)) {
// packet=(unsigned char*)ExAllocatePool(NonPagedPool,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT);
// outsize=TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT;
***************
*** 209,212 ****
--- 211,218 ----
GETCONTEXT(device)->counter++;
}
+ else
+ {
+ GETCONTEXT(device)->lost_error++;
+ }
// result=KsPinSubmitFrame(GETCONTEXT(device)->pin_out,packet,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,NULL,NULL);
// if(result==STATUS_SUCCESS) GETCONTEXT(device)->counter++;
***************
*** 218,255 ****
// Time to send some frames out
unsigned char *packet;
! int page,offset;
int size,copy,outsize;
PKSSTREAM_POINTER stream_pointer;
PKSDEVICE device = KsPinGetDevice(Pin);
! // Find out start address of memory to be sent
! if(GETCONTEXT(device)->switcher) {
! page=0;
! offset=0;
! } else {
! page=((TS_HEIGHT*TS_WIDTH)/2)/0x1000;
! offset=((TS_HEIGHT*TS_WIDTH)/2)%0x1000;
! }
! stream_pointer=KsPinGetLeadingEdgeStreamPointer(GETCONTEXT(device)->pin_out,KSSTREAM_POINTER_STATE_LOCKED);
! if(stream_pointer!=NULL) {
! packet=stream_pointer->OffsetOut.Data;
! size=0;
! while(size<(TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)) {
! copy=SAA7146_PAGE_SIZE-offset;
! if(copy>((TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)-size)) copy=(TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)-size;
! RtlCopyMemory(packet+size,((unsigned char*)(GETCONTEXT(device)->dma_pages[page]))+offset,copy);
! size+=copy;
! offset+=copy;
! if(offset==SAA7146_PAGE_SIZE) {
page++;
! offset=0;
! }
! }
- KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
- GETCONTEXT(device)->counter++;
- }
//_DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Got some data"));
return STATUS_PENDING;
--- 224,291 ----
// Time to send some frames out
unsigned char *packet;
! unsigned long page,offset;
int size,copy,outsize;
+ unsigned long dmapos;
PKSSTREAM_POINTER stream_pointer;
PKSDEVICE device = KsPinGetDevice(Pin);
! dmapos = DeviceReadRegister32(device,REG_PCI_VDP3);
! dmapos/=0x1000;
! if(dmapos > PAGE_ALLOCATE)
! {
! GETCONTEXT(device)->lost_error++;
! return STATUS_PENDING;
! }
!
! if(GETCONTEXT(device)->lastcopied > dmapos)
! {
! page = GETCONTEXT(device)->lastcopied;
!
! stream_pointer=KsPinGetLeadingEdgeStreamPointer(GETCONTEXT(device)->pin_out,KSSTREAM_POINTER_STATE_LOCKED);
! if(stream_pointer!=NULL && stream_pointer->OffsetOut.Remaining >= (unsigned long)((PAGE_ALLOCATE - page)* SAA7146_PAGE_SIZE)) {
! packet=stream_pointer->OffsetOut.Data;
! size=0;
! while(page < PAGE_ALLOCATE) {
! RtlCopyMemory(packet+size,((unsigned char*)(GETCONTEXT(device)->dma_pages[page])),SAA7146_PAGE_SIZE);
! size+=SAA7146_PAGE_SIZE;
page++;
! }
!
! KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,size,FALSE);
! GETCONTEXT(device)->counter++;
! }
! else
! {
! GETCONTEXT(device)->lost_error++;
! }
! GETCONTEXT(device)->lastcopied = 0;
! }
!
! if(GETCONTEXT(device)->lastcopied < dmapos)
! {
! page = GETCONTEXT(device)->lastcopied;
!
! stream_pointer=KsPinGetLeadingEdgeStreamPointer(GETCONTEXT(device)->pin_out,KSSTREAM_POINTER_STATE_LOCKED);
! if(stream_pointer!=NULL && stream_pointer->OffsetOut.Remaining >= (unsigned long)((dmapos - page)* SAA7146_PAGE_SIZE)) {
! packet=stream_pointer->OffsetOut.Data;
! size=0;
! while(page < dmapos) {
! RtlCopyMemory(packet+size,((unsigned char*)(GETCONTEXT(device)->dma_pages[page])),SAA7146_PAGE_SIZE);
! size+=SAA7146_PAGE_SIZE;
! page++;
! }
!
! KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,size,FALSE);
! GETCONTEXT(device)->counter++;
! }
! else
! {
! GETCONTEXT(device)->lost_error++;
! }
! GETCONTEXT(device)->lastcopied = dmapos;
! }
//_DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Got some data"));
return STATUS_PENDING;
***************
*** 413,416 ****
--- 449,455 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.10 2003/04/26 09:34:53 adcockj
+ * My last set of changes to try and resolve my issue with tuning
+ *
* Revision 1.9 2003/04/07 07:00:50 adcockj
* Synced to linux driver
|
|
From: <ad...@us...> - 2003-04-07 16:28:09
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv2829
Modified Files:
l64781.cpp l64781.h
Log Message:
Added registry setting of defaults and changed register setting order
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** l64781.cpp 7 Apr 2003 07:00:49 -0000 1.10
--- l64781.cpp 7 Apr 2003 16:28:05 -0000 1.11
***************
*** 101,106 ****
}
! // Functions for use by other parts
NTSTATUS L64781_Init(PKSDEVICE device)
{
--- 101,161 ----
}
! DWORD L64781_GetRegistryEntry(PKSDEVICE device, LPWSTR RegistryEntry, DWORD Default)
! {
! DWORD RetVal = Default;
! NTSTATUS Status = STATUS_SUCCESS;
! HANDLE hRegistry;
! UNICODE_STRING KeyName;
! ULONG rgulValueInfo[10];
! ULONG ulcbValueInfo;
! PKEY_VALUE_PARTIAL_INFORMATION pPartialValueInfo;
! PULONG pulData;
!
! pPartialValueInfo=(PKEY_VALUE_PARTIAL_INFORMATION) rgulValueInfo;
! pulData=(PULONG)pPartialValueInfo->Data;
!
! // Open the registry key for this device.
! Status=IoOpenDeviceRegistryKey(device->PhysicalDeviceObject,
! PLUGPLAY_REGKEY_DRIVER,
! STANDARD_RIGHTS_ALL,
! &hRegistry
! );
!
! if(!NT_SUCCESS(Status)){
! _DbgPrintF( DEBUGLVL_ERROR, ("Can't open device registry key %S.", RegistryEntry));
! return RetVal;
! }
! // Get the I2C address of the tuner chip.
! RtlInitUnicodeString(&KeyName, RegistryEntry);
!
! Status=ZwQueryValueKey(hRegistry,
! &KeyName,
! KeyValuePartialInformation,
! (PVOID)rgulValueInfo,
! sizeof(rgulValueInfo),
! &ulcbValueInfo
! );
!
! if(!NT_SUCCESS(Status)){
! _DbgPrintF(DEBUGLVL_ERROR, ("Item %s is not in registry returning default %d.", RegistryEntry, Default));
! return RetVal;
! }
+ // Make sure the date is of the correct type.
+ if(((pPartialValueInfo->Type != REG_DWORD) &&
+ (pPartialValueInfo->Type != REG_BINARY)) ||
+ (pPartialValueInfo->DataLength != sizeof(DWORD))){
+ _DbgPrintF(DEBUGLVL_ERROR, ("Item %s is wrong type returning default %d.", RegistryEntry, Default));
+ return RetVal;
+ }
+ RetVal=(DWORD)(*pulData);
+
+ ZwClose(hRegistry);
+
+ return RetVal;
+ }
+
+
+ // Functions for use by other parts
NTSTATUS L64781_Init(PKSDEVICE device)
{
***************
*** 109,123 ****
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise"));
// Initialise tuner structures to default
! data->tuner.frequency=481833;
data->tuner.freq_mult=1000;
! data->tuner.bandwidth=8;
data->tuner.ChangeOutstanding=FALSE;
! data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET;
! data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
! data->demodulator.modulation=BDA_MOD_64QAM;
! //data->demodulator.HP_coderate=BDA_BCC_RATE_3_4;
! //data->demodulator.modulation=BDA_MOD_16QAM;
! data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
! data->demodulator.guard_interval=BDA_GUARD_1_32;
data->demodulator.inversion=BDA_SPECTRAL_INVERSION_NORMAL;
data->demodulator.HierarchyInformation=HIERARCHY_NONE;
--- 164,176 ----
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise"));
// Initialise tuner structures to default
! data->tuner.frequency=L64781_GetRegistryEntry(device, L"DefaultFreq", 481833);
data->tuner.freq_mult=1000;
! data->tuner.bandwidth=L64781_GetRegistryEntry(device, L"Bandwidth", 8);
data->tuner.ChangeOutstanding=FALSE;
! data->demodulator.LP_coderate=(BinaryConvolutionCodeRate)L64781_GetRegistryEntry(device, L"LP_CodeRate", BDA_BCC_RATE_NOT_SET);
! data->demodulator.HP_coderate=(BinaryConvolutionCodeRate)L64781_GetRegistryEntry(device, L"HP_CodeRate", BDA_BCC_RATE_2_3);
! data->demodulator.modulation=(ModulationType)L64781_GetRegistryEntry(device, L"Modulation", BDA_MOD_64QAM);
! data->demodulator.transmit_mode=(TransmissionMode)L64781_GetRegistryEntry(device, L"TransmitMode", BDA_XMIT_MODE_2K);
! data->demodulator.guard_interval=(GuardInterval)L64781_GetRegistryEntry(device, L"Guard", BDA_GUARD_1_32);
data->demodulator.inversion=BDA_SPECTRAL_INVERSION_NORMAL;
data->demodulator.HierarchyInformation=HIERARCHY_NONE;
***************
*** 316,319 ****
--- 369,374 ----
break;
}
+ p_inverted=(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED);
+
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval));
***************
*** 330,341 ****
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write TPS %02x %02x %02x", val0x04, val0x05, val0x06));
- p_inverted=(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED);
-
- L64781_Apply_TPS(device);
L64781_Reset_AFC(device);
- // setup demod paramters that don't depend on the TPS settings
-
// From Linux source - Technical manual section 2.6.1, TIM_IIR_GAIN optimal values
L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3);
--- 385,391 ----
***************
*** 353,358 ****
L64781_WriteRegister(device,0x18,(init_freq>>16)&0xFF);
- // setup demod paramters that do depend on the TPS settings
-
L64781_UpdateSPIBias(device,p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_guardinterval,p_inverted);
--- 403,406 ----
***************
*** 365,368 ****
--- 413,418 ----
L64781_ReadRegister(device,0x01); // DTO
+ L64781_Apply_TPS(device);
+
data->demodulator.ChangeOutstanding = FALSE;
***************
*** 415,418 ****
--- 465,471 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.11 2003/04/07 16:28:05 adcockj
+ * Added registry setting of defaults and changed register setting order
+ *
* Revision 1.10 2003/04/07 07:00:49 adcockj
* Synced to linux driver
Index: l64781.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** l64781.h 7 Mar 2003 08:04:14 -0000 1.5
--- l64781.h 7 Apr 2003 16:28:05 -0000 1.6
***************
*** 35,38 ****
--- 35,39 ----
void L64781_UpdateParameters(PKSDEVICE device);
BOOL L64781_CheckForTPSUpdate(PKSDEVICE device);
+ DWORD L64781_GetRegistryEntry(PKSDEVICE device, LPWSTR RegistryEntry, DWORD Default);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
|
|
From: <ad...@us...> - 2003-04-07 07:01:05
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv3145
Modified Files:
device.cpp driver.cpp l64781.cpp saa7146.cpp tuner.cpp
Log Message:
Synced to linux driver
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** device.cpp 17 Mar 2003 21:21:53 -0000 1.9
--- device.cpp 7 Apr 2003 07:00:47 -0000 1.10
***************
*** 243,247 ****
// the demod parameters based on a newly received TPS block
// we could also check for errors and possibly AFC here as well
! TimeOut.QuadPart = 5000;
result=KeWaitForSingleObject(&GETCONTEXT(device)->monitorThreadKill, Executive, KernelMode, FALSE, &TimeOut);
if(result==STATUS_TIMEOUT) {
--- 243,247 ----
// the demod parameters based on a newly received TPS block
// we could also check for errors and possibly AFC here as well
! TimeOut.QuadPart = -5000000;
result=KeWaitForSingleObject(&GETCONTEXT(device)->monitorThreadKill, Executive, KernelMode, FALSE, &TimeOut);
if(result==STATUS_TIMEOUT) {
***************
*** 270,274 ****
HANDLE hThread;
KeClearEvent(&GETCONTEXT(device)->monitorThreadKill);
! result = PsCreateSystemThread(&hThread, THREAD_ALL_ACCESS,
NULL, NULL, NULL, (PKSTART_ROUTINE)MonitorThreadProc, device);
if (!NT_SUCCESS(result)) {
--- 270,274 ----
HANDLE hThread;
KeClearEvent(&GETCONTEXT(device)->monitorThreadKill);
! result = PsCreateSystemThread(&hThread, 0L,
NULL, NULL, NULL, (PKSTART_ROUTINE)MonitorThreadProc, device);
if (!NT_SUCCESS(result)) {
***************
*** 316,321 ****
//StartMonitoringThread((PKSDEVICE)Pin->Context);
}
! if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) {
//StopMonitoringThread((PKSDEVICE)Pin->Context);
SAA7146_StopStream((PKSDEVICE)Pin->Context);
}
--- 316,330 ----
//StartMonitoringThread((PKSDEVICE)Pin->Context);
}
!
! if((ToState==KSSTATE_RUN)&&(FromState==KSSTATE_PAUSE)) {
//StopMonitoringThread((PKSDEVICE)Pin->Context);
+ }
+
+ if((ToState==KSSTATE_PAUSE)&&(FromState==KSSTATE_RUN)) {
+ //StartMonitoringThread((PKSDEVICE)Pin->Context);
+ //L64781_UpdateParameters((PKSDEVICE)Pin->Context);
+ }
+
+ if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) {
SAA7146_StopStream((PKSDEVICE)Pin->Context);
}
***************
*** 327,330 ****
--- 336,342 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.10 2003/04/07 07:00:47 adcockj
+ * Synced to linux driver
+ *
* Revision 1.9 2003/03/17 21:21:53 adcockj
* Fixes for new streaming code
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** driver.cpp 17 Mar 2003 21:21:53 -0000 1.8
--- driver.cpp 7 Apr 2003 07:00:49 -0000 1.9
***************
*** 314,318 ****
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ OutputSetDeviceState, // This is meant to say output
/* Connect */ NULL,
/* Disconnect */ NULL,
--- 314,318 ----
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ AntennaSetDeviceState, // This is meant to say antenna
/* Connect */ NULL,
/* Disconnect */ NULL,
***************
*** 325,329 ****
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ AntennaSetDeviceState, // This is meant to say antenna
/* Connect */ NULL,
/* Disconnect */ NULL,
--- 325,329 ----
/* Reset */ NULL,
/* SetDataFormat */ NULL,
! /* SetDeviceState */ OutputSetDeviceState, // This is meant to say output
/* Connect */ NULL,
/* Disconnect */ NULL,
***************
*** 537,540 ****
--- 537,543 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.9 2003/04/07 07:00:49 adcockj
+ * Synced to linux driver
+ *
* Revision 1.8 2003/03/17 21:21:53 adcockj
* Fixes for new streaming code
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** l64781.cpp 17 Mar 2003 18:03:47 -0000 1.9
--- l64781.cpp 7 Apr 2003 07:00:49 -0000 1.10
***************
*** 67,73 ****
void L64781_Apply_TPS(PKSDEVICE device)
{
L64781_WriteRegister(device,0x2a,0x01);
- L64781_WriteRegister(device,0x2a,0x0a);
L64781_WriteRegister(device,0x2a,0x02);
}
--- 67,74 ----
void L64781_Apply_TPS(PKSDEVICE device)
{
+ L64781_WriteRegister(device,0x2a,0x00);
L64781_WriteRegister(device,0x2a,0x01);
L64781_WriteRegister(device,0x2a,0x02);
+ //L64781_WriteRegister(device,0x2a,0x00);
}
***************
*** 108,112 ****
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise"));
// Initialise tuner structures to default
! data->tuner.frequency=570000;
data->tuner.freq_mult=1000;
data->tuner.bandwidth=8;
--- 109,113 ----
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise"));
// Initialise tuner structures to default
! data->tuner.frequency=481833;
data->tuner.freq_mult=1000;
data->tuner.bandwidth=8;
***************
*** 132,136 ****
L64781_WriteRegister(device,0x0B,0x81); // Use internal ADC
L64781_WriteRegister(device,0x0C,0x84); // AGC loop gain, and polarity is positive
! L64781_WriteRegister(device,0x0D,0x8E); // Internal ADC outpus two's complement
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
--- 133,137 ----
L64781_WriteRegister(device,0x0B,0x81); // Use internal ADC
L64781_WriteRegister(device,0x0C,0x84); // AGC loop gain, and polarity is positive
! L64781_WriteRegister(device,0x0D,0x8C); // Internal ADC outpus two's complement
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
***************
*** 340,348 ****
L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3);
- ddfs_offset_fixed=0x4000-(ppm<<16)/p_bandwidth/1000000;
-
- L64781_WriteRegister(device,0x22,ddfs_offset_fixed&0xFF);
- L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
-
unsigned __int64 qwInitFreq=(unsigned __int64)((8-p_bandwidth)*1000000 + 8*ppm);
qwInitFreq*=(unsigned __int64)(1<<25);
--- 341,344 ----
***************
*** 361,364 ****
--- 357,365 ----
L64781_UpdateSPIBias(device,p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_guardinterval,p_inverted);
+ ddfs_offset_fixed=0x4000-(ppm<<16)/p_bandwidth/1000000;
+
+ L64781_WriteRegister(device,0x22,ddfs_offset_fixed&0xFF);
+ L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
+
L64781_ReadRegister(device,0x00); // Clear interrupt register
L64781_ReadRegister(device,0x01); // DTO
***************
*** 414,417 ****
--- 415,421 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.10 2003/04/07 07:00:49 adcockj
+ * Synced to linux driver
+ *
* Revision 1.9 2003/03/17 18:03:47 adcockj
* Updated stream handling
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** saa7146.cpp 17 Mar 2003 21:21:53 -0000 1.8
--- saa7146.cpp 7 Apr 2003 07:00:50 -0000 1.9
***************
*** 143,149 ****
// get the framework to call our output pin's process
! // function but not asynchronously as we need to clear out the
! // data before the next batch overwrites it
! KsPinAttemptProcessing(GETCONTEXT(device)->pin_out, TRUE);
return;
--- 143,148 ----
// get the framework to call our output pin's process
! // function asynchronously
! KsPinAttemptProcessing(GETCONTEXT(device)->pin_out, FALSE);
return;
***************
*** 253,256 ****
--- 252,256 ----
GETCONTEXT(device)->counter++;
}
+ //_DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Got some data"));
return STATUS_PENDING;
}
***************
*** 413,416 ****
--- 413,419 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.9 2003/04/07 07:00:50 adcockj
+ * Synced to linux driver
+ *
* Revision 1.8 2003/03/17 21:21:53 adcockj
* Fixes for new streaming code
Index: tuner.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** tuner.cpp 4 Mar 2003 08:02:22 -0000 1.5
--- tuner.cpp 7 Apr 2003 07:00:51 -0000 1.6
***************
*** 101,112 ****
unsigned char buffer[4];
I2C_INSTRUCTIONS i2c;
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
_DbgPrintF(DEBUGLVL_TERSE, ("Setting tuner frequency to %uHz (%u*%u)",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
! div=(unsigned __int32)(unsigned __int64)((36000000+bob)/166666);
! buffer[0]=(div>>8)&0x7F;
! buffer[1]=div&0xFF;
! buffer[2]=((div>>10)&0x60)|0x88;
! buffer[3]=0xC0;
i2c.address=GETCONTEXT(device)->tuner_address;
i2c.bRead=FALSE;
--- 101,123 ----
unsigned char buffer[4];
I2C_INSTRUCTIONS i2c;
+ unsigned char cfg, cpump, band_select;
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
_DbgPrintF(DEBUGLVL_TERSE, ("Setting tuner frequency to %uHz (%u*%u)",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
!
! div = (unsigned __int32)(unsigned __int64)(36125000 + bob) / 166666;
! cfg = 0x88;
!
! cpump = div < 175000 ? 2 : div < 390000 ? 1 :
! div < 470000 ? 2 : div < 750000 ? 1 : 3;
!
! band_select = div < 175000 ? 0x0e : div < 470000 ? 0x05 : 0x03;
!
! buffer[0] = (div >> 8) & 0x7f;
! buffer[1] = div & 0xff;
! buffer[2] = ((div >> 10) & 0x60) | cfg;
! buffer[3] = cpump | band_select;
!
!
i2c.address=GETCONTEXT(device)->tuner_address;
i2c.bRead=FALSE;
***************
*** 122,125 ****
--- 133,139 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.6 2003/04/07 07:00:51 adcockj
+ * Synced to linux driver
+ *
* Revision 1.5 2003/03/04 08:02:22 adcockj
* Interim Checkin
|
|
From: <ad...@us...> - 2003-03-17 21:22:00
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv10898
Modified Files:
device.cpp driver.cpp saa7146.cpp
Log Message:
Fixes for new streaming code
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** device.cpp 10 Mar 2003 18:36:21 -0000 1.8
--- device.cpp 17 Mar 2003 21:21:53 -0000 1.9
***************
*** 234,238 ****
return STATUS_SUCCESS;
}
- #pragma code_seg()
VOID MonitorThreadProc(IN PKSDEVICE device)
{
--- 234,237 ----
***************
*** 328,331 ****
--- 327,333 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.9 2003/03/17 21:21:53 adcockj
+ * Fixes for new streaming code
+ *
* Revision 1.8 2003/03/10 18:36:21 adcockj
* Changes to ties up to chip spec more closely
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** driver.cpp 17 Mar 2003 18:03:47 -0000 1.7
--- driver.cpp 17 Mar 2003 21:21:53 -0000 1.8
***************
*** 305,308 ****
--- 305,309 ----
{
return SAA7134_OutputProcess(Pin);
+ //return STATUS_SUCCESS;
}
***************
*** 414,418 ****
SIZEOF_ARRAY(StreamInterface),
StreamInterface,
! 0,NULL,
SIZEOF_ARRAY(OutputFormat),
OutputFormat,
--- 415,420 ----
SIZEOF_ARRAY(StreamInterface),
StreamInterface,
! 0,
! NULL,
SIZEOF_ARRAY(OutputFormat),
OutputFormat,
***************
*** 424,428 ****
},
KSPIN_FLAG_FIXED_FORMAT|/*KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT|KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING|*/
! KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING,
1,
1,
--- 426,430 ----
},
KSPIN_FLAG_FIXED_FORMAT|/*KSPIN_FLAG_DO_NOT_USE_STANDARD_TRANSPORT|KSPIN_FLAG_FRAMES_NOT_REQUIRED_FOR_PROCESSING|*/
! KSPIN_FLAG_DO_NOT_INITIATE_PROCESSING|KSPIN_FLAG_CRITICAL_PROCESSING,
1,
1,
***************
*** 466,470 ****
&FilterAutomation,
KSFILTER_DESCRIPTOR_VERSION,
! /*KSFILTER_FLAG_DISPATCH_LEVEL_PROCESSING*/0,//Flags
&KSNAME_Filter,
DEFINE_KSFILTER_PIN_DESCRIPTORS(PinDescriptors),
--- 468,472 ----
&FilterAutomation,
KSFILTER_DESCRIPTOR_VERSION,
! 0,//Flags
&KSNAME_Filter,
DEFINE_KSFILTER_PIN_DESCRIPTORS(PinDescriptors),
***************
*** 535,538 ****
--- 537,543 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.8 2003/03/17 21:21:53 adcockj
+ * Fixes for new streaming code
+ *
* Revision 1.7 2003/03/17 18:03:47 adcockj
* Updated stream handling
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** saa7146.cpp 17 Mar 2003 18:03:47 -0000 1.7
--- saa7146.cpp 17 Mar 2003 21:21:53 -0000 1.8
***************
*** 145,149 ****
// function but not asynchronously as we need to clear out the
// data before the next batch overwrites it
! KsPinAttemptProcessing(GETCONTEXT(device)->pin_out, FALSE);
return;
--- 145,149 ----
// function but not asynchronously as we need to clear out the
// data before the next batch overwrites it
! KsPinAttemptProcessing(GETCONTEXT(device)->pin_out, TRUE);
return;
***************
*** 252,260 ****
KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
GETCONTEXT(device)->counter++;
- return STATUS_SUCCESS;
}
! else {
! return STATUS_PENDING;
! }
}
--- 252,257 ----
KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
GETCONTEXT(device)->counter++;
}
! return STATUS_PENDING;
}
***************
*** 416,419 ****
--- 413,419 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.8 2003/03/17 21:21:53 adcockj
+ * Fixes for new streaming code
+ *
* Revision 1.7 2003/03/17 18:03:47 adcockj
* Updated stream handling
|
|
From: <ad...@us...> - 2003-03-17 18:03:51
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv15298
Modified Files:
driver.cpp l64781.cpp saa7146.cpp saa7146.h
Log Message:
Updated stream handling
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** driver.cpp 6 Mar 2003 17:48:43 -0000 1.6
--- driver.cpp 17 Mar 2003 18:03:47 -0000 1.7
***************
*** 304,308 ****
NTSTATUS OutputProcess(IN PKSPIN Pin)
{
! return STATUS_SUCCESS;
}
--- 304,308 ----
NTSTATUS OutputProcess(IN PKSPIN Pin)
{
! return SAA7134_OutputProcess(Pin);
}
***************
*** 535,538 ****
--- 535,541 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.7 2003/03/17 18:03:47 adcockj
+ * Updated stream handling
+ *
* Revision 1.6 2003/03/06 17:48:43 adcockj
* Added TPS change monitoring thread
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** l64781.cpp 10 Mar 2003 18:36:22 -0000 1.8
--- l64781.cpp 17 Mar 2003 18:03:47 -0000 1.9
***************
*** 201,209 ****
// this is accurate and should work for any ppm
! qwSPIBias=(__int64)(1512 * fec_tab[hp_coderate] * qam_tab[constellation]);
! qwSPIBias*=(__int64)((1<<10) * 32 * bandwidth);
! qwSPIBias*=(__int64)1000000;
! qwSPIBias/=(__int64)((fec_tab[hp_coderate] + 1) * (guard_tab[guardinterval]+32));
! qwSPIBias/=(__int64)(8 * (1000000 + ppm));
spi_bias = (unsigned __int32)qwSPIBias;
--- 201,209 ----
// this is accurate and should work for any ppm
! qwSPIBias=(unsigned __int64)(1512 * fec_tab[hp_coderate] * qam_tab[constellation]);
! qwSPIBias*=(unsigned __int64)((1<<10) * 32 * bandwidth);
! qwSPIBias*=(unsigned __int64)1000000;
! qwSPIBias/=(unsigned __int64)((fec_tab[hp_coderate] + 1) * (guard_tab[guardinterval]+32));
! qwSPIBias/=(unsigned __int64)(8 * (1000000 + ppm));
spi_bias = (unsigned __int32)qwSPIBias;
***************
*** 349,352 ****
--- 349,353 ----
qwInitFreq/=(unsigned __int64)(p_bandwidth*1000000);
init_freq=(unsigned __int32)qwInitFreq;
+
// From Linux source - This works up to 20000 ppm, it overflows if too large ppm!
//init_freq=(((8UL<<24)+(8UL<<19)/25*ppm/(15625/25))/p_bandwidth&0xFFFFFF);
***************
*** 413,416 ****
--- 414,420 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.9 2003/03/17 18:03:47 adcockj
+ * Updated stream handling
+ *
* Revision 1.8 2003/03/10 18:36:22 adcockj
* Changes to ties up to chip spec more closely
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** saa7146.cpp 7 Mar 2003 08:04:15 -0000 1.6
--- saa7146.cpp 17 Mar 2003 18:03:47 -0000 1.7
***************
*** 125,139 ****
void SAA7146_Interrupt_FIDB(PKSDEVICE device)
{
- // Time to send some frames out
- int table_start,table_offset;
-
- // Find out start address of memory to be sent
- if(GETCONTEXT(device)->switcher) {
- table_start=((TS_HEIGHT*TS_WIDTH)/2)/0x1000;
- table_offset=((TS_HEIGHT*TS_WIDTH)/2)%0x1000;
- } else {
- table_start=0;
- table_offset=0;
- }
// Tell chip which half isn't being used
GETCONTEXT(device)->switcher^=1;
--- 125,128 ----
***************
*** 142,146 ****
// Queue DPC call to be run when kernel IRQL gets better
if((GETCONTEXT(device)->cur_state==KSSTATE_RUN)/*&&(((unsigned char**)GETCONTEXT(device)->dma_pages)[table_start][table_offset]==0x47)*/)
! if(!KeInsertQueueDpc(&GETCONTEXT(device)->dpc,(LPVOID)table_start,(LPVOID)table_offset))
GETCONTEXT(device)->lost_error++;
}
--- 131,135 ----
// Queue DPC call to be run when kernel IRQL gets better
if((GETCONTEXT(device)->cur_state==KSSTATE_RUN)/*&&(((unsigned char**)GETCONTEXT(device)->dma_pages)[table_start][table_offset]==0x47)*/)
! if(!KeInsertQueueDpc(&GETCONTEXT(device)->dpc,(LPVOID)0,(LPVOID)0))
GETCONTEXT(device)->lost_error++;
}
***************
*** 149,152 ****
--- 138,151 ----
void SAA7146_DPCRoutine(PKDPC Dpc,PVOID DeferredContext,PVOID SystemArgument1,PVOID SystemArgument2)
{
+ PKSDEVICE device;
+
+ device=(PKSDEVICE)DeferredContext;
+
+ // get the framework to call our output pin's process
+ // function but not asynchronously as we need to clear out the
+ // data before the next batch overwrites it
+ KsPinAttemptProcessing(GETCONTEXT(device)->pin_out, FALSE);
+ return;
+
// DeferredContext == PKSDEVICE device
// SystemArgument1 == int table_start
***************
*** 179,184 ****
}
*/
! NTSTATUS result;
! PKSDEVICE device;
unsigned char *packet;
PKSSTREAM_POINTER stream_pointer;
--- 178,183 ----
}
*/
! //NTSTATUS result;
! //PKSDEVICE device;
unsigned char *packet;
PKSSTREAM_POINTER stream_pointer;
***************
*** 216,219 ****
--- 215,263 ----
}
+ NTSTATUS SAA7134_OutputProcess(IN PKSPIN Pin)
+ {
+ // Time to send some frames out
+ unsigned char *packet;
+ int page,offset;
+ int size,copy,outsize;
+ PKSSTREAM_POINTER stream_pointer;
+
+ PKSDEVICE device = KsPinGetDevice(Pin);
+
+ // Find out start address of memory to be sent
+ if(GETCONTEXT(device)->switcher) {
+ page=0;
+ offset=0;
+ } else {
+ page=((TS_HEIGHT*TS_WIDTH)/2)/0x1000;
+ offset=((TS_HEIGHT*TS_WIDTH)/2)%0x1000;
+ }
+
+ stream_pointer=KsPinGetLeadingEdgeStreamPointer(GETCONTEXT(device)->pin_out,KSSTREAM_POINTER_STATE_LOCKED);
+ if(stream_pointer!=NULL) {
+ packet=stream_pointer->OffsetOut.Data;
+ size=0;
+ while(size<(TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)) {
+ copy=SAA7146_PAGE_SIZE-offset;
+ if(copy>((TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)-size)) copy=(TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT)-size;
+ RtlCopyMemory(packet+size,((unsigned char*)(GETCONTEXT(device)->dma_pages[page]))+offset,copy);
+ size+=copy;
+ offset+=copy;
+ if(offset==SAA7146_PAGE_SIZE) {
+ page++;
+ offset=0;
+ }
+ }
+
+ KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
+ GETCONTEXT(device)->counter++;
+ return STATUS_SUCCESS;
+ }
+ else {
+ return STATUS_PENDING;
+ }
+ }
+
+
// I2C functions
***************
*** 372,375 ****
--- 416,422 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.7 2003/03/17 18:03:47 adcockj
+ * Updated stream handling
+ *
* Revision 1.6 2003/03/07 08:04:15 adcockj
* Temp remove monitoring thread
Index: saa7146.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** saa7146.h 17 Feb 2003 11:07:12 -0000 1.2
--- saa7146.h 17 Mar 2003 18:03:47 -0000 1.3
***************
*** 18,21 ****
--- 18,24 ----
void SAA7146_DPCRoutine(PKDPC Dpc,PVOID DeferredContext,PVOID SystemArgument1,PVOID SystemArgument2);
+ // actually copy the information to the stream
+ NTSTATUS SAA7134_OutputProcess(IN PKSPIN Pin);
+
// Control DMA from the demodulator input on the SAA7146
NTSTATUS SAA7146_StartStream(PKSDEVICE device);
|
|
From: <ad...@us...> - 2003-03-10 18:36:29
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv31190
Modified Files:
device.cpp l64781.cpp
Log Message:
Changes to ties up to chip spec more closely
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** device.cpp 7 Mar 2003 08:04:12 -0000 1.7
--- device.cpp 10 Mar 2003 18:36:21 -0000 1.8
***************
*** 308,311 ****
--- 308,313 ----
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
+ Tuner_SetFrequency((PKSDEVICE)Pin->Context);
+ L64781_UpdateParameters((PKSDEVICE)Pin->Context);
NTSTATUS result=SAA7146_StartStream((PKSDEVICE)Pin->Context);
if(result!=STATUS_SUCCESS) {
***************
*** 313,318 ****
return result;
}
- Tuner_SetFrequency((PKSDEVICE)Pin->Context);
- L64781_UpdateParameters((PKSDEVICE)Pin->Context);
//StartMonitoringThread((PKSDEVICE)Pin->Context);
}
--- 315,318 ----
***************
*** 328,331 ****
--- 328,334 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.8 2003/03/10 18:36:21 adcockj
+ * Changes to ties up to chip spec more closely
+ *
* Revision 1.7 2003/03/07 08:04:12 adcockj
* Temp remove monitoring thread
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** l64781.cpp 7 Mar 2003 08:04:14 -0000 1.7
--- l64781.cpp 10 Mar 2003 18:36:22 -0000 1.8
***************
*** 115,120 ****
data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.modulation=BDA_MOD_64QAM;
! data->demodulator.HP_coderate=BDA_BCC_RATE_3_4;
! data->demodulator.modulation=BDA_MOD_16QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
--- 115,120 ----
data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.modulation=BDA_MOD_64QAM;
! //data->demodulator.HP_coderate=BDA_BCC_RATE_3_4;
! //data->demodulator.modulation=BDA_MOD_16QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
***************
*** 132,136 ****
L64781_WriteRegister(device,0x0B,0x81); // Use internal ADC
L64781_WriteRegister(device,0x0C,0x84); // AGC loop gain, and polarity is positive
! L64781_WriteRegister(device,0x0D,0x8C); // Internal ADC outpus two's complement
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
--- 132,136 ----
L64781_WriteRegister(device,0x0B,0x81); // Use internal ADC
L64781_WriteRegister(device,0x0C,0x84); // AGC loop gain, and polarity is positive
! L64781_WriteRegister(device,0x0D,0x8E); // Internal ADC outpus two's complement
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
***************
*** 174,178 ****
void L64781_UpdateSPIBias(PKSDEVICE device,int bandwidth,int constellation,int transmissionmode,int hp_coderate,int guardinterval, int inverted)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), GuardInterval(%i)",bandwidth,constellation,transmissionmode,hp_coderate,guardinterval));
static const unsigned __int8 fec_tab[]={1,2,3,5,7,};
--- 174,185 ----
void L64781_UpdateSPIBias(PKSDEVICE device,int bandwidth,int constellation,int transmissionmode,int hp_coderate,int guardinterval, int inverted)
{
! for(BYTE i(0); i < 0x3e; ++i)
! {
! int Reg = L64781_ReadRegister(device,i);
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Reg %02x = (%02x)",i,Reg));
! }
!
!
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), GuardInterval(%i)",bandwidth,constellation,transmissionmode,hp_coderate,guardinterval));
static const unsigned __int8 fec_tab[]={1,2,3,5,7,};
***************
*** 338,343 ****
L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
// From Linux source - This works up to 20000 ppm, it overflows if too large ppm!
! init_freq=(((8UL<<24)+(8UL<<19)/25*ppm/(15625/25))/p_bandwidth&0xFFFFFF);
L64781_WriteRegister(device,0x16,init_freq&0xFF);
--- 345,354 ----
L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
+ unsigned __int64 qwInitFreq=(unsigned __int64)((8-p_bandwidth)*1000000 + 8*ppm);
+ qwInitFreq*=(unsigned __int64)(1<<25);
+ qwInitFreq/=(unsigned __int64)(p_bandwidth*1000000);
+ init_freq=(unsigned __int32)qwInitFreq;
// From Linux source - This works up to 20000 ppm, it overflows if too large ppm!
! //init_freq=(((8UL<<24)+(8UL<<19)/25*ppm/(15625/25))/p_bandwidth&0xFFFFFF);
L64781_WriteRegister(device,0x16,init_freq&0xFF);
***************
*** 402,405 ****
--- 413,419 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.8 2003/03/10 18:36:22 adcockj
+ * Changes to ties up to chip spec more closely
+ *
* Revision 1.7 2003/03/07 08:04:14 adcockj
* Temp remove monitoring thread
|
|
From: <ad...@us...> - 2003-03-07 08:04:18
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv9073
Modified Files:
automation.cpp device.cpp device.h l64781.cpp l64781.h
saa7146.cpp
Log Message:
Temp remove monitoring thread
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** automation.cpp 6 Mar 2003 17:48:42 -0000 1.6
--- automation.cpp 7 Mar 2003 08:04:11 -0000 1.7
***************
*** 56,62 ****
if(*pulProperty!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=*pulProperty;
- GETCONTEXT(device)->tuner.ChangeOutstanding=TRUE;
- GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
}
return STATUS_SUCCESS;
}
--- 56,62 ----
if(*pulProperty!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=*pulProperty;
}
+ GETCONTEXT(device)->tuner.ChangeOutstanding=TRUE;
+ GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
return STATUS_SUCCESS;
}
***************
*** 238,242 ****
NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
if(*pulProperty < BDA_FEC_METHOD_NOT_SET ||
*pulProperty >= BDA_FEC_MAX) {
--- 238,242 ----
NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%d)",*pulProperty));
if(*pulProperty < BDA_FEC_METHOD_NOT_SET ||
*pulProperty >= BDA_FEC_MAX) {
***************
*** 261,265 ****
NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",pulProperty));
if(*pulProperty < BDA_BCC_RATE_NOT_SET ||
*pulProperty >= BDA_BCC_RATE_MAX) {
--- 261,265 ----
NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%d)",*pulProperty));
if(*pulProperty < BDA_BCC_RATE_NOT_SET ||
*pulProperty >= BDA_BCC_RATE_MAX) {
***************
*** 425,431 ****
PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
! // Validate alterations
! status=BdaCommitChanges(pIrp);
! if(NT_SUCCESS(status) && device != NULL && GETCONTEXT(device) != NULL) {
// we will always reset the setting on moving out of stop
// so don't bother updating the hardware if we are stopped
--- 425,429 ----
PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
! if(device != NULL && GETCONTEXT(device) != NULL) {
// we will always reset the setting on moving out of stop
// so don't bother updating the hardware if we are stopped
***************
*** 469,472 ****
--- 467,473 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.7 2003/03/07 08:04:11 adcockj
+ * Temp remove monitoring thread
+ *
* Revision 1.6 2003/03/06 17:48:42 adcockj
* Added TPS change monitoring thread
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** device.cpp 6 Mar 2003 17:48:42 -0000 1.6
--- device.cpp 7 Mar 2003 08:04:12 -0000 1.7
***************
*** 25,30 ****
#include "saa7146.h"
! #pragma const_seg("PAGECONST")
! #pragma code_seg("PAGE")
--- 25,30 ----
#include "saa7146.h"
! #pragma const_seg()
! #pragma code_seg()
***************
*** 175,179 ****
_DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop()"));
// confirm that the monitoring thread has stopped
! StopMonitoringThread((PKSDEVICE)GETCONTEXT(device));
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
--- 175,179 ----
_DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop()"));
// confirm that the monitoring thread has stopped
! //StopMonitoringThread(device);
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
***************
*** 250,255 ****
// time as the user is trying to retune
ExAcquireFastMutex(&GETCONTEXT(device)->i2cMutex);
! L64781_CheckForTPSUpdate(device);
ExReleaseFastMutex(&GETCONTEXT(device)->i2cMutex);
}
// if we exited the above for any other reason then
--- 250,258 ----
// time as the user is trying to retune
ExAcquireFastMutex(&GETCONTEXT(device)->i2cMutex);
! BOOL GotUpdate=L64781_CheckForTPSUpdate(device);
ExReleaseFastMutex(&GETCONTEXT(device)->i2cMutex);
+ if(GotUpdate==TRUE) {
+ break;
+ }
}
// if we exited the above for any other reason then
***************
*** 312,324 ****
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
L64781_UpdateParameters((PKSDEVICE)Pin->Context);
! StartMonitoringThread((PKSDEVICE)Pin->Context);
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) {
! StopMonitoringThread((PKSDEVICE)Pin->Context);
SAA7146_StopStream((PKSDEVICE)Pin->Context);
}
- if(ToState==KSSTATE_RUN) {
- GETCONTEXT(Pin->Context)->sendDiscontinuity = true;
- }
GETCONTEXT(Pin->Context)->cur_state=ToState;
_DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
--- 315,324 ----
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
L64781_UpdateParameters((PKSDEVICE)Pin->Context);
! //StartMonitoringThread((PKSDEVICE)Pin->Context);
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) {
! //StopMonitoringThread((PKSDEVICE)Pin->Context);
SAA7146_StopStream((PKSDEVICE)Pin->Context);
}
GETCONTEXT(Pin->Context)->cur_state=ToState;
_DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
***************
*** 328,331 ****
--- 328,334 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.7 2003/03/07 08:04:12 adcockj
+ * Temp remove monitoring thread
+ *
* Revision 1.6 2003/03/06 17:48:42 adcockj
* Added TPS change monitoring thread
Index: device.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** device.h 6 Mar 2003 17:48:43 -0000 1.4
--- device.h 7 Mar 2003 08:04:13 -0000 1.5
***************
*** 28,32 ****
int lost_error;
int counter;
- bool sendDiscontinuity;
KEVENT monitorThreadKill;
PKTHREAD monitorThread;
--- 28,31 ----
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** l64781.cpp 6 Mar 2003 17:48:43 -0000 1.6
--- l64781.cpp 7 Mar 2003 08:04:14 -0000 1.7
***************
*** 68,72 ****
{
L64781_WriteRegister(device,0x2a,0x01);
! L64781_WriteRegister(device,0x2a,0x00);
}
--- 68,73 ----
{
L64781_WriteRegister(device,0x2a,0x01);
! L64781_WriteRegister(device,0x2a,0x0a);
! L64781_WriteRegister(device,0x2a,0x02);
}
***************
*** 114,117 ****
--- 115,120 ----
data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.modulation=BDA_MOD_64QAM;
+ data->demodulator.HP_coderate=BDA_BCC_RATE_3_4;
+ data->demodulator.modulation=BDA_MOD_16QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
***************
*** 191,198 ****
// this is accurate and should work for any ppm
! qwSPIBias=1512 * fec_tab[hp_coderate] * qam_tab[constellation];
! qwSPIBias*=((1<<10) * 32 * bandwidth * 1000000);
! qwSPIBias/=((fec_tab[hp_coderate] + 1) * (guard_tab[guardinterval]+32));
! qwSPIBias/=(8 * (1000000 + ppm));
spi_bias = (unsigned __int32)qwSPIBias;
--- 194,202 ----
// this is accurate and should work for any ppm
! qwSPIBias=(__int64)(1512 * fec_tab[hp_coderate] * qam_tab[constellation]);
! qwSPIBias*=(__int64)((1<<10) * 32 * bandwidth);
! qwSPIBias*=(__int64)1000000;
! qwSPIBias/=(__int64)((fec_tab[hp_coderate] + 1) * (guard_tab[guardinterval]+32));
! qwSPIBias/=(__int64)(8 * (1000000 + ppm));
spi_bias = (unsigned __int32)qwSPIBias;
***************
*** 352,356 ****
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 updated"));
}
! void L64781_CheckForTPSUpdate(PKSDEVICE device)
{
// see if the TPS interrupt has been triggered
--- 356,360 ----
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 updated"));
}
! BOOL L64781_CheckForTPSUpdate(PKSDEVICE device)
{
// see if the TPS interrupt has been triggered
***************
*** 389,396 ****
--- 393,408 ----
L64781_ReadRegister(device,0x00); // Clear interrupt register
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
}
}
/*****************************************************************************\
* $Log$
+ * Revision 1.7 2003/03/07 08:04:14 adcockj
+ * Temp remove monitoring thread
+ *
* Revision 1.6 2003/03/06 17:48:43 adcockj
* Added TPS change monitoring thread
Index: l64781.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** l64781.h 6 Mar 2003 17:48:43 -0000 1.4
--- l64781.h 7 Mar 2003 08:04:14 -0000 1.5
***************
*** 34,38 ****
int L64781_Signal2NoiseRatio(PKSDEVICE device);
void L64781_UpdateParameters(PKSDEVICE device);
! void L64781_CheckForTPSUpdate(PKSDEVICE device);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
--- 34,38 ----
int L64781_Signal2NoiseRatio(PKSDEVICE device);
void L64781_UpdateParameters(PKSDEVICE device);
! BOOL L64781_CheckForTPSUpdate(PKSDEVICE device);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** saa7146.cpp 4 Mar 2003 08:02:22 -0000 1.5
--- saa7146.cpp 7 Mar 2003 08:04:15 -0000 1.6
***************
*** 79,83 ****
GETCONTEXT(device)->lost_error=0; // Indicates lost buffers due to kernel not processing fast enough
GETCONTEXT(device)->counter=0;
- GETCONTEXT(device)->sendDiscontinuity = true;
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
for(i=0;i<PAGE_ALLOCATE;i++) RtlZeroMemory(GETCONTEXT(device)->dma_pages[i],0x1000);
--- 79,82 ----
***************
*** 208,218 ****
}
}
- if(GETCONTEXT(device)->sendDiscontinuity == true) {
- stream_pointer->StreamHeader->OptionsFlags |= KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY;
- GETCONTEXT(device)->sendDiscontinuity = false;
- }
- else {
- stream_pointer->StreamHeader->OptionsFlags &= ~KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY;
- }
KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
--- 207,210 ----
***************
*** 380,383 ****
--- 372,378 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.6 2003/03/07 08:04:15 adcockj
+ * Temp remove monitoring thread
+ *
* Revision 1.5 2003/03/04 08:02:22 adcockj
* Interim Checkin
|
|
From: <ad...@us...> - 2003-03-06 17:48:51
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv5973
Modified Files:
automation.cpp automation.h device.cpp device.h driver.cpp
l64781.cpp l64781.h
Log Message:
Added TPS change monitoring thread
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** automation.cpp 4 Mar 2003 08:02:19 -0000 1.5
--- automation.cpp 6 Mar 2003 17:48:42 -0000 1.6
***************
*** 41,58 ****
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
NTSTATUS TunerFrequencyPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ULONG frequency=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(frequency!=GETCONTEXT(device)->tuner.frequency) {
! GETCONTEXT(device)->tuner.frequency=frequency;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
- _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",frequency));
return STATUS_SUCCESS;
}
--- 41,62 ----
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
+
NTSTATUS TunerFrequencyPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",*pulProperty));
! if((*pulProperty==BDA_FREQUENCY_NOT_SET)||
! (*pulProperty==BDA_FREQUENCY_NOT_DEFINED)) {
! return STATUS_SUCCESS;
! }
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(*pulProperty!=GETCONTEXT(device)->tuner.frequency) {
! GETCONTEXT(device)->tuner.frequency=*pulProperty;
! GETCONTEXT(device)->tuner.ChangeOutstanding=TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
}
return STATUS_SUCCESS;
}
***************
*** 60,77 ****
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
NTSTATUS TunerFrequencyMultiplerPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ULONG freq_mult=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
! GETCONTEXT(device)->tuner.freq_mult=freq_mult;
GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
- _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",freq_mult));
return STATUS_SUCCESS;
}
--- 64,85 ----
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
+
NTSTATUS TunerFrequencyMultiplerPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",*pulProperty));
! if((*pulProperty==BDA_FREQUENCY_MULTIPLIER_NOT_SET)||
! (*pulProperty==BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED)) {
! return STATUS_SUCCESS;
! }
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->tuner.freq_mult!=*pulProperty) {
! GETCONTEXT(device)->tuner.freq_mult=*pulProperty;
GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
return STATUS_SUCCESS;
}
***************
*** 79,112 ****
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ULONG bandwidth=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
// note that the tuner isn't effected by this setting but the
// demodulator is so that's why we signal that that has changed
! if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
! GETCONTEXT(device)->tuner.bandwidth=bandwidth;
}
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
- _DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",bandwidth));
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// In mDb or something
! *pulProperty=(LONG)L64781_SignalStrength(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet, irp=0x%p, device=0x%p, strength=%i",pIrp,device,*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 87,125 ----
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthGet"));
*pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
+
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",*pulProperty));
! if((*pulProperty==BDA_CHAN_BANDWITH_NOT_SET)||
! (*pulProperty==BDA_CHAN_BANDWITH_NOT_DEFINED)) {
! return STATUS_SUCCESS;
! }
// note that the tuner isn't effected by this setting but the
// demodulator is so that's why we signal that that has changed
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->tuner.bandwidth!=*pulProperty) {
! GETCONTEXT(device)->tuner.bandwidth=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
}
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty)
{
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// In mDb or something
! *pulProperty=L64781_SignalStrength(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%i)", *pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! *pulProperty=L64781_HasSignal(device);
_DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 114,221 ****
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRPPIN(pIrp))*100)/255);
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! ModulationType newtype=(ModulationType)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if((newtype!=BDA_MOD_QPSK)&&(newtype!=BDA_MOD_16QAM)&&(newtype!=BDA_MOD_64QAM)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Type setting to default(%u)", *pulProperty));
! newtype = BDA_MOD_64QAM;
}
- if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
- GETCONTEXT(device)->demodulator.modulation=newtype;
- }
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
- _DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%u)",newtype));
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%u)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if((rate!=BDA_BCC_RATE_1_2)&&
! (rate!=BDA_BCC_RATE_2_3)&&
! (rate!=BDA_BCC_RATE_3_4)&&
! (rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Rate setting to default(%u)", *pulProperty));
! rate = BDA_BCC_RATE_1_2;
}
- if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
- GETCONTEXT(device)->demodulator.HP_coderate=rate;
- }
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
- _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%u)",rate));
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if((rate!=BDA_BCC_RATE_1_2)&&
! (rate!=BDA_BCC_RATE_2_3)&&
! (rate!=BDA_BCC_RATE_3_4)&&
! (rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Rate setting to default(%u)", *pulProperty));
! rate = BDA_BCC_RATE_NOT_SET;
}
- if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
- GETCONTEXT(device)->demodulator.LP_coderate=rate;
- }
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
- _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",rate));
return STATUS_SUCCESS;
}
--- 127,286 ----
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty)
{
! *pulProperty=(L64781_Signal2NoiseRatio(GETDEVICEFROMIRPPIN(pIrp))*100)/255;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty)
{
! *pulProperty=L64781_HasLock(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypeGet"));
*pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%d)",*pulProperty));
! if(*pulProperty < BDA_MOD_NOT_SET ||
! *pulProperty >= BDA_MOD_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_MOD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_MOD_QPSK)&&(*pulProperty!=BDA_MOD_16QAM)&&(*pulProperty!=BDA_MOD_64QAM)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Modulation Type : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.modulation!=*pulProperty) {
! GETCONTEXT(device)->demodulator.modulation=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
}
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypeGet"));
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%d)",*pulProperty));
! if(*pulProperty < BDA_FEC_METHOD_NOT_SET ||
! *pulProperty >= BDA_FEC_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_FEC_METHOD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if(*pulProperty!=BDA_FEC_VITERBI) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown FEC Type"));
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRateGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%d)",*pulProperty));
! if(*pulProperty < BDA_BCC_RATE_NOT_SET ||
! *pulProperty >= BDA_BCC_RATE_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_BCC_RATE_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_BCC_RATE_1_2)&&
! (*pulProperty!=BDA_BCC_RATE_2_3)&&
! (*pulProperty!=BDA_BCC_RATE_3_4)&&
! (*pulProperty!=BDA_BCC_RATE_5_6)&&
! (*pulProperty!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Inner Rate : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.HP_coderate!=*pulProperty) {
! GETCONTEXT(device)->demodulator.HP_coderate=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
}
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypeGet"));
*pulProperty=BDA_FEC_VITERBI;
return STATUS_SUCCESS;
}
!
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty)
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
+ if(*pulProperty < BDA_FEC_METHOD_NOT_SET ||
+ *pulProperty >= BDA_FEC_MAX) {
+ return STATUS_INVALID_PARAMETER;
+ }
+ // just return straight away if we are passed Not Set
+ if(*pulProperty == BDA_FEC_METHOD_NOT_SET) {
+ return STATUS_SUCCESS;
+ }
+ if(*pulProperty!=BDA_FEC_VITERBI) {
+ _DbgPrintF(DEBUGLVL_TERSE, ("Unknown FEC Type"));
+ }
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRateGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",pulProperty));
! if(*pulProperty < BDA_BCC_RATE_NOT_SET ||
! *pulProperty >= BDA_BCC_RATE_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_BCC_RATE_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_BCC_RATE_1_2)&&
! (*pulProperty!=BDA_BCC_RATE_2_3)&&
! (*pulProperty!=BDA_BCC_RATE_3_4)&&
! (*pulProperty!=BDA_BCC_RATE_5_6)&&
! (*pulProperty!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Outer Rate : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.LP_coderate!=*pulProperty) {
! GETCONTEXT(device)->demodulator.LP_coderate=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
}
return STATUS_SUCCESS;
}
***************
*** 223,290 ****
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
- //GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
- _DbgPrintF(DEBUGLVL_TERSE, ("DemodSymbolRatePut(%u)",*pulProperty));
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(GuardInterval)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! GuardInterval guard_interval=(GuardInterval)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
! GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
! }
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%i)",guard_interval));
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(TransmissionMode)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! TransmissionMode transmit_mode=(TransmissionMode)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
! GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
! }
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",transmit_mode));
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
*pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! SpectralInversion inversion=(SpectralInversion)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
! GETCONTEXT(device)->demodulator.inversion=inversion;
! }
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",inversion));
return STATUS_SUCCESS;
}
--- 288,395 ----
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSymbolRateGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("DemodSymbolRatePut(%u)",*pulProperty));
PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // \todo Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%d)",*pulProperty));
! if(*pulProperty < BDA_GUARD_NOT_SET ||
! *pulProperty >= BDA_GUARD_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_GUARD_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_GUARD_1_32)&&
! (*pulProperty!=BDA_GUARD_1_16)&&
! (*pulProperty!=BDA_GUARD_1_8)&&
! (*pulProperty!=BDA_GUARD_1_4)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Guard Interval : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! // Validate here
! if(GETCONTEXT(device)->demodulator.guard_interval!=*pulProperty) {
! GETCONTEXT(device)->demodulator.guard_interval=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModeGet"));
! *pulProperty=GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",*pulProperty));
! if(*pulProperty < BDA_XMIT_MODE_NOT_SET ||
! *pulProperty >= BDA_XMIT_MODE_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_XMIT_MODE_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_XMIT_MODE_2K)&&
! (*pulProperty!=BDA_XMIT_MODE_8K)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Transmission Mode : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.transmit_mode!=*pulProperty) {
! GETCONTEXT(device)->demodulator.transmit_mode=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionGet"));
*pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",*pulProperty));
! if(*pulProperty < BDA_SPECTRAL_INVERSION_NOT_SET ||
! *pulProperty >= BDA_SPECTRAL_INVERSION_MAX) {
! return STATUS_INVALID_PARAMETER;
! }
! // just return straight away if we are passed Not Set
! if(*pulProperty == BDA_SPECTRAL_INVERSION_NOT_SET) {
! return STATUS_SUCCESS;
! }
! if((*pulProperty!=BDA_SPECTRAL_INVERSION_AUTOMATIC)&&
! (*pulProperty!=BDA_SPECTRAL_INVERSION_NORMAL)&&
! (*pulProperty!=BDA_SPECTRAL_INVERSION_INVERTED)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Spectral Inversion : Leave existing value"));
! } else {
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if(GETCONTEXT(device)->demodulator.inversion!=*pulProperty) {
! GETCONTEXT(device)->demodulator.inversion=*pulProperty;
! GETCONTEXT(device)->demodulator.ChangeOutstanding=TRUE;
! }
! }
return STATUS_SUCCESS;
}
***************
*** 326,337 ****
--- 431,450 ----
// so don't bother updating the hardware if we are stopped
if(GETCONTEXT(device)->cur_state != KSSTATE_STOP) {
+ // make sure we don't try and access the i2c bus at the same
+ // time as the monitoring thread
+ ExAcquireFastMutex(&GETCONTEXT(device)->i2cMutex);
// Commit alterations only if there are changes
if(GETCONTEXT(device)->tuner.ChangeOutstanding == TRUE) {
Tuner_SetFrequency(device);
}
+ if(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE) {
+ L64781_UpdateParameters(device);
+ }
+ ExReleaseFastMutex(&GETCONTEXT(device)->i2cMutex);
}
}
return BdaCommitChanges(pIrp);
}
+
NTSTATUS FilterGetChangeState(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OUT PULONG pulChangeState)
{
***************
*** 356,359 ****
--- 469,475 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.6 2003/03/06 17:48:42 adcockj
+ * Added TPS change monitoring thread
+ *
* Revision 1.5 2003/03/04 08:02:19 adcockj
* Interim Checkin
Index: automation.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** automation.h 17 Feb 2003 11:07:12 -0000 1.2
--- automation.h 6 Mar 2003 17:48:42 -0000 1.3
***************
*** 10,41 ****
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define TunerSignalStrengthPut NULL
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define TunerSignalPresentPut NULL
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define DemodSignalQualityPut NULL
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! #define DemodSignalLockedPut NULL
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
// For filter
--- 10,37 ----
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS TunerBandwidthPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty);
! NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty);
// For Demodulator node
! NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN LONG* pulProperty);
! NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BOOL* pulProperty);
! NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty);
! NTSTATUS DemodModulationTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN ModulationType* pulProperty);
! NTSTATUS DemodInnerFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
! NTSTATUS DemodInnerFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
! NTSTATUS DemodOuterFecTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN FECMethod* pulProperty);
! NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
! NTSTATUS DemodOuterFecRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN BinaryConvolutionCodeRate* pulProperty);
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty);
! NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty);
! NTSTATUS DemodGuardIntervalPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN GuardInterval* pulProperty);
! NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty);
! NTSTATUS DemodTransmissionModePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN TransmissionMode* pulProperty);
! NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty);
! NTSTATUS DemodSpectralInversionPut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN SpectralInversion* pulProperty);
// For filter
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** device.cpp 4 Mar 2003 08:02:20 -0000 1.5
--- device.cpp 6 Mar 2003 17:48:42 -0000 1.6
***************
*** 58,61 ****
--- 58,64 ----
if(result!=STATUS_SUCCESS) ExFreePool(device->Context);
KeInitializeDpc(&GETCONTEXT(device)->dpc,DeviceDPCRoutine,device);
+ ExInitializeFastMutex(&GETCONTEXT(device)->i2cMutex);
+ KeInitializeEvent(&GETCONTEXT(device)->monitorThreadKill, NotificationEvent, FALSE);
+ GETCONTEXT(device)->monitorThread = NULL;
// Prepare tuner type and I2C addresses, assuming they're always the same on Nova-T boards
GETCONTEXT(device)->demod_address=I2C_L64781;
***************
*** 171,174 ****
--- 174,179 ----
_DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop()"));
+ // confirm that the monitoring thread has stopped
+ StopMonitoringThread((PKSDEVICE)GETCONTEXT(device));
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
***************
*** 229,232 ****
--- 234,290 ----
return STATUS_SUCCESS;
}
+ #pragma code_seg()
+ VOID MonitorThreadProc(IN PKSDEVICE device)
+ {
+ NTSTATUS result;
+ while(TRUE) {
+ LARGE_INTEGER TimeOut;
+ // hopefully this is half a second and we'll try not to use up too much
+ // processor while in here but we need to check if we need to update
+ // the demod parameters based on a newly received TPS block
+ // we could also check for errors and possibly AFC here as well
+ TimeOut.QuadPart = 5000;
+ result=KeWaitForSingleObject(&GETCONTEXT(device)->monitorThreadKill, Executive, KernelMode, FALSE, &TimeOut);
+ if(result==STATUS_TIMEOUT) {
+ // make sure we don't try and access the i2c bus at the same
+ // time as the user is trying to retune
+ ExAcquireFastMutex(&GETCONTEXT(device)->i2cMutex);
+ L64781_CheckForTPSUpdate(device);
+ ExReleaseFastMutex(&GETCONTEXT(device)->i2cMutex);
+ }
+ // if we exited the above for any other reason then
+ // get out of this thread as either we have been signaled or
+ // there is a problem
+ else {
+ break;
+ }
+ }
+ PsTerminateSystemThread(STATUS_SUCCESS);
+ }
+ #pragma code_seg("page")
+ void StartMonitoringThread(IN PKSDEVICE device)
+ {
+ NTSTATUS result;
+ HANDLE hThread;
+ KeClearEvent(&GETCONTEXT(device)->monitorThreadKill);
+ result = PsCreateSystemThread(&hThread, THREAD_ALL_ACCESS,
+ NULL, NULL, NULL, (PKSTART_ROUTINE)MonitorThreadProc, device);
+ if (!NT_SUCCESS(result)) {
+ PrintString(device,"StartMonitoringThread: Failed to start thread",result);
+ return;
+ }
+ ObReferenceObjectByHandle(hThread, THREAD_ALL_ACCESS, NULL, KernelMode, (PVOID*) &GETCONTEXT(device)->monitorThread, NULL);
+ ZwClose(hThread);
+ return;
+ }
+ void StopMonitoringThread(IN PKSDEVICE device)
+ {
+ if(GETCONTEXT(device)->monitorThread != NULL) {
+ KeSetEvent(&GETCONTEXT(device)->monitorThreadKill, 0, FALSE);
+ KeWaitForSingleObject(&GETCONTEXT(device)->monitorThread, Executive, KernelMode, FALSE, NULL);
+ ObDereferenceObject(&GETCONTEXT(device)->monitorThread);
+ GETCONTEXT(device)->monitorThread = NULL;
+ }
+ }
NTSTATUS OutputSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
***************
*** 252,260 ****
return result;
}
- // Temp
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
! // And now, continue
}
! if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
if(ToState==KSSTATE_RUN) {
GETCONTEXT(Pin->Context)->sendDiscontinuity = true;
--- 310,321 ----
return result;
}
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
! L64781_UpdateParameters((PKSDEVICE)Pin->Context);
! StartMonitoringThread((PKSDEVICE)Pin->Context);
}
! if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) {
! StopMonitoringThread((PKSDEVICE)Pin->Context);
! SAA7146_StopStream((PKSDEVICE)Pin->Context);
! }
if(ToState==KSSTATE_RUN) {
GETCONTEXT(Pin->Context)->sendDiscontinuity = true;
***************
*** 267,270 ****
--- 328,334 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.6 2003/03/06 17:48:42 adcockj
+ * Added TPS change monitoring thread
+ *
* Revision 1.5 2003/03/04 08:02:20 adcockj
* Interim Checkin
Index: device.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** device.h 4 Mar 2003 08:02:20 -0000 1.3
--- device.h 6 Mar 2003 17:48:43 -0000 1.4
***************
*** 29,32 ****
--- 29,35 ----
int counter;
bool sendDiscontinuity;
+ KEVENT monitorThreadKill;
+ PKTHREAD monitorThread;
+ FAST_MUTEX i2cMutex;
// I2C bus data
unsigned char demod_address; // Address of L64781 demodulator
***************
*** 64,67 ****
--- 67,72 ----
NTSTATUS OutputClose(IN PKSPIN Pin,IN PIRP Irp);
NTSTATUS OutputSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState);
+
+ void StopMonitoringThread(IN PKSDEVICE device);
#endif // __DEVICE_H__
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** driver.cpp 4 Mar 2003 08:02:21 -0000 1.5
--- driver.cpp 6 Mar 2003 17:48:43 -0000 1.6
***************
*** 69,77 ****
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(
TunerSignalStrengthGet,
! TunerSignalStrengthPut
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(
TunerSignalPresentGet,//CAntennaPin::GetSignalStatus,
! TunerSignalPresentPut
),
};
--- 69,77 ----
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(
TunerSignalStrengthGet,
! NULL
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(
TunerSignalPresentGet,//CAntennaPin::GetSignalStatus,
! NULL
),
};
***************
*** 107,115 ****
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(
DemodSignalQualityGet,
! DemodSignalQualityPut
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(
DemodSignalLockedGet,//CTransportPin::GetSignalStatus,
! DemodSignalLockedPut
),
};
--- 107,115 ----
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(
DemodSignalQualityGet,
! NULL
),
DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(
DemodSignalLockedGet,//CTransportPin::GetSignalStatus,
! NULL
),
};
***************
*** 524,527 ****
--- 524,529 ----
};
+ #pragma code_seg("init")
+
// Driver entry point
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
***************
*** 533,536 ****
--- 535,541 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.6 2003/03/06 17:48:43 adcockj
+ * Added TPS change monitoring thread
+ *
* Revision 1.5 2003/03/04 08:02:21 adcockj
* Interim Checkin
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** l64781.cpp 4 Mar 2003 08:02:22 -0000 1.5
--- l64781.cpp 6 Mar 2003 17:48:43 -0000 1.6
***************
*** 32,35 ****
--- 32,36 ----
#pragma code_seg("PAGE")
+ static const unsigned __int32 ppm=8000;
unsigned __int8 L64781_ReadRegister(PKSDEVICE device,unsigned __int8 reg)
***************
*** 66,72 ****
void L64781_Apply_TPS(PKSDEVICE device)
{
- L64781_WriteRegister(device,0x2a,0x00);
L64781_WriteRegister(device,0x2a,0x01);
! L64781_WriteRegister(device,0x2a,0x02);
}
--- 67,72 ----
void L64781_Apply_TPS(PKSDEVICE device)
{
L64781_WriteRegister(device,0x2a,0x01);
! L64781_WriteRegister(device,0x2a,0x00);
}
***************
*** 114,119 ****
data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.modulation=BDA_MOD_64QAM;
- data->demodulator.HP_coderate=BDA_BCC_RATE_1_2;
- data->demodulator.modulation=BDA_MOD_16QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
--- 114,117 ----
***************
*** 171,214 ****
return (avg_quality<<8)|avg_quality;
}
! void L64781_UpdateParameters(PKSDEVICE device)
{
! // static const unsigned __int8 vcr_tab[]={7,1,2,3,5,7,8};
! static const unsigned __int8 fec_tab[]={7,0,1,2,9,3,10,4};
! static const unsigned __int8 qam_tab[]={2,4,0,6};
! static const unsigned __int8 bw_tab[]={8,7,6};
static const unsigned __int8 guard_tab[]={1,2,4,8};
- static const unsigned __int32 ppm=8000;
- DEVICE_CONTEXT *data=GETCONTEXT(device);
- unsigned __int32 ddfs_offset_fixed;
- unsigned __int32 init_freq;
unsigned __int32 spi_bias;
! unsigned __int8 val0x04;
! unsigned __int8 val0x05;
! unsigned __int8 val0x06;
! int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode;
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 updating"));
! val0x04 = L64781_ReadRegister(device, 0x04);
! val0x05 = L64781_ReadRegister(device, 0x05);
! val0x06 = L64781_ReadRegister(device, 0x06);
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Last Read TPS %02x %02x %02x", val0x04, val0x05, val0x06));
! // All parameters are checked by automation functions, so no need to check here
! // Now translate Microsoft constants into the constants the Linux code originally wanted
! switch(data->tuner.bandwidth) {
case 6:
! p_bandwidth=2;
break;
case 7:
! p_bandwidth=1;
break;
default:
case 8:
! p_bandwidth=0;
break;
}
switch(data->demodulator.modulation) {
- default:
case BDA_MOD_QPSK:
p_constellation=0;
--- 169,244 ----
return (avg_quality<<8)|avg_quality;
}
! void L64781_UpdateSPIBias(PKSDEVICE device,int bandwidth,int constellation,int transmissionmode,int hp_coderate,int guardinterval, int inverted)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), GuardInterval(%i)",bandwidth,constellation,transmissionmode,hp_coderate,guardinterval));
!
! static const unsigned __int8 fec_tab[]={1,2,3,5,7,};
! static const unsigned __int8 qam_tab[]={2,4,6};
static const unsigned __int8 guard_tab[]={1,2,4,8};
unsigned __int32 spi_bias;
! unsigned __int64 qwSPIBias;
! // From Linux source - SPI bias calculation is slightly modified to fit in 32bit, will work for high ppm only...
! //spi_bias=378*(1<<10);
! //spi_bias*=16;
! //spi_bias*=bandwidth;
! //spi_bias*=qam_tab[constellation];
! //spi_bias/=(fec_tab[hp_coderate]+1);
! //spi_bias/=(guard_tab[guardinterval]+32);
! //spi_bias*=(unsigned __int64)1000;
! //spi_bias/=(unsigned __int64)1000+ppm/1000;
! //spi_bias*=fec_tab[hp_coderate];
! //spi_bias = MulDiv(spi_bias, 1000, 1000);
! // this is accurate and should work for any ppm
! qwSPIBias=1512 * fec_tab[hp_coderate] * qam_tab[constellation];
! qwSPIBias*=((1<<10) * 32 * bandwidth * 1000000);
! qwSPIBias/=((fec_tab[hp_coderate] + 1) * (guard_tab[guardinterval]+32));
! qwSPIBias/=(8 * (1000000 + ppm));
! spi_bias = (unsigned __int32)qwSPIBias;
! L64781_WriteRegister(device,0x1B,spi_bias&0xFF);
! L64781_WriteRegister(device,0x1C,(spi_bias>>8)&0xFF);
! L64781_WriteRegister(device,0x1D,((spi_bias>>16)&0x7F)|(inverted?0x80:0x00));
!
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 SPI Bias (%d)",spi_bias));
! }
! int L64781_ConvertBandwidth(ULONG Bandwidth)
! {
! int retVal;
! switch(Bandwidth) {
! case 6000000:
! case 6000:
case 6:
! return 6;
break;
+ case 7000000:
+ case 7000:
case 7:
! return 7;
break;
default:
+ case 8000000:
+ case 8000:
case 8:
! return 8;
break;
}
+ }
+ void L64781_UpdateParameters(PKSDEVICE device)
+ {
+ DEVICE_CONTEXT *data=GETCONTEXT(device);
+ unsigned __int8 val0x04;
+ unsigned __int8 val0x05;
+ unsigned __int8 val0x06;
+ int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode,p_inverted;
+ unsigned __int32 ddfs_offset_fixed;
+ unsigned __int32 init_freq;
+
+ // All parameters are checked by automation functions, so no need to check here
+ // Now translate Microsoft constants into the constants
+ // in the form of the TPS registers or in the way the original linux code has them
+ p_bandwidth=L64781_ConvertBandwidth(data->tuner.bandwidth);
switch(data->demodulator.modulation) {
case BDA_MOD_QPSK:
p_constellation=0;
***************
*** 217,260 ****
p_constellation=1;
break;
case BDA_MOD_64QAM:
! p_constellation=3;
break;
}
! if(data->demodulator.transmit_mode==BDA_XMIT_MODE_8K) p_transmissionmode=1;
! else p_transmissionmode=0;
switch(data->demodulator.HP_coderate) {
case BDA_BCC_RATE_1_2:
! p_hp_coderate=1;
break;
case BDA_BCC_RATE_3_4:
! p_hp_coderate=3;
break;
case BDA_BCC_RATE_5_6:
! p_hp_coderate=4;
break;
case BDA_BCC_RATE_7_8:
! p_hp_coderate=5;
break;
default:
case BDA_BCC_RATE_2_3:
! p_hp_coderate=2;
break;
}
switch(data->demodulator.LP_coderate) {
case BDA_BCC_RATE_2_3:
! p_lp_coderate=2;
break;
case BDA_BCC_RATE_3_4:
! p_lp_coderate=3;
break;
case BDA_BCC_RATE_5_6:
! p_lp_coderate=4;
break;
case BDA_BCC_RATE_7_8:
! p_lp_coderate=5;
break;
default:
case BDA_BCC_RATE_1_2:
! p_lp_coderate=1;
break;
}
--- 247,290 ----
p_constellation=1;
break;
+ default:
case BDA_MOD_64QAM:
! p_constellation=2;
break;
}
! p_transmissionmode=((data->demodulator.transmit_mode==BDA_XMIT_MODE_8K)?1:0);
switch(data->demodulator.HP_coderate) {
case BDA_BCC_RATE_1_2:
! p_hp_coderate=0;
break;
case BDA_BCC_RATE_3_4:
! p_hp_coderate=2;
break;
case BDA_BCC_RATE_5_6:
! p_hp_coderate=3;
break;
case BDA_BCC_RATE_7_8:
! p_hp_coderate=4;
break;
default:
case BDA_BCC_RATE_2_3:
! p_hp_coderate=1;
break;
}
switch(data->demodulator.LP_coderate) {
case BDA_BCC_RATE_2_3:
! p_lp_coderate=1;
break;
case BDA_BCC_RATE_3_4:
! p_lp_coderate=2;
break;
case BDA_BCC_RATE_5_6:
! p_lp_coderate=3;
break;
case BDA_BCC_RATE_7_8:
! p_lp_coderate=4;
break;
default:
case BDA_BCC_RATE_1_2:
! p_lp_coderate=0;
break;
}
***************
*** 275,331 ****
}
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval));
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_lp_coderate,p_guardinterval));
! // Actually do it
! ddfs_offset_fixed=0x4000-(ppm<<16)/bw_tab[p_bandwidth]/1000000;
! // From Linux source - This works up to 20000 ppm, it overflows if too large ppm!
! init_freq=(((8UL<<24)+(8UL<<19)/25*ppm/(15625/25))/bw_tab[p_bandwidth]&0xFFFFFF);
! // From Linux source - SPI bias calculation is slightly modified to fit in 32bit, will work for high ppm only...
! spi_bias=378*(1<<10);
! spi_bias*=16;
! spi_bias*=bw_tab[p_bandwidth];
! spi_bias*=qam_tab[p_constellation];
! // spi_bias/=(vcr_tab[p_hp_coderate]+1);
! spi_bias/=(p_hp_coderate+1);
! spi_bias/=(guard_tab[p_guardinterval]+32);
! spi_bias*=(unsigned __int64)1000;
! spi_bias/=(unsigned __int64)1000+ppm/1000;
! // spi_bias*=vcr_tab[p_hp_coderate];
! spi_bias*=p_hp_coderate;
val0x04=(p_transmissionmode<<2)|p_guardinterval;
! val0x05=p_hp_coderate-1;
! // val0x05=fec_tab[p_hp_coderate];
! if(data->demodulator.HierarchyInformation!=HIERARCHY_NONE) val0x05|=(p_lp_coderate-1)<<3;
val0x06=(data->demodulator.HierarchyInformation<<2)|p_constellation;
! //L64781_WriteRegister(device,0x04,val0x04);
! //L64781_WriteRegister(device,0x05,val0x05);
! //L64781_WriteRegister(device,0x06,val0x06);
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write TPS %02x %02x %02x", val0x04, val0x05, val0x06));
!
L64781_Reset_AFC(device);
// From Linux source - Technical manual section 2.6.1, TIM_IIR_GAIN optimal values
L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3);
- L64781_WriteRegister(device,0x16,init_freq&0xFF);
- L64781_WriteRegister(device,0x17,(init_freq>>8)&0xFF);
- L64781_WriteRegister(device,0x18,(init_freq>>16)&0xFF);
! L64781_WriteRegister(device,0x1B,spi_bias&0xFF);
! L64781_WriteRegister(device,0x1C,(spi_bias>>8)&0xFF);
! L64781_WriteRegister(device,0x1D,((spi_bias>>16)&0x7F)|(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED?0x80:0x00));
L64781_WriteRegister(device,0x22,ddfs_offset_fixed&0xFF);
L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write InitFreq %06x", init_freq));
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write SPI Bias %06x", spi_bias));
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write ddfs Offset %04x", ddfs_offset_fixed));
! L64781_ReadRegister(device,0x00); // Clear interrupt register
! L64781_ReadRegister(device,0x01); // DTO
! L64781_WriteRegister(device,0x02,0x01);
! L64781_WriteRegister(device,0x03,0x00);
! L64781_Apply_TPS(device);
data->demodulator.ChangeOutstanding = FALSE;
--- 305,350 ----
}
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval));
!
val0x04=(p_transmissionmode<<2)|p_guardinterval;
! val0x05=(unsigned __int8)p_hp_coderate;
! if(data->demodulator.HierarchyInformation!=HIERARCHY_NONE) {
! val0x05|=(p_lp_coderate<<3);
! }
val0x06=(data->demodulator.HierarchyInformation<<2)|p_constellation;
!
! L64781_WriteRegister(device,0x04,val0x04);
! L64781_WriteRegister(device,0x05,val0x05);
! L64781_WriteRegister(device,0x06,val0x06);
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write TPS %02x %02x %02x", val0x04, val0x05, val0x06));
! p_inverted=(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED);
!
! L64781_Apply_TPS(device);
!
L64781_Reset_AFC(device);
+
+ // setup demod paramters that don't depend on the TPS settings
+
// From Linux source - Technical manual section 2.6.1, TIM_IIR_GAIN optimal values
L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3);
! ddfs_offset_fixed=0x4000-(ppm<<16)/p_bandwidth/1000000;
L64781_WriteRegister(device,0x22,ddfs_offset_fixed&0xFF);
L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
! // From Linux source - This works up to 20000 ppm, it overflows if too large ppm!
! init_freq=(((8UL<<24)+(8UL<<19)/25*ppm/(15625/25))/p_bandwidth&0xFFFFFF);
! L64781_WriteRegister(device,0x16,init_freq&0xFF);
! L64781_WriteRegister(device,0x17,(init_freq>>8)&0xFF);
! L64781_WriteRegister(device,0x18,(init_freq>>16)&0xFF);
! // setup demod paramters that do depend on the TPS settings
! L64781_UpdateSPIBias(device,p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_guardinterval,p_inverted);
!
! L64781_ReadRegister(device,0x00); // Clear interrupt register
! L64781_ReadRegister(device,0x01); // DTO
data->demodulator.ChangeOutstanding = FALSE;
***************
*** 333,339 ****
--- 352,399 ----
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 updated"));
}
+ void L64781_CheckForTPSUpdate(PKSDEVICE device)
+ {
+ // see if the TPS interrupt has been triggered
+ if(L64781_ReadRegister(device,0x00) & 0x01)
+ {
+ DEVICE_CONTEXT *data=GETCONTEXT(device);
+ unsigned __int8 val0x04;
+ unsigned __int8 val0x05;
+ unsigned __int8 val0x06;
+ int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode,p_inverted;
+
+ p_bandwidth=L64781_ConvertBandwidth(data->tuner.bandwidth);
+
+ // if it has then work out what it is telling us
+ val0x04 = L64781_ReadRegister(device, 0x04);
+ val0x05 = L64781_ReadRegister(device, 0x05);
+ val0x06 = L64781_ReadRegister(device, 0x06);
+
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Incoming TPS %02x %02x %02x", val0x04, val0x05, val0x06));
+
+ p_constellation=(val0x06 & 0x03);
+ p_transmissionmode=((data->demodulator.transmit_mode==BDA_XMIT_MODE_8K)?1:0);
+ p_hp_coderate=(val0x05 & 0x07);
+ p_guardinterval=(val0x04 & 0x03);
+ p_inverted=(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED);
+ // write back the values received
+ L64781_WriteRegister(device,0x04,val0x04);
+ L64781_WriteRegister(device,0x05,val0x05);
+ L64781_WriteRegister(device,0x06,val0x06);
+
+ // then set up the demod parameters that depend on the new settings
+ L64781_UpdateSPIBias(device,p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_guardinterval,p_inverted);
+
+ L64781_Apply_TPS(device);
+
+ L64781_ReadRegister(device,0x00); // Clear interrupt register
+ }
+ }
/*****************************************************************************\
* $Log$
+ * Revision 1.6 2003/03/06 17:48:43 adcockj
+ * Added TPS change monitoring thread
+ *
* Revision 1.5 2003/03/04 08:02:22 adcockj
* Interim Checkin
Index: l64781.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** l64781.h 27 Feb 2003 16:50:53 -0000 1.3
--- l64781.h 6 Mar 2003 17:48:43 -0000 1.4
***************
*** 34,40 ****
int L64781_Signal2NoiseRatio(PKSDEVICE device);
void L64781_UpdateParameters(PKSDEVICE device);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
! #define L64781_HasLock(device) (L64781_SignalState(device)&0x7f)
#endif // __L64781_H__
--- 34,41 ----
int L64781_Signal2NoiseRatio(PKSDEVICE device);
void L64781_UpdateParameters(PKSDEVICE device);
+ void L64781_CheckForTPSUpdate(PKSDEVICE device);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
! #define L64781_HasLock(device) ((L64781_SignalState(device)&0x7f)!=0)
#endif // __L64781_H__
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv25067
Modified Files:
Nova-T.inf Sources automation.cpp debug.cpp device.cpp
device.h driver.cpp l64781.cpp saa7146.cpp tuner.cpp
Log Message:
Interim Checkin
Index: Nova-T.inf
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Nova-T.inf,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Nova-T.inf 28 Feb 2003 17:28:22 -0000 1.3
--- Nova-T.inf 4 Mar 2003 08:02:18 -0000 1.4
***************
*** 7,12 ****
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
! ;LayoutFile=Layout.inf
! DriverVer=02/28/2003
; F i l e c o p y i n g s e c t i o n s (where the files go to).
--- 7,12 ----
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
! LayoutFile=Layout.inf
! DriverVer=03/01/2003
; F i l e c o p y i n g s e c t i o n s (where the files go to).
***************
*** 42,46 ****
AddReg = NovaT.AddReg
CopyFiles = NovaT.CopyDrivers
- ; KnownFiles = NovaT.KnownFiles
[NovaT.Device.NT.Services]
--- 42,45 ----
***************
*** 73,82 ****
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,GLOBAL,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,GLOBAL,NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,GLOBAL,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,GLOBAL,NovaT.Interfaces,
[NovaT.Interfaces]
--- 72,81 ----
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Interfaces]
***************
*** 157,160 ****
--- 156,162 ----
;***********************************************************************
; $Log$
+ ; Revision 1.4 2003/03/04 08:02:18 adcockj
+ ; Interim Checkin
+ ;
; Revision 1.3 2003/02/28 17:28:22 adcockj
; Removed nelines from debug prints
Index: Sources
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Sources,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Sources 14 Feb 2003 19:13:36 -0000 1.1.1.1
--- Sources 4 Mar 2003 08:02:19 -0000 1.2
***************
*** 10,18 ****
TARGETTYPE=DRIVER
# Presumably these paths need adjusted for other DDK versions.
! TARGETLIBS=\winddk\2600\lib\wxp\i386\ks.lib \
! \winddk\2600\lib\wxp\i386\ksguid.lib \
! \winddk\2600\lib\wxp\i386\BdaSup.lib
! INCLUDES=\winddk\2600\inc; \
! $(DDK_INC_PATH)\wdm;
SOURCES=HNTbda.rc\
driver.cpp\
--- 10,20 ----
TARGETTYPE=DRIVER
# Presumably these paths need adjusted for other DDK versions.
! TARGETLIBS=$(DDK_LIB_PATH)\ks.lib \
! $(DDK_LIB_PATH)\ksguid.lib \
! $(DDK_LIB_PATH)\BdaSup.lib
! INCLUDES= \
! $(DDK_INC_PATH); \
! $(DDK_INC_PATH)\wdm;
!
SOURCES=HNTbda.rc\
driver.cpp\
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** automation.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- automation.cpp 4 Mar 2003 08:02:19 -0000 1.5
***************
*** 25,28 ****
--- 25,31 ----
#include "automation.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
// This file is mainly just a horrible pile of functions which connect the
// automation tables for the kernel streaming/BDA interface to the functions
***************
*** 32,41 ****
// when FilterCommitChanges() is called
! #define GETDEVICEFROMIRP(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
// For Tuner node
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
--- 35,45 ----
// when FilterCommitChanges() is called
! #define GETDEVICEFROMIRPPIN(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
! #define GETDEVICEFROMIRPFILT(irp) KsFilterGetDevice(KsGetFilterFromIrp(irp))
// For Tuner node
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
***************
*** 43,52 ****
{
ULONG frequency=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
! }
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",frequency));
return STATUS_SUCCESS;
--- 47,57 ----
{
ULONG frequency=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! }
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",frequency));
return STATUS_SUCCESS;
***************
*** 55,59 ****
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
--- 60,64 ----
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
***************
*** 61,69 ****
{
ULONG freq_mult=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",freq_mult));
--- 66,75 ----
{
ULONG freq_mult=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",freq_mult));
***************
*** 73,77 ****
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
--- 79,83 ----
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
***************
*** 79,83 ****
{
ULONG bandwidth=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
// note that the tuner isn't effected by this setting but the
--- 85,89 ----
{
ULONG bandwidth=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
// note that the tuner isn't effected by this setting but the
***************
*** 85,90 ****
if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
GETCONTEXT(device)->tuner.bandwidth=bandwidth;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",bandwidth));
return STATUS_SUCCESS;
--- 91,96 ----
if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
GETCONTEXT(device)->tuner.bandwidth=bandwidth;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",bandwidth));
return STATUS_SUCCESS;
***************
*** 93,97 ****
NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
--- 99,103 ----
NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
***************
*** 102,106 ****
NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRP(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 108,112 ----
NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 110,114 ****
NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRP(pIrp))*100)/255);
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 116,120 ----
NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRPPIN(pIrp))*100)/255);
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 117,121 ****
NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRP(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 123,127 ----
NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 124,128 ****
NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
--- 130,134 ----
NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
***************
*** 130,139 ****
{
ModulationType newtype=(ModulationType)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! if((newtype!=BDA_MOD_QPSK)&&(newtype!=BDA_MOD_16QAM)&&(newtype!=BDA_MOD_64QAM)) return STATUS_INVALID_PARAMETER;
if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
GETCONTEXT(device)->demodulator.modulation=newtype;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%u)",newtype));
return STATUS_SUCCESS;
--- 136,148 ----
{
ModulationType newtype=(ModulationType)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if((newtype!=BDA_MOD_QPSK)&&(newtype!=BDA_MOD_16QAM)&&(newtype!=BDA_MOD_64QAM)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Type setting to default(%u)", *pulProperty));
! newtype = BDA_MOD_64QAM;
! }
if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
GETCONTEXT(device)->demodulator.modulation=newtype;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%u)",newtype));
return STATUS_SUCCESS;
***************
*** 148,158 ****
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%u)",*pulProperty));
! if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
! else return STATUS_INVALID_PARAMETER;
}
NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
--- 157,166 ----
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%u)",*pulProperty));
! return STATUS_SUCCESS;
}
NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
***************
*** 160,173 ****
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) return STATUS_INVALID_PARAMETER; // Fix
if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
GETCONTEXT(device)->demodulator.HP_coderate=rate;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%u)",rate));
return STATUS_SUCCESS;
--- 168,184 ----
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Rate setting to default(%u)", *pulProperty));
! rate = BDA_BCC_RATE_1_2;
! }
if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
GETCONTEXT(device)->demodulator.HP_coderate=rate;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%u)",rate));
return STATUS_SUCCESS;
***************
*** 182,192 ****
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
! if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
! else return STATUS_INVALID_PARAMETER;
}
NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
--- 193,202 ----
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
! return STATUS_SUCCESS;
}
NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
***************
*** 194,207 ****
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) return STATUS_INVALID_PARAMETER; // Fix
if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
GETCONTEXT(device)->demodulator.LP_coderate=rate;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",rate));
return STATUS_SUCCESS;
--- 204,220 ----
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Rate setting to default(%u)", *pulProperty));
! rate = BDA_BCC_RATE_NOT_SET;
! }
if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
GETCONTEXT(device)->demodulator.LP_coderate=rate;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",rate));
return STATUS_SUCCESS;
***************
*** 210,219 ****
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
--- 223,232 ----
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
***************
*** 225,229 ****
NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(GuardInterval)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
--- 238,242 ----
NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(GuardInterval)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
***************
*** 231,240 ****
{
GuardInterval guard_interval=(GuardInterval)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%i)",guard_interval));
return STATUS_SUCCESS;
--- 244,253 ----
{
GuardInterval guard_interval=(GuardInterval)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%i)",guard_interval));
return STATUS_SUCCESS;
***************
*** 243,247 ****
NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(TransmissionMode)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
--- 256,260 ----
NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(TransmissionMode)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
***************
*** 249,258 ****
{
TransmissionMode transmit_mode=(TransmissionMode)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",transmit_mode));
return STATUS_SUCCESS;
--- 262,271 ----
{
TransmissionMode transmit_mode=(TransmissionMode)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",transmit_mode));
return STATUS_SUCCESS;
***************
*** 261,265 ****
NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
--- 274,278 ----
NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
***************
*** 267,276 ****
{
SpectralInversion inversion=(SpectralInversion)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
GETCONTEXT(device)->demodulator.inversion=inversion;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",inversion));
return STATUS_SUCCESS;
--- 280,289 ----
{
SpectralInversion inversion=(SpectralInversion)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
GETCONTEXT(device)->demodulator.inversion=inversion;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",inversion));
return STATUS_SUCCESS;
***************
*** 305,313 ****
_DbgPrintF(DEBUGLVL_TERSE, ("CommitChanges()"));
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate alterations
status=BdaCommitChanges(pIrp);
! if(NT_SUCCESS(status)) {
// we will always reset the setting on moving out of stop
// so don't bother updating the hardware if we are stopped
--- 318,326 ----
_DbgPrintF(DEBUGLVL_TERSE, ("CommitChanges()"));
! PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
// Validate alterations
status=BdaCommitChanges(pIrp);
! if(NT_SUCCESS(status) && device != NULL && GETCONTEXT(device) != NULL) {
// we will always reset the setting on moving out of stop
// so don't bother updating the hardware if we are stopped
***************
*** 317,323 ****
Tuner_SetFrequency(device);
}
- if(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE) {
- L64781_UpdateParameters(device);
- }
}
}
--- 330,333 ----
***************
*** 328,336 ****
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
_DbgPrintF(DEBUGLVL_TERSE, ("GetChangeState()"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
! if(NT_SUCCESS(status)) {
if((topologyChangeState==BDA_CHANGES_PENDING)||
(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE)||
--- 338,346 ----
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
! PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
_DbgPrintF(DEBUGLVL_TERSE, ("GetChangeState()"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
! if(NT_SUCCESS(status) && device != NULL && GETCONTEXT(device) != NULL) {
if((topologyChangeState==BDA_CHANGES_PENDING)||
(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE)||
***************
*** 346,349 ****
--- 356,362 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:19 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: debug.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/debug.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** debug.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- debug.cpp 4 Mar 2003 08:02:20 -0000 1.3
***************
*** 24,27 ****
--- 24,30 ----
#include "debug.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
const char *data="HNTbda";
***************
*** 90,93 ****
--- 93,99 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/03/04 08:02:20 adcockj
+ * Interim Checkin
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** device.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- device.cpp 4 Mar 2003 08:02:20 -0000 1.5
***************
*** 25,28 ****
--- 25,32 ----
#include "saa7146.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
#if PAGE_SIZE!=SAA7146_PAGE_SIZE
#error This driver currently requires the architecture page size to be equal to the SAA7146 page size.
***************
*** 250,257 ****
// Temp
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
- L64781_UpdateParameters((PKSDEVICE)Pin->Context);
// And now, continue
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
_DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
--- 254,263 ----
// Temp
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
// And now, continue
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
+ if(ToState==KSSTATE_RUN) {
+ GETCONTEXT(Pin->Context)->sendDiscontinuity = true;
+ }
GETCONTEXT(Pin->Context)->cur_state=ToState;
_DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
***************
*** 261,264 ****
--- 267,273 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:20 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: device.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** device.h 17 Feb 2003 11:07:12 -0000 1.2
--- device.h 4 Mar 2003 08:02:20 -0000 1.3
***************
*** 28,31 ****
--- 28,32 ----
int lost_error;
int counter;
+ bool sendDiscontinuity;
// I2C bus data
unsigned char demod_address; // Address of L64781 demodulator
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** driver.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- driver.cpp 4 Mar 2003 08:02:21 -0000 1.5
***************
*** 25,28 ****
--- 25,32 ----
#include "automation.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
extern const KS_DATARANGE_BDA_ANTENNA AntennaIn;
***************
*** 228,232 ****
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
! DEFINE_KSAUTOMATION_PROPERTIES(FilterProperties),
DEFINE_KSAUTOMATION_METHODS(FilterMethods),
DEFINE_KSAUTOMATION_EVENTS_NULL
--- 232,236 ----
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
! DEFINE_KSAUTOMATION_PROPERTIES_NULL,
DEFINE_KSAUTOMATION_METHODS(FilterMethods),
DEFINE_KSAUTOMATION_EVENTS_NULL
***************
*** 235,238 ****
--- 239,248 ----
// Blah
+ DEFINE_KSAUTOMATION_TABLE(NullAutomation) {
+ DEFINE_KSAUTOMATION_PROPERTIES_NULL,
+ DEFINE_KSAUTOMATION_METHODS_NULL,
+ DEFINE_KSAUTOMATION_EVENTS_NULL
+ };
+
const KSFILTER_DISPATCH FilterDispatch={
/* Create */ FilterCreate,
***************
*** 254,274 ****
NTSTATUS AntennaSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
- /*
{
! int i,j;
! if(ToState==KSSTATE_STOP) i=0;
! else if(ToState==KSSTATE_ACQUIRE) i=1;
! else if(ToState==KSSTATE_PAUSE) i=2;
! else if(ToState==KSSTATE_RUN) i=3;
! else i=15;
! if(FromState==KSSTATE_STOP) j=0;
! else if(FromState==KSSTATE_ACQUIRE) j=1;
! else if(FromState==KSSTATE_PAUSE) j=2;
! else if(FromState==KSSTATE_RUN) j=3;
! else j=15;
! PrintString((PKSDEVICE)Pin->Context,"AntennaSetDeviceState: Changed state!",(i<<4)|j);
}
- */
return STATUS_SUCCESS;
}
--- 264,282 ----
NTSTATUS AntennaSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
{
! char *i,*j;
! if(ToState==KSSTATE_STOP) i="Stop";
! else if(ToState==KSSTATE_ACQUIRE) i="Acquire";
! else if(ToState==KSSTATE_PAUSE) i="Pause";
! else if(ToState==KSSTATE_RUN) i="Run";
! else i="Unknown";
! if(FromState==KSSTATE_STOP) j="Stop";
! else if(FromState==KSSTATE_ACQUIRE) j="Acquire";
! else if(FromState==KSSTATE_PAUSE) j="Pause";
! else if(FromState==KSSTATE_RUN) j="Run";
! else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("AntennaSetDeviceState called from %s to %s",j,i));
}
return STATUS_SUCCESS;
}
***************
*** 381,385 ****
{ // Antenna input pin
&AntennaDispatch,
! &TunerAutomation,
{
0,NULL,
--- 389,393 ----
{ // Antenna input pin
&AntennaDispatch,
! &NullAutomation,
{
0,NULL,
***************
*** 402,406 ****
{ // Transport Stream output pin
&OutputDispatch,
! &DemodulatorAutomation,
{
SIZEOF_ARRAY(StreamInterface),
--- 410,414 ----
{ // Transport Stream output pin
&OutputDispatch,
! &NullAutomation,
{
SIZEOF_ARRAY(StreamInterface),
***************
*** 492,497 ****
// SIZEOF_ARRAY(FilterDescriptors),
// FilterDescriptors
! 0,NULL, // So BdaInitFilter works, since this isn't exporting any kernel streaming filters
! KSDEVICE_DESCRIPTOR_VERSION
};
--- 500,504 ----
// SIZEOF_ARRAY(FilterDescriptors),
// FilterDescriptors
! 0,NULL // So BdaInitFilter works, since this isn't exporting any kernel streaming filters
};
***************
*** 526,529 ****
--- 533,539 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:21 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** l64781.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- l64781.cpp 4 Mar 2003 08:02:22 -0000 1.5
***************
*** 29,32 ****
--- 29,36 ----
#include "saa7146.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
unsigned __int8 L64781_ReadRegister(PKSDEVICE device,unsigned __int8 reg)
{
***************
*** 107,113 ****
data->tuner.bandwidth=8;
data->tuner.ChangeOutstanding=FALSE;
- data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET;
data->demodulator.modulation=BDA_MOD_64QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
--- 111,119 ----
data->tuner.bandwidth=8;
data->tuner.ChangeOutstanding=FALSE;
data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET;
+ data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.modulation=BDA_MOD_64QAM;
+ data->demodulator.HP_coderate=BDA_BCC_RATE_1_2;
+ data->demodulator.modulation=BDA_MOD_16QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
***************
*** 129,133 ****
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialised"));
! return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
--- 135,142 ----
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialised"));
!
! L64781_UpdateParameters(device);
!
! return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
***************
*** 180,183 ****
--- 189,198 ----
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 updating"));
+ val0x04 = L64781_ReadRegister(device, 0x04);
+ val0x05 = L64781_ReadRegister(device, 0x05);
+ val0x06 = L64781_ReadRegister(device, 0x06);
+
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Last Read TPS %02x %02x %02x", val0x04, val0x05, val0x06));
+
// All parameters are checked by automation functions, so no need to check here
// Now translate Microsoft constants into the constants the Linux code originally wanted
***************
*** 209,221 ****
else p_transmissionmode=0;
switch(data->demodulator.HP_coderate) {
- default:
- p_hp_coderate=0;
- break;
case BDA_BCC_RATE_1_2:
p_hp_coderate=1;
break;
- case BDA_BCC_RATE_2_3:
- p_hp_coderate=2;
- break;
case BDA_BCC_RATE_3_4:
p_hp_coderate=3;
--- 224,230 ----
***************
*** 227,241 ****
p_hp_coderate=5;
break;
! case BDA_BCC_RATE_NOT_DEFINED:
! p_hp_coderate=6;
break;
}
switch(data->demodulator.LP_coderate) {
- default:
- p_lp_coderate=0;
- break;
- case BDA_BCC_RATE_1_2:
- p_lp_coderate=1;
- break;
case BDA_BCC_RATE_2_3:
p_lp_coderate=2;
--- 236,245 ----
p_hp_coderate=5;
break;
! default:
! case BDA_BCC_RATE_2_3:
! p_hp_coderate=2;
break;
}
switch(data->demodulator.LP_coderate) {
case BDA_BCC_RATE_2_3:
p_lp_coderate=2;
***************
*** 250,255 ****
p_lp_coderate=5;
break;
! case BDA_BCC_RATE_NOT_DEFINED:
! p_lp_coderate=6;
break;
}
--- 254,260 ----
p_lp_coderate=5;
break;
! default:
! case BDA_BCC_RATE_1_2:
! p_lp_coderate=1;
break;
}
***************
*** 288,299 ****
spi_bias*=p_hp_coderate;
val0x04=(p_transmissionmode<<2)|p_guardinterval;
! // val0x05=p_hp_coderate-1;
! val0x05=fec_tab[p_hp_coderate];
if(data->demodulator.HierarchyInformation!=HIERARCHY_NONE) val0x05|=(p_lp_coderate-1)<<3;
val0x06=(data->demodulator.HierarchyInformation<<2)|p_constellation;
! L64781_WriteRegister(device,0x04,val0x04);
! L64781_WriteRegister(device,0x05,val0x05);
! L64781_WriteRegister(device,0x06,val0x06);
! L64781_Reset_AFC(device);
// From Linux source - Technical manual section 2.6.1, TIM_IIR_GAIN optimal values
L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3);
--- 293,307 ----
spi_bias*=p_hp_coderate;
val0x04=(p_transmissionmode<<2)|p_guardinterval;
! val0x05=p_hp_coderate-1;
! // val0x05=fec_tab[p_hp_coderate];
if(data->demodulator.HierarchyInformation!=HIERARCHY_NONE) val0x05|=(p_lp_coderate-1)<<3;
val0x06=(data->demodulator.HierarchyInformation<<2)|p_constellation;
! //L64781_WriteRegister(device,0x04,val0x04);
! //L64781_WriteRegister(device,0x05,val0x05);
! //L64781_WriteRegister(device,0x06,val0x06);
!
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write TPS %02x %02x %02x", val0x04, val0x05, val0x06));
!
! L64781_Reset_AFC(device);
// From Linux source - Technical manual section 2.6.1, TIM_IIR_GAIN optimal values
L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3);
***************
*** 309,315 ****
--- 317,330 ----
L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write InitFreq %06x", init_freq));
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write SPI Bias %06x", spi_bias));
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write ddfs Offset %04x", ddfs_offset_fixed));
+
L64781_ReadRegister(device,0x00); // Clear interrupt register
L64781_ReadRegister(device,0x01); // DTO
+ L64781_WriteRegister(device,0x02,0x01);
+ L64781_WriteRegister(device,0x03,0x00);
+
L64781_Apply_TPS(device);
***************
*** 321,324 ****
--- 336,342 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:22 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** saa7146.cpp 28 Feb 2003 17:28:24 -0000 1.4
--- saa7146.cpp 4 Mar 2003 08:02:22 -0000 1.5
***************
*** 28,31 ****
--- 28,35 ----
#include "debug.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
// Prototypes
void SAA7146_Interrupt_VPE(PKSDEVICE device);
***************
*** 75,78 ****
--- 79,83 ----
GETCONTEXT(device)->lost_error=0; // Indicates lost buffers due to kernel not processing fast enough
GETCONTEXT(device)->counter=0;
+ GETCONTEXT(device)->sendDiscontinuity = true;
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
for(i=0;i<PAGE_ALLOCATE;i++) RtlZeroMemory(GETCONTEXT(device)->dma_pages[i],0x1000);
***************
*** 141,144 ****
--- 146,151 ----
GETCONTEXT(device)->lost_error++;
}
+
+
void SAA7146_DPCRoutine(PKDPC Dpc,PVOID DeferredContext,PVOID SystemArgument1,PVOID SystemArgument2)
{
***************
*** 201,204 ****
--- 208,219 ----
}
}
+ if(GETCONTEXT(device)->sendDiscontinuity == true) {
+ stream_pointer->StreamHeader->OptionsFlags |= KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY;
+ GETCONTEXT(device)->sendDiscontinuity = false;
+ }
+ else {
+ stream_pointer->StreamHeader->OptionsFlags &= ~KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY;
+ }
+
KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
GETCONTEXT(device)->counter++;
***************
*** 365,368 ****
--- 380,386 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:22 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:24 adcockj
* Removed nelines from debug prints
Index: tuner.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tuner.cpp 28 Feb 2003 17:28:24 -0000 1.4
--- tuner.cpp 4 Mar 2003 08:02:22 -0000 1.5
***************
*** 32,35 ****
--- 32,38 ----
#include "saa7146.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
// The intention for this code was to allow other tuners to be added later,
// based on the tuner code from one of the older Linux DVB drivers. Sadly,
***************
*** 119,122 ****
--- 122,128 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:22 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:24 adcockj
* Removed nelines from debug prints
|
|
From: <ad...@us...> - 2003-02-28 17:28:32
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv17665
Modified Files:
Nova-T.inf automation.cpp device.cpp driver.cpp l64781.cpp
saa7146.cpp tuner.cpp
Log Message:
Removed nelines from debug prints
Index: Nova-T.inf
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Nova-T.inf,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Nova-T.inf 27 Feb 2003 16:50:51 -0000 1.2
--- Nova-T.inf 28 Feb 2003 17:28:22 -0000 1.3
***************
*** 7,12 ****
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
! LayoutFile=Layout.inf
! DriverVer=1/24/2003
; F i l e c o p y i n g s e c t i o n s (where the files go to).
--- 7,12 ----
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
! ;LayoutFile=Layout.inf
! DriverVer=02/28/2003
; F i l e c o p y i n g s e c t i o n s (where the files go to).
***************
*** 48,52 ****
[NovaT.AddService]
! DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
--- 48,52 ----
[NovaT.AddService]
! DisplayName = %NovaT.FriendlyName%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
***************
*** 73,82 ****
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Interfaces]
--- 73,82 ----
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,GLOBAL,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,GLOBAL,NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,GLOBAL,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,GLOBAL,NovaT.Interfaces,
[NovaT.Interfaces]
***************
*** 96,100 ****
NovaT.Tuner = "NovaT.Tuner"
KSNAME_Filter = "{9B365890-165F-11D0-A195-0020AFD156E4}"
- SvcDesc = "Philips TV Tuner"
;
; The following items should be moved to KS_registration - TCP
--- 96,99 ----
***************
*** 158,161 ****
--- 157,163 ----
;***********************************************************************
; $Log$
+ ; Revision 1.3 2003/02/28 17:28:22 adcockj
+ ; Removed nelines from debug prints
+ ;
; Revision 1.2 2003/02/27 16:50:51 adcockj
; Tidy up debug logging ready for release
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** automation.cpp 27 Feb 2003 16:50:52 -0000 1.3
--- automation.cpp 28 Feb 2003 17:28:23 -0000 1.4
***************
*** 49,53 ****
GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerFrequencyPut(%u)\n",frequency));
return STATUS_SUCCESS;
}
--- 49,53 ----
GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",frequency));
return STATUS_SUCCESS;
}
***************
*** 67,71 ****
GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerFrequencyMultiplerPut(%u)\n",freq_mult));
return STATUS_SUCCESS;
}
--- 67,71 ----
GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",freq_mult));
return STATUS_SUCCESS;
}
***************
*** 87,91 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerBandwidthPut(%u)\n",bandwidth));
return STATUS_SUCCESS;
}
--- 87,91 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",bandwidth));
return STATUS_SUCCESS;
}
***************
*** 96,100 ****
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerSignalStrengthGet, irp=0x%p, device=0x%p, strength=%i\n",pIrp,device,*pulProperty));
return STATUS_SUCCESS;
}
--- 96,100 ----
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet, irp=0x%p, device=0x%p, strength=%i",pIrp,device,*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 103,107 ****
{
*pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRP(pIrp));
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerSignalStrengthGet (%d)\n",*pulProperty));
return STATUS_SUCCESS;
}
--- 103,107 ----
{
*pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRP(pIrp));
! _DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 111,115 ****
{
*pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRP(pIrp))*100)/255);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSignalQualityGet (%d)\n",*pulProperty));
return STATUS_SUCCESS;
}
--- 111,115 ----
{
*pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRP(pIrp))*100)/255);
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 118,122 ****
{
*pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRP(pIrp));
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSignalLockedGet (%d)\n",*pulProperty));
return STATUS_SUCCESS;
}
--- 118,122 ----
{
*pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRP(pIrp));
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 136,140 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodModulationTypePut(%u)\n",newtype));
return STATUS_SUCCESS;
}
--- 136,140 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%u)",newtype));
return STATUS_SUCCESS;
}
***************
*** 147,151 ****
NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodInnerFecTypePut(%u)\n",*pulProperty));
if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
else return STATUS_INVALID_PARAMETER;
--- 147,151 ----
NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%u)",*pulProperty));
if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
else return STATUS_INVALID_PARAMETER;
***************
*** 170,174 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodInnerFecRatePut(%u)\n",rate));
return STATUS_SUCCESS;
}
--- 170,174 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%u)",rate));
return STATUS_SUCCESS;
}
***************
*** 181,185 ****
NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodOuterFecTypePut(%u)\n",*pulProperty));
if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
else return STATUS_INVALID_PARAMETER;
--- 181,185 ----
NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
else return STATUS_INVALID_PARAMETER;
***************
*** 204,208 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodOuterFecRatePut(%u)\n",rate));
return STATUS_SUCCESS;
}
--- 204,208 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",rate));
return STATUS_SUCCESS;
}
***************
*** 219,223 ****
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
//GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSymbolRatePut(%u)\n",*pulProperty));
return STATUS_SUCCESS;
}
--- 219,223 ----
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
//GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSymbolRatePut(%u)",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 237,241 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodGuardIntervalPut(%i)\n",guard_interval));
return STATUS_SUCCESS;
}
--- 237,241 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%i)",guard_interval));
return STATUS_SUCCESS;
}
***************
*** 255,259 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodTransmissionModePut(%i)\n",transmit_mode));
return STATUS_SUCCESS;
}
--- 255,259 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",transmit_mode));
return STATUS_SUCCESS;
}
***************
*** 273,277 ****
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSpectralInversionPut(%i)\n",inversion));
return STATUS_SUCCESS;
}
--- 273,277 ----
GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",inversion));
return STATUS_SUCCESS;
}
***************
*** 282,286 ****
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoStartChanges()\n"));
status=BdaStartChanges(pIrp);
if(NT_SUCCESS(status)) {
--- 282,286 ----
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("StartChanges()"));
status=BdaStartChanges(pIrp);
if(NT_SUCCESS(status)) {
***************
*** 293,297 ****
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoCheckChanges()\n"));
status=BdaCheckChanges(pIrp);
if(NT_SUCCESS(status)) {
--- 293,297 ----
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("CheckChanges()"));
status=BdaCheckChanges(pIrp);
if(NT_SUCCESS(status)) {
***************
*** 303,307 ****
{
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoCommitChanges()\n"));
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
--- 303,307 ----
{
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("CommitChanges()"));
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
***************
*** 330,334 ****
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoGetChangeState()\n"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
if(NT_SUCCESS(status)) {
--- 330,334 ----
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! _DbgPrintF(DEBUGLVL_TERSE, ("GetChangeState()"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
if(NT_SUCCESS(status)) {
***************
*** 346,349 ****
--- 346,352 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.4 2003/02/28 17:28:23 adcockj
+ * Removed nelines from debug prints
+ *
* Revision 1.3 2003/02/27 16:50:52 adcockj
* Tidy up debug logging ready for release
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** device.cpp 27 Feb 2003 16:50:52 -0000 1.3
--- device.cpp 28 Feb 2003 17:28:23 -0000 1.4
***************
*** 47,51 ****
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceAdd()\n"));
// Allocate context storage
device->Context=ExAllocatePoolWithTag(NonPagedPool,sizeof(DEVICE_CONTEXT),'ECIM');
--- 47,51 ----
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceAdd()"));
// Allocate context storage
device->Context=ExAllocatePoolWithTag(NonPagedPool,sizeof(DEVICE_CONTEXT),'ECIM');
***************
*** 58,62 ****
GETCONTEXT(device)->tuner_address=I2C_TUNER;
GETCONTEXT(device)->tuner.type=TUNER_TSA5060;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceAdd() complete\n"));
// Done
return result;
--- 58,62 ----
GETCONTEXT(device)->tuner_address=I2C_TUNER;
GETCONTEXT(device)->tuner.type=TUNER_TSA5060;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceAdd() complete"));
// Done
return result;
***************
*** 64,68 ****
VOID DeviceRemove(IN PKSDEVICE device,IN PIRP irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceRemove()\n"));
}
--- 64,68 ----
VOID DeviceRemove(IN PKSDEVICE device,IN PIRP irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceRemove()"));
}
***************
*** 72,76 ****
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStart()\n"));
// Search for memory to map
for(i=0,mem=-1,interrupt=-1;(i<translatedResources->List[0].PartialResourceList.Count)&&((mem==-1)||(interrupt==-1));i++) {
--- 72,76 ----
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStart()"));
// Search for memory to map
for(i=0,mem=-1,interrupt=-1;(i<translatedResources->List[0].PartialResourceList.Count)&&((mem==-1)||(interrupt==-1));i++) {
***************
*** 157,161 ****
return result;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStart() complete\n"));
// Ready!
return STATUS_SUCCESS;
--- 157,161 ----
return result;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStart() complete"));
// Ready!
return STATUS_SUCCESS;
***************
*** 166,170 ****
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStop()\n"));
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
--- 166,170 ----
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop()"));
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
***************
*** 180,184 ****
// Unmap memory
MmUnmapIoSpace(GETCONTEXT(device)->pci_memory,GETCONTEXT(device)->pci_size);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStop() complete\n"));
}
--- 180,184 ----
// Unmap memory
MmUnmapIoSpace(GETCONTEXT(device)->pci_memory,GETCONTEXT(device)->pci_size);
! _DbgPrintF(DEBUGLVL_TERSE, ("DeviceStop() complete"));
}
***************
*** 189,193 ****
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoFilterCreate()\n"));
Filter->Context=KsFilterGetDevice(Filter);
if((Filter->Context==NULL)||(((PKSDEVICE)Filter->Context)->Context==NULL)) return STATUS_DEVICE_NOT_CONNECTED;
--- 189,193 ----
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("FilterCreate()"));
Filter->Context=KsFilterGetDevice(Filter);
if((Filter->Context==NULL)||(((PKSDEVICE)Filter->Context)->Context==NULL)) return STATUS_DEVICE_NOT_CONNECTED;
***************
*** 203,207 ****
NTSTATUS FilterClose(IN PKSFILTER Filter,IN PIRP Irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoFilterClose()\n"));
BdaUninitFilter(Filter);
// Shut down anything still going on
--- 203,207 ----
NTSTATUS FilterClose(IN PKSFILTER Filter,IN PIRP Irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("FilterClose()"));
BdaUninitFilter(Filter);
// Shut down anything still going on
***************
*** 240,244 ****
else if(FromState==KSSTATE_RUN) j="Run";
else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoChanged state from %s to %s\n",j,i));
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
--- 240,244 ----
else if(FromState==KSSTATE_RUN) j="Run";
else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("Changed state from %s to %s",j,i));
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
***************
*** 255,259 ****
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoState changed!\n"));
return STATUS_SUCCESS;
}
--- 255,259 ----
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
! _DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
return STATUS_SUCCESS;
}
***************
*** 261,264 ****
--- 261,267 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.4 2003/02/28 17:28:23 adcockj
+ * Removed nelines from debug prints
+ *
* Revision 1.3 2003/02/27 16:50:52 adcockj
* Tidy up debug logging ready for release
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** driver.cpp 27 Feb 2003 16:50:52 -0000 1.3
--- driver.cpp 28 Feb 2003 17:28:23 -0000 1.4
***************
*** 520,524 ****
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("MICE Hauppauge Nova-T replacement driver 1.00 started\n"))
return KsInitializeDriver(DriverObject,RegistryPath,&DeviceDescriptor);
}
--- 520,524 ----
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
! //_DbgPrintF(DEBUGLVL_TERSE, ("MICE Hauppauge Nova-T replacement driver 1.00 started"))
return KsInitializeDriver(DriverObject,RegistryPath,&DeviceDescriptor);
}
***************
*** 526,529 ****
--- 526,532 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.4 2003/02/28 17:28:23 adcockj
+ * Removed nelines from debug prints
+ *
* Revision 1.3 2003/02/27 16:50:52 adcockj
* Tidy up debug logging ready for release
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** l64781.cpp 27 Feb 2003 16:50:52 -0000 1.3
--- l64781.cpp 28 Feb 2003 17:28:23 -0000 1.4
***************
*** 101,105 ****
DEVICE_CONTEXT *data=GETCONTEXT(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 initialise\n"));
// Initialise tuner structures to default
data->tuner.frequency=570000;
--- 101,105 ----
DEVICE_CONTEXT *data=GETCONTEXT(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise"));
// Initialise tuner structures to default
data->tuner.frequency=570000;
***************
*** 128,139 ****
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 initialised\n"));
return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 closing\n"));
L64781_WriteRegister(device,0x3E,0x5A); // Crashes Linux. Windows?
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 closed\n"));
}
unsigned __int8 _L64781_SignalStrength(PKSDEVICE device)
--- 128,139 ----
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialised"));
return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 closing"));
L64781_WriteRegister(device,0x3E,0x5A); // Crashes Linux. Windows?
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 closed"));
}
unsigned __int8 _L64781_SignalStrength(PKSDEVICE device)
***************
*** 179,183 ****
int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 updating\n"));
// All parameters are checked by automation functions, so no need to check here
// Now translate Microsoft constants into the constants the Linux code originally wanted
--- 179,183 ----
int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode;
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 updating"));
// All parameters are checked by automation functions, so no need to check here
// Now translate Microsoft constants into the constants the Linux code originally wanted
***************
*** 269,274 ****
break;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)\n",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval));
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)\n",p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_lp_coderate,p_guardinterval));
// Actually do it
ddfs_offset_fixed=0x4000-(ppm<<16)/bw_tab[p_bandwidth]/1000000;
--- 269,274 ----
break;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval));
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_lp_coderate,p_guardinterval));
// Actually do it
ddfs_offset_fixed=0x4000-(ppm<<16)/bw_tab[p_bandwidth]/1000000;
***************
*** 316,324 ****
data->demodulator.ChangeOutstanding = FALSE;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 updated\n"));
}
/*****************************************************************************\
* $Log$
* Revision 1.3 2003/02/27 16:50:52 adcockj
* Tidy up debug logging ready for release
--- 316,327 ----
data->demodulator.ChangeOutstanding = FALSE;
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 updated"));
}
/*****************************************************************************\
* $Log$
+ * Revision 1.4 2003/02/28 17:28:23 adcockj
+ * Removed nelines from debug prints
+ *
* Revision 1.3 2003/02/27 16:50:52 adcockj
* Tidy up debug logging ready for release
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** saa7146.cpp 27 Feb 2003 16:50:53 -0000 1.3
--- saa7146.cpp 28 Feb 2003 17:28:24 -0000 1.4
***************
*** 35,39 ****
NTSTATUS SAA7146_Init(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Init\n"));
DeviceWriteRegister32(device,REG_IIC_STA,I2C_SPEED); // Set I2C bus speed
DeviceWriteRegister32(device,REG_IICTRF,0); // Clear the I2C output
--- 35,39 ----
NTSTATUS SAA7146_Init(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Init"));
DeviceWriteRegister32(device,REG_IIC_STA,I2C_SPEED); // Set I2C bus speed
DeviceWriteRegister32(device,REG_IICTRF,0); // Clear the I2C output
***************
*** 48,52 ****
void SAA7146_Close(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Close\n"));
}
--- 48,52 ----
void SAA7146_Close(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Close"));
}
***************
*** 70,74 ****
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Starting stream\n"));
GETCONTEXT(device)->pv_error=0; // Number of Protection Violation errors
GETCONTEXT(device)->switcher=0; // Switches buffers
--- 70,74 ----
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Starting stream"));
GETCONTEXT(device)->pv_error=0; // Number of Protection Violation errors
GETCONTEXT(device)->switcher=0; // Switches buffers
***************
*** 97,101 ****
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)|IR_FIDB); // Interrupt on
// Done
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Stream started\n"));
return STATUS_SUCCESS;
}
--- 97,101 ----
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)|IR_FIDB); // Interrupt on
// Done
! _DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Stream started"));
return STATUS_SUCCESS;
}
***************
*** 103,107 ****
void SAA7146_StopStream(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Stopping stream\n"));
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC2_RPS_SIG0)); // RPS0 off
--- 103,107 ----
void SAA7146_StopStream(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("SAA7146 Stopping stream"));
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC2_RPS_SIG0)); // RPS0 off
***************
*** 231,235 ****
if(i==0) {
PrintString(device,"I2C transmission timeout");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: transmission timeout\n"));
return FALSE;
}
--- 231,235 ----
if(i==0) {
PrintString(device,"I2C transmission timeout");
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C error: transmission timeout"));
return FALSE;
}
***************
*** 237,257 ****
case IIC_STA_AL:
PrintString(device,"I2C error: arbitration lost");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: arbitration lost\n"));
break;
case IIC_STA_DRERR:
PrintString(device,"I2C error: receiving data");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: receiving data\n"));
break;
case IIC_STA_DTERR:
PrintString(device,"I2C error: data transmission");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: data transmission\n"));
break;
case IIC_STA_APERR:
PrintString(device,"I2C error: address phase");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: address phase\n"));
break;
case IIC_STA_SPERR:
PrintString(device,"I2C error: invalid start/stop condition");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: invalid start/stop condition\n"));
break;
}
--- 237,257 ----
case IIC_STA_AL:
PrintString(device,"I2C error: arbitration lost");
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C error: arbitration lost"));
break;
case IIC_STA_DRERR:
PrintString(device,"I2C error: receiving data");
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C error: receiving data"));
break;
case IIC_STA_DTERR:
PrintString(device,"I2C error: data transmission");
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C error: data transmission"));
break;
case IIC_STA_APERR:
PrintString(device,"I2C error: address phase");
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C error: address phase"));
break;
case IIC_STA_SPERR:
PrintString(device,"I2C error: invalid start/stop condition");
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C error: invalid start/stop condition"));
break;
}
***************
*** 283,287 ****
if((status=SAA7146_StatusI2C(device))!=I2C_SPEED) {
PrintString(device,"I2C bus could not be reset, system failure!",status);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C bus could not be reset, system failure!\n"));
return FALSE;
} else return TRUE;
--- 283,287 ----
if((status=SAA7146_StatusI2C(device))!=I2C_SPEED) {
PrintString(device,"I2C bus could not be reset, system failure!",status);
! _DbgPrintF(DEBUGLVL_TERSE, ("I2C bus could not be reset, system failure!"));
return FALSE;
} else return TRUE;
***************
*** 347,351 ****
if(!SAA7146_RunI2C(device,&output,b,&k)) return FALSE;
}
! _DbgPrintF(DEBUGLVL_VERBOSE, ("UpdateInfoI2C transfer succeeded\n"));
return TRUE;
}
--- 347,351 ----
if(!SAA7146_RunI2C(device,&output,b,&k)) return FALSE;
}
! _DbgPrintF(DEBUGLVL_VERBOSE, ("I2C transfer succeeded"));
return TRUE;
}
***************
*** 365,368 ****
--- 365,371 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.4 2003/02/28 17:28:24 adcockj
+ * Removed nelines from debug prints
+ *
* Revision 1.3 2003/02/27 16:50:53 adcockj
* Tidy up debug logging ready for release
Index: tuner.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tuner.cpp 27 Feb 2003 16:50:53 -0000 1.3
--- tuner.cpp 28 Feb 2003 17:28:24 -0000 1.4
***************
*** 70,74 ****
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSetting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
tuner=&(tuners[GETCONTEXT(device)->tuner.type]);
// Into 1/16ths of a MHz for Linux-based routine
--- 70,74 ----
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! _DbgPrintF(DEBUGLVL_TERSE, ("Setting tuner frequency to %uHz (%u*%u)",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
tuner=&(tuners[GETCONTEXT(device)->tuner.type]);
// Into 1/16ths of a MHz for Linux-based routine
***************
*** 89,93 ****
i2c.length=4;
SAA7146_ExecuteI2C(device,&i2c,1);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTuner set\n"));
}
*/
--- 89,93 ----
i2c.length=4;
SAA7146_ExecuteI2C(device,&i2c,1);
! _DbgPrintF(DEBUGLVL_TERSE, ("Tuner set"));
}
*/
***************
*** 100,104 ****
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSetting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
div=(unsigned __int32)(unsigned __int64)((36000000+bob)/166666);
buffer[0]=(div>>8)&0x7F;
--- 100,104 ----
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! _DbgPrintF(DEBUGLVL_TERSE, ("Setting tuner frequency to %uHz (%u*%u)",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
div=(unsigned __int32)(unsigned __int64)((36000000+bob)/166666);
buffer[0]=(div>>8)&0x7F;
***************
*** 114,122 ****
GETCONTEXT(device)->tuner.ChangeOutstanding = FALSE;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTuner set\n"));
}
/*****************************************************************************\
* $Log$
* Revision 1.3 2003/02/27 16:50:53 adcockj
* Tidy up debug logging ready for release
--- 114,125 ----
GETCONTEXT(device)->tuner.ChangeOutstanding = FALSE;
! _DbgPrintF(DEBUGLVL_TERSE, ("Tuner set"));
}
/*****************************************************************************\
* $Log$
+ * Revision 1.4 2003/02/28 17:28:24 adcockj
+ * Removed nelines from debug prints
+ *
* Revision 1.3 2003/02/27 16:50:53 adcockj
* Tidy up debug logging ready for release
|
Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv1614
Modified Files:
Nova-T.inf NovaTDriver.dsp automation.cpp device.cpp
driver.cpp l64781.cpp l64781.h saa7146.cpp tuner.cpp tuner.h
Log Message:
Tidy up debug logging ready for release
Make changes only on Commit method
Extra logging in Checked build
Index: Nova-T.inf
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Nova-T.inf,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Nova-T.inf 14 Feb 2003 19:13:40 -0000 1.1.1.1
--- Nova-T.inf 27 Feb 2003 16:50:51 -0000 1.2
***************
*** 1,5 ****
; NovaT.INF -- This file installs NovaT.sys
;
! ;
[Version]
signature="$CHICAGO$"
--- 1,5 ----
; NovaT.INF -- This file installs NovaT.sys
;
! ; $Id$
[Version]
signature="$CHICAGO$"
***************
*** 39,43 ****
[NovaT.Device.NT]
Include = ks.inf, kscaptur.inf, bda.inf
! Needs = KS.Registration.NT,KSCAPTUR.Registration.NT,BDA.Registration.NT
AddReg = NovaT.AddReg
CopyFiles = NovaT.CopyDrivers
--- 39,43 ----
[NovaT.Device.NT]
Include = ks.inf, kscaptur.inf, bda.inf
! Needs = KS.Registration.NT,KSCAPTUR.Registration.NT,BDA.Installation.NT
AddReg = NovaT.AddReg
CopyFiles = NovaT.CopyDrivers
***************
*** 58,79 ****
HNTbda.sys
- ; [NovaT.CopyInf]
- ; NovaT.Inf
-
- ; [NovaT.KnownFiles]
- ; NovaT.sys=safe
-
[NovaT.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,HNTbda.sys
HKR,,PageOutWhenUnopened,3,01
[NovaT.Device.Interfaces]
! AddInterface=%BDAcatID%,%KSNAME_Filter%,NovaT.Interfaces,
! AddInterface=%GUID.BdaDeviceControl%,%KSNAME_Filter%,BdaDevice,
[NovaT.Device.NT.Interfaces]
! AddInterface=%BDAcatID%,%KSNAME_Filter%,NovaT.Interfaces,
! AddInterface=%GUID.BdaDeviceControl%,%KSNAME_Filter%,BdaDevice,
[NovaT.Interfaces]
--- 58,82 ----
HNTbda.sys
[NovaT.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,HNTbda.sys
HKR,,PageOutWhenUnopened,3,01
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{1A9333B6-3704-4b18-A6DD-E1979FC56970}
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{1A9333B6-3704-4b18-A6DD-E1979FC56970},Display,0x00010001,0
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{1A9333B6-3704-4b18-A6DD-E1979FC56970},Name,,"Tuner Node"
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{F65394A2-A018-4307-8D12-35AA494A406F}
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{F65394A2-A018-4307-8D12-35AA494A406F},Display,0x00010001,0
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{F65394A2-A018-4307-8D12-35AA494A406F},Name,,"Demodulator Node"
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{870E4D6F-77E7-4c40-ADE3-BEF8708A9D52}
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{870E4D6F-77E7-4c40-ADE3-BEF8708A9D52},Display,0x00010001,0
+ HKLM,System\CurrentControlSet\Control\MediaCategories\{870E4D6F-77E7-4c40-ADE3-BEF8708A9D52},Name,,"Antenna In Pin"
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Interfaces]
***************
*** 84,93 ****
HKR,,FriendlyName,,%NovaT.FriendlyName%
- ; [BdaDevice]
- ; AddReg=BdaDevice.AddReg
-
- ; [BdaDevice.AddReg]
-
-
[Strings]
--- 87,90 ----
***************
*** 104,108 ****
;
Plugin_BdaDevice ="BDA Device Control Plug-in"
! BDAcatID ="{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}"
AMcatID ="{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}"
BDAReceivers ="BDA Streaming Receiver Components"
--- 101,105 ----
;
Plugin_BdaDevice ="BDA Device Control Plug-in"
! GUID.TunerCatID ="{71985F48-1CA1-11d3-9CC8-00C04F7971E0}"
AMcatID ="{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}"
BDAReceivers ="BDA Streaming Receiver Components"
***************
*** 110,114 ****
Pin.BdaTransport ="BDA Transport Stream"
GUID.BdaTransport ="{78216A81-CFA8-493e-9711-36A61C08BD9D}"
! GUID.BdaDeviceControl ="{FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}"
;
--- 107,111 ----
Pin.BdaTransport ="BDA Transport Stream"
GUID.BdaTransport ="{78216A81-CFA8-493e-9711-36A61C08BD9D}"
! GUID.BdaReceiverCtrl ="{FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}"
;
***************
*** 159,160 ****
--- 156,165 ----
SPSVCINST_ASSOCSERVICE = 0x2
+ ;***********************************************************************
+ ; $Log$
+ ; Revision 1.2 2003/02/27 16:50:51 adcockj
+ ; Tidy up debug logging ready for release
+ ; Make changes only on Commit method
+ ; Extra logging in Checked build
+ ;
+ ;***********************************************************************
\ No newline at end of file
Index: NovaTDriver.dsp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/NovaTDriver.dsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** NovaTDriver.dsp 17 Feb 2003 11:07:11 -0000 1.1
--- NovaTDriver.dsp 27 Feb 2003 16:50:52 -0000 1.2
***************
*** 182,185 ****
--- 182,189 ----
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
+ # Begin Source File
+
+ SOURCE=".\Nova-T.inf"
+ # End Source File
# End Target
# End Project
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** automation.cpp 17 Feb 2003 11:07:11 -0000 1.2
--- automation.cpp 27 Feb 2003 16:50:52 -0000 1.3
***************
*** 29,36 ****
// which actually do the work elsewhere in the driver.
! // One problem is that the driver should keep a note of all requested changes
! // and only validate them when FilterCommitChanges() and such are called, but
! // currently those functions do nothing and it just validates/makes changes
! // immediately.
#define GETDEVICEFROMIRP(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
--- 29,34 ----
// which actually do the work elsewhere in the driver.
! // drivers should keep a note of all requested changes and only do them
! // when FilterCommitChanges() is called
#define GETDEVICEFROMIRP(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
***************
*** 49,55 ****
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
! Tuner_SetFrequency(device);
}
! DbgPrint("Nova-T: TunerFrequencyPut(%u)\n",frequency);
return STATUS_SUCCESS;
}
--- 47,53 ----
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerFrequencyPut(%u)\n",frequency));
return STATUS_SUCCESS;
}
***************
*** 67,73 ****
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! Tuner_SetFrequency(device);
}
! DbgPrint("Nova-T: TunerFrequencyMultiplerPut(%u)\n",freq_mult);
return STATUS_SUCCESS;
}
--- 65,71 ----
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerFrequencyMultiplerPut(%u)\n",freq_mult));
return STATUS_SUCCESS;
}
***************
*** 82,91 ****
ULONG bandwidth=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
GETCONTEXT(device)->tuner.bandwidth=bandwidth;
! L64781_ParametersUpdated(device);
}
! DbgPrint("Nova-T: TunerBandwidthPut(%u)\n",bandwidth);
return STATUS_SUCCESS;
}
--- 80,91 ----
ULONG bandwidth=(ULONG)*pulProperty;
PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! // Validate here
! // note that the tuner isn't effected by this setting but the
! // demodulator is so that's why we signal that that has changed
if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
GETCONTEXT(device)->tuner.bandwidth=bandwidth;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerBandwidthPut(%u)\n",bandwidth));
return STATUS_SUCCESS;
}
***************
*** 96,100 ****
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
! DbgPrint("Nova-T: TunerSignalStrengthGet, irp=0x%p, device=0x%p, strength=%i\n",pIrp,device,*pulProperty);
return STATUS_SUCCESS;
}
--- 96,100 ----
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerSignalStrengthGet, irp=0x%p, device=0x%p, strength=%i\n",pIrp,device,*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 103,106 ****
--- 103,107 ----
{
*pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRP(pIrp));
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTunerSignalStrengthGet (%d)\n",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 110,113 ****
--- 111,115 ----
{
*pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRP(pIrp))*100)/255);
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSignalQualityGet (%d)\n",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 116,119 ****
--- 118,122 ----
{
*pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRP(pIrp));
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSignalLockedGet (%d)\n",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 131,137 ****
if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
GETCONTEXT(device)->demodulator.modulation=newtype;
! L64781_ParametersUpdated(device);
}
! DbgPrint("Nova-T: DemodModulationTypePut(%u)\n",newtype);
return STATUS_SUCCESS;
}
--- 134,140 ----
if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
GETCONTEXT(device)->demodulator.modulation=newtype;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodModulationTypePut(%u)\n",newtype));
return STATUS_SUCCESS;
}
***************
*** 144,147 ****
--- 147,151 ----
NTSTATUS DemodInnerFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodInnerFecTypePut(%u)\n",*pulProperty));
if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
else return STATUS_INVALID_PARAMETER;
***************
*** 164,169 ****
if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
GETCONTEXT(device)->demodulator.HP_coderate=rate;
! L64781_ParametersUpdated(device);
}
return STATUS_SUCCESS;
}
--- 168,174 ----
if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
GETCONTEXT(device)->demodulator.HP_coderate=rate;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodInnerFecRatePut(%u)\n",rate));
return STATUS_SUCCESS;
}
***************
*** 176,179 ****
--- 181,185 ----
NTSTATUS DemodOuterFecTypePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodOuterFecTypePut(%u)\n",*pulProperty));
if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
else return STATUS_INVALID_PARAMETER;
***************
*** 196,201 ****
if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
GETCONTEXT(device)->demodulator.LP_coderate=rate;
! L64781_ParametersUpdated(device);
}
return STATUS_SUCCESS;
}
--- 202,208 ----
if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
GETCONTEXT(device)->demodulator.LP_coderate=rate;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodOuterFecRatePut(%u)\n",rate));
return STATUS_SUCCESS;
}
***************
*** 211,215 ****
// Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
! // L64781_ParametersUpdated(device);
return STATUS_SUCCESS;
}
--- 218,223 ----
// Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
! //GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSymbolRatePut(%u)\n",*pulProperty));
return STATUS_SUCCESS;
}
***************
*** 227,233 ****
if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
! L64781_ParametersUpdated(device);
}
! DbgPrint("Nova-T: DemodGuardIntervalPut(%i)\n",guard_interval);
return STATUS_SUCCESS;
}
--- 235,241 ----
if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodGuardIntervalPut(%i)\n",guard_interval));
return STATUS_SUCCESS;
}
***************
*** 245,251 ****
if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
! L64781_ParametersUpdated(device);
}
! DbgPrint("Nova-T: DemodTransmissionModePut(%i)\n",transmit_mode);
return STATUS_SUCCESS;
}
--- 253,259 ----
if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodTransmissionModePut(%i)\n",transmit_mode));
return STATUS_SUCCESS;
}
***************
*** 263,268 ****
if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
GETCONTEXT(device)->demodulator.inversion=inversion;
! L64781_ParametersUpdated(device);
}
return STATUS_SUCCESS;
}
--- 271,277 ----
if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
GETCONTEXT(device)->demodulator.inversion=inversion;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
+ _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDemodSpectralInversionPut(%i)\n",inversion));
return STATUS_SUCCESS;
}
***************
*** 273,277 ****
NTSTATUS status;
! DbgPrint("Nova-T: StartChanges()\n");
status=BdaStartChanges(pIrp);
if(NT_SUCCESS(status)) {
--- 282,286 ----
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoStartChanges()\n"));
status=BdaStartChanges(pIrp);
if(NT_SUCCESS(status)) {
***************
*** 284,288 ****
NTSTATUS status;
! DbgPrint("Nova-T: CheckChanges()\n");
status=BdaCheckChanges(pIrp);
if(NT_SUCCESS(status)) {
--- 293,297 ----
NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoCheckChanges()\n"));
status=BdaCheckChanges(pIrp);
if(NT_SUCCESS(status)) {
***************
*** 293,299 ****
NTSTATUS FilterCommitChanges(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OPTIONAL PVOID pvIgnored)
{
! DbgPrint("Nova-T: CommitChanges()\n");
// Validate alterations
! // Commit alterations
return BdaCommitChanges(pIrp);
}
--- 302,325 ----
NTSTATUS FilterCommitChanges(IN PIRP pIrp,IN PKSMETHOD pKSMethod,OPTIONAL PVOID pvIgnored)
{
! NTSTATUS status;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoCommitChanges()\n"));
!
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
!
// Validate alterations
! status=BdaCommitChanges(pIrp);
! if(NT_SUCCESS(status)) {
! // we will always reset the setting on moving out of stop
! // so don't bother updating the hardware if we are stopped
! if(GETCONTEXT(device)->cur_state != KSSTATE_STOP) {
! // Commit alterations only if there are changes
! if(GETCONTEXT(device)->tuner.ChangeOutstanding == TRUE) {
! Tuner_SetFrequency(device);
! }
! if(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE) {
! L64781_UpdateParameters(device);
! }
! }
! }
return BdaCommitChanges(pIrp);
}
***************
*** 302,310 ****
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
! DbgPrint("Nova-T: GetChangeState()\n");
status=BdaGetChangeState(pIrp,&topologyChangeState);
if(NT_SUCCESS(status)) {
! if((topologyChangeState==BDA_CHANGES_PENDING)/*||(pFilter->m_BdaChangeState==BDA_CHANGES_PENDING)*/) {
*pulChangeState=BDA_CHANGES_PENDING;
} else {
--- 328,339 ----
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
+ PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoGetChangeState()\n"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
if(NT_SUCCESS(status)) {
! if((topologyChangeState==BDA_CHANGES_PENDING)||
! (GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE)||
! (GETCONTEXT(device)->tuner.ChangeOutstanding == TRUE)) {
*pulChangeState=BDA_CHANGES_PENDING;
} else {
***************
*** 317,320 ****
--- 346,354 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/02/27 16:50:52 adcockj
+ * Tidy up debug logging ready for release
+ * Make changes only on Commit method
+ * Extra logging in Checked build
+ *
* Revision 1.2 2003/02/17 11:07:11 adcockj
* Added VS6 project for the lazy
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** device.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- device.cpp 27 Feb 2003 16:50:52 -0000 1.3
***************
*** 47,51 ****
NTSTATUS result;
! DbgPrint("Nova-T: DeviceAdd()\n");
// Allocate context storage
device->Context=ExAllocatePoolWithTag(NonPagedPool,sizeof(DEVICE_CONTEXT),'ECIM');
--- 47,51 ----
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceAdd()\n"));
// Allocate context storage
device->Context=ExAllocatePoolWithTag(NonPagedPool,sizeof(DEVICE_CONTEXT),'ECIM');
***************
*** 58,62 ****
GETCONTEXT(device)->tuner_address=I2C_TUNER;
GETCONTEXT(device)->tuner.type=TUNER_TSA5060;
! DbgPrint("Nova-T: DeviceAdd() complete\n");
// Done
return result;
--- 58,62 ----
GETCONTEXT(device)->tuner_address=I2C_TUNER;
GETCONTEXT(device)->tuner.type=TUNER_TSA5060;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceAdd() complete\n"));
// Done
return result;
***************
*** 64,68 ****
VOID DeviceRemove(IN PKSDEVICE device,IN PIRP irp)
{
! DbgPrint("Nova-T: DeviceRemove()\n");
}
--- 64,68 ----
VOID DeviceRemove(IN PKSDEVICE device,IN PIRP irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceRemove()\n"));
}
***************
*** 72,76 ****
NTSTATUS result;
! DbgPrint("Nova-T: DeviceStart()\n");
// Search for memory to map
for(i=0,mem=-1,interrupt=-1;(i<translatedResources->List[0].PartialResourceList.Count)&&((mem==-1)||(interrupt==-1));i++) {
--- 72,76 ----
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStart()\n"));
// Search for memory to map
for(i=0,mem=-1,interrupt=-1;(i<translatedResources->List[0].PartialResourceList.Count)&&((mem==-1)||(interrupt==-1));i++) {
***************
*** 157,161 ****
return result;
}
! DbgPrint("Nova-T: DeviceStart() complete\n");
// Ready!
return STATUS_SUCCESS;
--- 157,161 ----
return result;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStart() complete\n"));
// Ready!
return STATUS_SUCCESS;
***************
*** 166,170 ****
int i;
! DbgPrint("Nova-T: DeviceStop()\n");
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
--- 166,170 ----
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStop()\n"));
// Stop tuner, L64781 and SAA7146 from any current functions
L64781_Close(device);
***************
*** 180,184 ****
// Unmap memory
MmUnmapIoSpace(GETCONTEXT(device)->pci_memory,GETCONTEXT(device)->pci_size);
! DbgPrint("Nova-T: DeviceStop() complete\n");
}
--- 180,184 ----
// Unmap memory
MmUnmapIoSpace(GETCONTEXT(device)->pci_memory,GETCONTEXT(device)->pci_size);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoDeviceStop() complete\n"));
}
***************
*** 189,193 ****
NTSTATUS result;
! DbgPrint("Nova-T: FilterCreate()\n");
Filter->Context=KsFilterGetDevice(Filter);
if((Filter->Context==NULL)||(((PKSDEVICE)Filter->Context)->Context==NULL)) return STATUS_DEVICE_NOT_CONNECTED;
--- 189,193 ----
NTSTATUS result;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoFilterCreate()\n"));
Filter->Context=KsFilterGetDevice(Filter);
if((Filter->Context==NULL)||(((PKSDEVICE)Filter->Context)->Context==NULL)) return STATUS_DEVICE_NOT_CONNECTED;
***************
*** 203,207 ****
NTSTATUS FilterClose(IN PKSFILTER Filter,IN PIRP Irp)
{
! DbgPrint("Nova-T: FilterClose()\n");
BdaUninitFilter(Filter);
// Shut down anything still going on
--- 203,207 ----
NTSTATUS FilterClose(IN PKSFILTER Filter,IN PIRP Irp)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoFilterClose()\n"));
BdaUninitFilter(Filter);
// Shut down anything still going on
***************
*** 240,244 ****
else if(FromState==KSSTATE_RUN) j="Run";
else j="Unknown";
! DbgPrint("Nova-T: Changed state from %s to %s\n",j,i);
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
--- 240,244 ----
else if(FromState==KSSTATE_RUN) j="Run";
else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoChanged state from %s to %s\n",j,i));
}
if((ToState!=KSSTATE_STOP)&&(FromState==KSSTATE_STOP)) {
***************
*** 249,259 ****
}
// Temp
- L64781_ParametersUpdated((PKSDEVICE)Pin->Context);
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
// And now, continue
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
! DbgPrint("Nova-T: State changed!\n");
return STATUS_SUCCESS;
}
--- 249,259 ----
}
// Temp
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
+ L64781_UpdateParameters((PKSDEVICE)Pin->Context);
// And now, continue
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoState changed!\n"));
return STATUS_SUCCESS;
}
***************
*** 261,264 ****
--- 261,269 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/02/27 16:50:52 adcockj
+ * Tidy up debug logging ready for release
+ * Make changes only on Commit method
+ * Extra logging in Checked build
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** driver.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- driver.cpp 27 Feb 2003 16:50:52 -0000 1.3
***************
*** 176,179 ****
--- 176,202 ----
/* For filter */
+ DEFINE_KSPROPERTY_TABLE(FilterTopologyProperties) {
+ DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(BdaPropertyNodeTypes,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(BdaPropertyPinTypes,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(BdaPropertyTemplateConnections,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(BdaPropertyNodeMethods,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(BdaPropertyNodeProperties,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(BdaPropertyNodeEvents,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(BdaPropertyGetControllingPinId,NULL),
+ DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(BdaPropertyNodeDescriptors,NULL),
+ };
+
+
+ DEFINE_KSPROPERTY_SET_TABLE(FilterProperties) {
+
+ DEFINE_KSPROPERTY_SET
+ (
+ &KSPROPSETID_BdaTopology,
+ SIZEOF_ARRAY(FilterTopologyProperties),
+ FilterTopologyProperties,
+ 0, NULL
+ ),
+ };
+
DEFINE_KSMETHOD_TABLE(FilterConfiguration) {
DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(BdaMethodCreateTopology,NULL),
***************
*** 205,209 ****
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
! DEFINE_KSAUTOMATION_PROPERTIES_NULL,
DEFINE_KSAUTOMATION_METHODS(FilterMethods),
DEFINE_KSAUTOMATION_EVENTS_NULL
--- 228,232 ----
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
! DEFINE_KSAUTOMATION_PROPERTIES(FilterProperties),
DEFINE_KSAUTOMATION_METHODS(FilterMethods),
DEFINE_KSAUTOMATION_EVENTS_NULL
***************
*** 212,221 ****
// Blah
- DEFINE_KSAUTOMATION_TABLE(NullAutomation) {
- DEFINE_KSAUTOMATION_PROPERTIES_NULL,
- DEFINE_KSAUTOMATION_METHODS_NULL,
- DEFINE_KSAUTOMATION_EVENTS_NULL
- };
-
const KSFILTER_DISPATCH FilterDispatch={
/* Create */ FilterCreate,
--- 235,238 ----
***************
*** 364,368 ****
{ // Antenna input pin
&AntennaDispatch,
! &NullAutomation,
{
0,NULL,
--- 381,385 ----
{ // Antenna input pin
&AntennaDispatch,
! &TunerAutomation,
{
0,NULL,
***************
*** 385,389 ****
{ // Transport Stream output pin
&OutputDispatch,
! &NullAutomation,
{
SIZEOF_ARRAY(StreamInterface),
--- 402,406 ----
{ // Transport Stream output pin
&OutputDispatch,
! &DemodulatorAutomation,
{
SIZEOF_ARRAY(StreamInterface),
***************
*** 475,479 ****
// SIZEOF_ARRAY(FilterDescriptors),
// FilterDescriptors
! 0,NULL // So BdaInitFilter works, since this isn't exporting any kernel streaming filters
};
--- 492,497 ----
// SIZEOF_ARRAY(FilterDescriptors),
// FilterDescriptors
! 0,NULL, // So BdaInitFilter works, since this isn't exporting any kernel streaming filters
! KSDEVICE_DESCRIPTOR_VERSION
};
***************
*** 502,506 ****
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
! // DbgPrint("MICE Hauppauge Nova-T replacement driver 1.00 started\n");
return KsInitializeDriver(DriverObject,RegistryPath,&DeviceDescriptor);
}
--- 520,524 ----
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("MICE Hauppauge Nova-T replacement driver 1.00 started\n"))
return KsInitializeDriver(DriverObject,RegistryPath,&DeviceDescriptor);
}
***************
*** 508,511 ****
--- 526,534 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/02/27 16:50:52 adcockj
+ * Tidy up debug logging ready for release
+ * Make changes only on Commit method
+ * Extra logging in Checked build
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** l64781.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- l64781.cpp 27 Feb 2003 16:50:52 -0000 1.3
***************
*** 101,109 ****
DEVICE_CONTEXT *data=GETCONTEXT(device);
! DbgPrint("Nova-T: L64781 initialise\n");
// Initialise tuner structures to default
data->tuner.frequency=570000;
data->tuner.freq_mult=1000;
data->tuner.bandwidth=8;
data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET;
--- 101,110 ----
DEVICE_CONTEXT *data=GETCONTEXT(device);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 initialise\n"));
// Initialise tuner structures to default
data->tuner.frequency=570000;
data->tuner.freq_mult=1000;
data->tuner.bandwidth=8;
+ data->tuner.ChangeOutstanding=FALSE;
data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET;
***************
*** 113,116 ****
--- 114,118 ----
data->demodulator.inversion=BDA_SPECTRAL_INVERSION_NORMAL;
data->demodulator.HierarchyInformation=HIERARCHY_NONE;
+ data->demodulator.ChangeOutstanding=FALSE;
data->dummy.symbolRate=2750000;
// Start L64781
***************
*** 126,137 ****
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
! DbgPrint("Nova-T: L64781 initialised\n");
return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
{
! DbgPrint("Nova-T: L64781 closing\n");
L64781_WriteRegister(device,0x3E,0x5A); // Crashes Linux. Windows?
! DbgPrint("Nova-T: L64781 closed\n");
}
unsigned __int8 _L64781_SignalStrength(PKSDEVICE device)
--- 128,139 ----
// L64781_WriteRegister(device,0x19,0x92);
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 initialised\n"));
return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 closing\n"));
L64781_WriteRegister(device,0x3E,0x5A); // Crashes Linux. Windows?
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 closed\n"));
}
unsigned __int8 _L64781_SignalStrength(PKSDEVICE device)
***************
*** 160,164 ****
return (avg_quality<<8)|avg_quality;
}
! void L64781_ParametersUpdated(PKSDEVICE device)
{
// static const unsigned __int8 vcr_tab[]={7,1,2,3,5,7,8};
--- 162,166 ----
return (avg_quality<<8)|avg_quality;
}
! void L64781_UpdateParameters(PKSDEVICE device)
{
// static const unsigned __int8 vcr_tab[]={7,1,2,3,5,7,8};
***************
*** 177,181 ****
int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode;
! DbgPrint("Nova-T: L64781 updating\n");
// All parameters are checked by automation functions, so no need to check here
// Now translate Microsoft constants into the constants the Linux code originally wanted
--- 179,183 ----
int p_bandwidth,p_constellation,p_hp_coderate,p_guardinterval,p_lp_coderate,p_transmissionmode;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 updating\n"));
// All parameters are checked by automation functions, so no need to check here
// Now translate Microsoft constants into the constants the Linux code originally wanted
***************
*** 267,272 ****
break;
}
! DbgPrint("Nova-T: L64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)\n",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval);
! DbgPrint("Nova-T: L64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)\n",p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_lp_coderate,p_guardinterval);
// Actually do it
ddfs_offset_fixed=0x4000-(ppm<<16)/bw_tab[p_bandwidth]/1000000;
--- 269,274 ----
break;
}
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)\n",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval));
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 Parameters: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)\n",p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_lp_coderate,p_guardinterval));
// Actually do it
ddfs_offset_fixed=0x4000-(ppm<<16)/bw_tab[p_bandwidth]/1000000;
***************
*** 312,320 ****
L64781_Apply_TPS(device);
! DbgPrint("Nova-T: L64781 updated\n");
}
/*****************************************************************************\
* $Log$
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
--- 314,329 ----
L64781_Apply_TPS(device);
! data->demodulator.ChangeOutstanding = FALSE;
!
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoL64781 updated\n"));
}
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/02/27 16:50:52 adcockj
+ * Tidy up debug logging ready for release
+ * Make changes only on Commit method
+ * Extra logging in Checked build
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: l64781.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** l64781.h 17 Feb 2003 11:07:12 -0000 1.2
--- l64781.h 27 Feb 2003 16:50:53 -0000 1.3
***************
*** 20,23 ****
--- 20,24 ----
SpectralInversion inversion;
TempHierarchy HierarchyInformation; // Not sure in what way this maps to BDA driver arch.
+ BOOL ChangeOutstanding;
} DEMOD_DATA;
typedef struct DUMMY_DATA {
***************
*** 32,36 ****
int L64781_BitErrorRate(PKSDEVICE device);
int L64781_Signal2NoiseRatio(PKSDEVICE device);
! void L64781_ParametersUpdated(PKSDEVICE device);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
--- 33,37 ----
int L64781_BitErrorRate(PKSDEVICE device);
int L64781_Signal2NoiseRatio(PKSDEVICE device);
! void L64781_UpdateParameters(PKSDEVICE device);
#define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5)
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** saa7146.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- saa7146.cpp 27 Feb 2003 16:50:53 -0000 1.3
***************
*** 35,39 ****
NTSTATUS SAA7146_Init(PKSDEVICE device)
{
! DbgPrint("Nova-T: SAA7146 Init\n");
DeviceWriteRegister32(device,REG_IIC_STA,I2C_SPEED); // Set I2C bus speed
DeviceWriteRegister32(device,REG_IICTRF,0); // Clear the I2C output
--- 35,39 ----
NTSTATUS SAA7146_Init(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Init\n"));
DeviceWriteRegister32(device,REG_IIC_STA,I2C_SPEED); // Set I2C bus speed
DeviceWriteRegister32(device,REG_IICTRF,0); // Clear the I2C output
***************
*** 48,52 ****
void SAA7146_Close(PKSDEVICE device)
{
! DbgPrint("Nova-T: SAA7146 Close\n");
}
--- 48,52 ----
void SAA7146_Close(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Close\n"));
}
***************
*** 70,74 ****
int i;
! DbgPrint("Nova-T: SAA7146 Starting stream\n");
GETCONTEXT(device)->pv_error=0; // Number of Protection Violation errors
GETCONTEXT(device)->switcher=0; // Switches buffers
--- 70,74 ----
int i;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Starting stream\n"));
GETCONTEXT(device)->pv_error=0; // Number of Protection Violation errors
GETCONTEXT(device)->switcher=0; // Switches buffers
***************
*** 97,106 ****
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)|IR_FIDB); // Interrupt on
// Done
! DbgPrint("Nova-T: SAA7146 Stream started\n");
return STATUS_SUCCESS;
}
void SAA7146_StopStream(PKSDEVICE device)
{
! // DbgPrint("Nova-T: SAA7146 Stopping stream\n");
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC2_RPS_SIG0)); // RPS0 off
--- 97,107 ----
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)|IR_FIDB); // Interrupt on
// Done
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Stream started\n"));
return STATUS_SUCCESS;
}
+
void SAA7146_StopStream(PKSDEVICE device)
{
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSAA7146 Stopping stream\n"));
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC2_RPS_SIG0)); // RPS0 off
***************
*** 108,116 ****
DeviceWriteRegister32(device,REG_IER,DeviceReadRegister32(device,REG_IER)&~IR_FIDB); // FIDB interrupt off
if(GETCONTEXT(device)->pv_error>0) PrintString(device,"Protection Violation errors occurred during run",GETCONTEXT(device)->pv_error);
- // if(GETCONTEXT(device)->pv_error>0) DbgPrint("Nova-T: %i protection violation errors occurred during run\n",GETCONTEXT(device)->pv_error);
if(GETCONTEXT(device)->lost_error>0) PrintString(device,"Missed some interrupts during run",GETCONTEXT(device)->lost_error);
- // if(GETCONTEXT(device)->lost_error>0) DbgPrint("Nova-T: %i interrupts missed during run\n",GETCONTEXT(device)->lost_error);
PrintString(device,"Stopped stream, packets sent:",GETCONTEXT(device)->counter);
- // DbgPrint("Nova-T: SAA7146 stream stopped (%i packets sent)\n",GETCONTEXT(device)->counter);
}
--- 109,114 ----
***************
*** 120,123 ****
--- 118,122 ----
GETCONTEXT(device)->pv_error++;
}
+
void SAA7146_Interrupt_FIDB(PKSDEVICE device)
{
***************
*** 232,236 ****
if(i==0) {
PrintString(device,"I2C transmission timeout");
! // DbgPrint("Nova-T: I2C error: transmission timeout\n");
return FALSE;
}
--- 231,235 ----
if(i==0) {
PrintString(device,"I2C transmission timeout");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: transmission timeout\n"));
return FALSE;
}
***************
*** 238,258 ****
case IIC_STA_AL:
PrintString(device,"I2C error: arbitration lost");
! // DbgPrint("Nova-T: I2C error: arbitration lost\n");
break;
case IIC_STA_DRERR:
PrintString(device,"I2C error: receiving data");
! // DbgPrint("Nova-T: I2C error: receiving data\n");
break;
case IIC_STA_DTERR:
PrintString(device,"I2C error: data transmission");
! // DbgPrint("Nova-T: I2C error: data transmission\n");
break;
case IIC_STA_APERR:
PrintString(device,"I2C error: address phase");
! // DbgPrint("Nova-T: I2C error: address phase\n");
break;
case IIC_STA_SPERR:
PrintString(device,"I2C error: invalid start/stop condition");
! // DbgPrint("Nova-T: I2C error: invalid start/stop condition\n");
break;
}
--- 237,257 ----
case IIC_STA_AL:
PrintString(device,"I2C error: arbitration lost");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: arbitration lost\n"));
break;
case IIC_STA_DRERR:
PrintString(device,"I2C error: receiving data");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: receiving data\n"));
break;
case IIC_STA_DTERR:
PrintString(device,"I2C error: data transmission");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: data transmission\n"));
break;
case IIC_STA_APERR:
PrintString(device,"I2C error: address phase");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: address phase\n"));
break;
case IIC_STA_SPERR:
PrintString(device,"I2C error: invalid start/stop condition");
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C error: invalid start/stop condition\n"));
break;
}
***************
*** 283,288 ****
}
if((status=SAA7146_StatusI2C(device))!=I2C_SPEED) {
! // PrintString(device,"I2C bus could not be reset, system failure!",status);
! DbgPrint("Nova-T: I2C bus could not be reset, system failure!\n");
return FALSE;
} else return TRUE;
--- 282,287 ----
}
if((status=SAA7146_StatusI2C(device))!=I2C_SPEED) {
! PrintString(device,"I2C bus could not be reset, system failure!",status);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoI2C bus could not be reset, system failure!\n"));
return FALSE;
} else return TRUE;
***************
*** 348,352 ****
if(!SAA7146_RunI2C(device,&output,b,&k)) return FALSE;
}
! // DbgPrint("Nova-T: I2C transfer succeeded\n");
return TRUE;
}
--- 347,351 ----
if(!SAA7146_RunI2C(device,&output,b,&k)) return FALSE;
}
! _DbgPrintF(DEBUGLVL_VERBOSE, ("UpdateInfoI2C transfer succeeded\n"));
return TRUE;
}
***************
*** 366,369 ****
--- 365,373 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/02/27 16:50:53 adcockj
+ * Tidy up debug logging ready for release
+ * Make changes only on Commit method
+ * Extra logging in Checked build
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: tuner.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tuner.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- tuner.cpp 27 Feb 2003 16:50:53 -0000 1.3
***************
*** 70,74 ****
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! DbgPrint("Nova-T: Setting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult);
tuner=&(tuners[GETCONTEXT(device)->tuner.type]);
// Into 1/16ths of a MHz for Linux-based routine
--- 70,74 ----
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSetting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
tuner=&(tuners[GETCONTEXT(device)->tuner.type]);
// Into 1/16ths of a MHz for Linux-based routine
***************
*** 89,93 ****
i2c.length=4;
SAA7146_ExecuteI2C(device,&i2c,1);
! DbgPrint("Nova-T: Tuner set\n");
}
*/
--- 89,93 ----
i2c.length=4;
SAA7146_ExecuteI2C(device,&i2c,1);
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTuner set\n"));
}
*/
***************
*** 100,104 ****
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! DbgPrint("Nova-T: Setting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult);
div=(unsigned __int32)(unsigned __int64)((36000000+bob)/166666);
buffer[0]=(div>>8)&0x7F;
--- 100,104 ----
bob=GETCONTEXT(device)->tuner.frequency*GETCONTEXT(device)->tuner.freq_mult;
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoSetting tuner frequency to %uHz (%u*%u)\n",(unsigned int)bob,GETCONTEXT(device)->tuner.frequency,GETCONTEXT(device)->tuner.freq_mult));
div=(unsigned __int32)(unsigned __int64)((36000000+bob)/166666);
buffer[0]=(div>>8)&0x7F;
***************
*** 111,119 ****
i2c.length=4;
SAA7146_ExecuteI2C(device,&i2c,1);
! DbgPrint("Nova-T: Tuner set\n");
}
/*****************************************************************************\
* $Log$
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
--- 111,127 ----
i2c.length=4;
SAA7146_ExecuteI2C(device,&i2c,1);
!
! GETCONTEXT(device)->tuner.ChangeOutstanding = FALSE;
!
! _DbgPrintF(DEBUGLVL_TERSE, ("UpdateInfoTuner set\n"));
}
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/02/27 16:50:53 adcockj
+ * Tidy up debug logging ready for release
+ * Make changes only on Commit method
+ * Extra logging in Checked build
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: tuner.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tuner.h 17 Feb 2003 11:07:12 -0000 1.2
--- tuner.h 27 Feb 2003 16:50:53 -0000 1.3
***************
*** 16,19 ****
--- 16,20 ----
// Actually for demodulator, but tuner node deals with it it seems
ULONG bandwidth;
+ BOOL ChangeOutstanding;
} TUNER_DATA;
|
Update of /cvsroot/bdadev/CleverTelly
In directory sc8-pr-cvs1:/tmp/cvs-serv4050
Modified Files:
CleverTelly.dsp CleverTelly.rc MainDlg.cpp MainDlg.h
Removed Files:
MSVidCtlComp.cpp MSVidCtlComp.h MSVidCtlComp.rgs cleverte.ico
msvidctl.bmp
Log Message:
Bug fixes and tidy up
Index: CleverTelly.dsp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.dsp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CleverTelly.dsp 25 Feb 2003 17:19:04 -0000 1.4
--- CleverTelly.dsp 26 Feb 2003 17:13:44 -0000 1.5
***************
*** 70,74 ****
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
! # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /Yu"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
--- 70,74 ----
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c
! # ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /FR /Yu"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
Index: CleverTelly.rc
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.rc,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CleverTelly.rc 25 Feb 2003 17:19:04 -0000 1.4
--- CleverTelly.rc 26 Feb 2003 17:13:44 -0000 1.5
***************
*** 69,82 ****
//
! IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 187, 102
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "MS Sans Serif"
BEGIN
! DEFPUSHBUTTON "OK",IDOK,130,81,50,14
! CTEXT "CleverTelly Application v1.0\n\n(c) Copyright 2003",
! IDC_STATIC,25,57,78,32
! ICON IDR_MAINFRAME,IDC_STATIC,55,26,18,20
! GROUPBOX "",IDC_STATIC,7,7,115,88
END
--- 69,86 ----
//
! IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 326, 157
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About"
FONT 8, "MS Sans Serif"
BEGIN
! CTEXT "CleverTelly Applcation v1.0\n(c) Copyright John Adcock 2003",
! IDC_STATIC,103,20,118,18
! ICON IDR_MAINFRAME,IDC_STATIC,22,18,21,20
! DEFPUSHBUTTON "OK",IDOK,138,136,50,14
! GROUPBOX "Licence Info",IDC_STATIC,13,47,306,84
! LTEXT "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.",
! IDC_STATIC,16,57,296,31
! LTEXT "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.",
! IDC_STATIC,14,89,299,33
END
***************
*** 119,125 ****
BEGIN
LEFTMARGIN, 7
! RIGHTMARGIN, 180
TOPMARGIN, 7
! BOTTOMMARGIN, 95
END
END
--- 123,129 ----
BEGIN
LEFTMARGIN, 7
! RIGHTMARGIN, 319
TOPMARGIN, 7
! BOTTOMMARGIN, 150
END
END
Index: MainDlg.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** MainDlg.cpp 26 Feb 2003 08:17:55 -0000 1.6
--- MainDlg.cpp 26 Feb 2003 17:13:52 -0000 1.7
***************
*** 123,126 ****
--- 123,128 ----
CHECK(m_pVidControl->put_BackColor(Black));
CHECK(m_pVidControl->put_ColorKey(Black));
+ CHECK(m_pVidControl->put_AutoSize(VARIANT_FALSE));
+ CHECK(m_pVidControl->put_MaintainAspectRatio(VARIANT_FALSE));
// create the Tune Request store
***************
*** 275,279 ****
break;
case SIZE_MINIMIZED:
! CloseWindow(m_hWnd);
break;
case SIZE_RESTORED:
--- 277,281 ----
break;
case SIZE_MINIMIZED:
! ShowWindow(SW_HIDE);
break;
case SIZE_RESTORED:
***************
*** 282,286 ****
break;
default:
- ResizeVideoControl();
break;
}
--- 284,287 ----
***************
*** 289,301 ****
}
! void __stdcall CMainDlg::OnClick()
{
! ATLTRACE("OnClick\n");
TuneToChannel(8);
m_pVidControl->Run();
}
! void __stdcall CMainDlg::OnStateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState)
{
if(CurrState == STATE_PLAY)
{
--- 290,303 ----
}
! void __stdcall CMainDlg::OnVidCtlClick()
{
! ATLTRACE("OnVidCtlClick\n");
TuneToChannel(8);
m_pVidControl->Run();
}
! void __stdcall CMainDlg::OnVidCtlStateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState)
{
+ ATLTRACE("OnVidCtlStateChange Old %d New %d\n", PrevState, CurrState);
if(CurrState == STATE_PLAY)
{
***************
*** 310,347 ****
}
! void __stdcall CMainDlg::OnDblClick()
{
! ATLTRACE("OnDblClick\n");
}
! void __stdcall CMainDlg::OnError(short Number, BSTR* pDescription, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* pCancelDisplay)
{
! ATLTRACE("OnError %04x\n", Number);
}
! void __stdcall CMainDlg::OnKeyDown(short* pKeyCode, short Shift)
{
! ATLTRACE("OnKeyDown %04x\n", *pKeyCode);
}
! void __stdcall CMainDlg::OnKeyPress(short* pKeyCode)
{
! ATLTRACE("OnKeyPress %04x\n", *pKeyCode);
}
! void __stdcall CMainDlg::OnKeyUp(short* pKeyCode, short Shift)
{
! ATLTRACE("OnKeyUp %04x\n", *pKeyCode);
}
! void __stdcall CMainDlg::OnMouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
{
}
! void __stdcall CMainDlg::OnMouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
{
}
! void __stdcall CMainDlg::OnMouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
{
}
--- 312,349 ----
}
! void __stdcall CMainDlg::OnVidCtlDblClick()
{
! ATLTRACE("OnVidCtlDblClick\n");
}
! void __stdcall CMainDlg::OnVidCtlError(short Number, BSTR* pDescription, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* pCancelDisplay)
{
! ATLTRACE("OnVidCtlError %04x\n", Number);
}
! void __stdcall CMainDlg::OnVidCtlKeyDown(short* pKeyCode, short Shift)
{
! ATLTRACE("OnVidCtlKeyDown %04x\n", *pKeyCode);
}
! void __stdcall CMainDlg::OnVidCtlKeyPress(short* pKeyCode)
{
! ATLTRACE("OnVidCtlKeyPress %04x\n", *pKeyCode);
}
! void __stdcall CMainDlg::OnVidCtlKeyUp(short* pKeyCode, short Shift)
{
! ATLTRACE("OnVidCtlKeyUp %04x\n", *pKeyCode);
}
! void __stdcall CMainDlg::OnVidCtlMouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
{
}
! void __stdcall CMainDlg::OnVidCtlMouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
{
}
! void __stdcall CMainDlg::OnVidCtlMouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y)
{
}
***************
*** 661,664 ****
--- 663,669 ----
//
// $Log$
+ // Revision 1.7 2003/02/26 17:13:52 adcockj
+ // Bug fixes and tidy up
+ //
// Revision 1.6 2003/02/26 08:17:55 adcockj
// Bug Fixes
Index: MainDlg.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** MainDlg.h 26 Feb 2003 08:17:56 -0000 1.5
--- MainDlg.h 26 Feb 2003 17:13:53 -0000 1.6
***************
*** 91,104 ****
BEGIN_SINK_MAP(CMainDlg)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_CLICK, OnClick, &OnClickInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_DBLCLICK, OnDblClick, &OnDblClickInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_ERROREVENT, OnError, &OnErrorInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_KEYDOWN, OnKeyDown, &OnKeyDownInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_KEYPRESS, OnKeyPress, &OnKeyPressInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_KEYUP, OnKeyUp, &OnKeyUpInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_MOUSEDOWN, OnMouseDown, &OnMouseDownInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_MOUSEMOVE, OnMouseMove, &OnMouseMoveInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_MOUSEUP, OnMouseUp, &OnMouseUpInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), dispidStateChange, OnStateChange, &OnStateChangeInfo)
END_SINK_MAP()
--- 91,104 ----
BEGIN_SINK_MAP(CMainDlg)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_CLICK, OnVidCtlClick, &OnClickInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_DBLCLICK, OnVidCtlDblClick, &OnDblClickInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_ERROREVENT, OnVidCtlError, &OnErrorInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_KEYDOWN, OnVidCtlKeyDown, &OnKeyDownInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_KEYPRESS, OnVidCtlKeyPress, &OnKeyPressInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_KEYUP, OnVidCtlKeyUp, &OnKeyUpInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_MOUSEDOWN, OnVidCtlMouseDown, &OnMouseDownInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_MOUSEMOVE, OnVidCtlMouseMove, &OnMouseMoveInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), DISPID_MOUSEUP, OnVidCtlMouseUp, &OnMouseUpInfo)
! SINK_ENTRY_INFO(IDC_MSVIDCTL, __uuidof(_IMSVidCtlEvents), dispidStateChange, OnVidCtlStateChange, &OnStateChangeInfo)
END_SINK_MAP()
***************
*** 142,155 ****
private:
void ResizeVideoControl();
! void __stdcall OnClick();
! void __stdcall OnDblClick();
! void __stdcall OnError(short Number, BSTR* pDescription, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* pCancelDisplay);
! void __stdcall OnKeyDown(short* pKeyCode, short Shift);
! void __stdcall OnKeyPress(short* pKeyCode);
! void __stdcall OnKeyUp(short* pKeyCode, short Shift);
! void __stdcall OnMouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
! void __stdcall OnMouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
! void __stdcall OnMouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
! void __stdcall OnStateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState);
HRESULT LoadUpDefaultTuneRequest();
HRESULT CreateTuneReqStore();
--- 142,155 ----
private:
void ResizeVideoControl();
! void __stdcall OnVidCtlClick();
! void __stdcall OnVidCtlDblClick();
! void __stdcall OnVidCtlError(short Number, BSTR* pDescription, long Scode, BSTR Source, BSTR HelpFile, long HelpContext, boolean* pCancelDisplay);
! void __stdcall OnVidCtlKeyDown(short* pKeyCode, short Shift);
! void __stdcall OnVidCtlKeyPress(short* pKeyCode);
! void __stdcall OnVidCtlKeyUp(short* pKeyCode, short Shift);
! void __stdcall OnVidCtlMouseDown(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
! void __stdcall OnVidCtlMouseMove(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
! void __stdcall OnVidCtlMouseUp(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
! void __stdcall OnVidCtlStateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState);
HRESULT LoadUpDefaultTuneRequest();
HRESULT CreateTuneReqStore();
--- MSVidCtlComp.cpp DELETED ---
--- MSVidCtlComp.h DELETED ---
--- MSVidCtlComp.rgs DELETED ---
--- cleverte.ico DELETED ---
--- msvidctl.bmp DELETED ---
|
|
From: <ad...@us...> - 2003-02-26 17:07:48
|
Update of /cvsroot/bdadev/SimpleTV
In directory sc8-pr-cvs1:/tmp/cvs-serv32569
Modified Files:
SIMPLETV.CPP
Log Message:
Added VMR9 as default renderer
Index: SIMPLETV.CPP
===================================================================
RCS file: /cvsroot/bdadev/SimpleTV/SIMPLETV.CPP,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** SIMPLETV.CPP 21 Feb 2003 20:57:51 -0000 1.8
--- SIMPLETV.CPP 26 Feb 2003 17:07:41 -0000 1.9
***************
*** 857,860 ****
--- 857,890 ----
+ // Test VMR9 to see if there is improvement in deinterlacing on
+ // Radeon Cards
+ HRESULT CreateVMR9(
+ IN PAPPLICATION Application)
+ {
+ HRESULT Result;
+
+ IBaseFilter* VMR9;
+ // create a FilterGraph2 object
+ Result = CoCreateInstance
+ (
+ CLSID_VideoMixingRenderer9,
+ NULL,
+ CLSCTX_INPROC_SERVER,
+ IID_IBaseFilter,
+ (LPVOID *) &VMR9
+ );
+
+ if(SUCCEEDED(Result))
+ {
+ Result = Application->FilterGraph->
+ AddFilter(VMR9,
+ L"VMR9");
+
+ VMR9->Release();
+ }
+
+
+ return Result;
+ }
/******************************************************************************
***** DirectShow filter graph building and erasing functions *****
***************
*** 892,895 ****
--- 922,931 ----
if (Result == S_OK)
{
+ // try to create the VMR9 renderer
+ // if it fails don't worry as some other
+ // renderer will be added later
+ // must be added to the graph first though
+ Result = CreateVMR9(Application);
+
// try to add the cached BDA Network Filters to the graph
Result = CreateNetworkFilters(Application);
***************
*** 2854,2857 ****
--- 2890,2896 ----
//
// $Log$
+ // Revision 1.9 2003/02/26 17:07:41 adcockj
+ // Added VMR9 as default renderer
+ //
// Revision 1.8 2003/02/21 20:57:51 adcockj
// Bug fixes to Tuneing space persist code
|
|
From: <ad...@us...> - 2003-02-26 08:18:29
|
Update of /cvsroot/bdadev/TuneReqStore
In directory sc8-pr-cvs1:/tmp/cvs-serv26170
Modified Files:
TuneInfo.h TuneRequestStore.cpp TuneRequestStore.h
Log Message:
Bug fixes
Index: TuneInfo.h
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneInfo.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** TuneInfo.h 25 Feb 2003 17:20:13 -0000 1.7
--- TuneInfo.h 26 Feb 2003 08:18:25 -0000 1.8
***************
*** 47,54 ****
BEGIN_PROP_MAP(CTuneInfo)
! PROP_ENTRY("TuneRequest", 1, CLSID_NULL)
! PROP_ENTRY("Description", 2, CLSID_NULL)
! PROP_ENTRY("UniqueID", 3, CLSID_NULL)
! PROP_ENTRY("KeyedNumber", 4, CLSID_NULL)
END_PROP_MAP()
--- 47,54 ----
BEGIN_PROP_MAP(CTuneInfo)
! PROP_ENTRY("TuneRequest", 2, CLSID_NULL)
! PROP_ENTRY("Description", 3, CLSID_NULL)
! PROP_ENTRY("UniqueID", 4, CLSID_NULL)
! PROP_ENTRY("KeyedNumber", 5, CLSID_NULL)
END_PROP_MAP()
***************
*** 75,79 ****
private:
! typedef CComEnumOnSTL<IEnumProgramInfo, &IID_IEnumProgramInfo, IProgramInfo*, _Copy<IProgramInfo*>, std::vector<IProgramInfo*> > ComSTLEnum;
--- 75,79 ----
private:
! typedef CComEnumOnSTL<IEnumProgramInfo, &IID_IEnumProgramInfo, IProgramInfo*, _CopyInterface<IProgramInfo>, std::vector<IProgramInfo*> > ComSTLEnum;
Index: TuneRequestStore.cpp
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneRequestStore.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** TuneRequestStore.cpp 25 Feb 2003 17:20:13 -0000 1.13
--- TuneRequestStore.cpp 26 Feb 2003 08:18:25 -0000 1.14
***************
*** 359,363 ****
CHECK(pElem->get_text(&Name));
pVar->vt = VT_DISPATCH;
! return GetTuningSpace(Name, (ITuningSpace**) &pVar->pdispVal);
}
else
--- 359,364 ----
CHECK(pElem->get_text(&Name));
pVar->vt = VT_DISPATCH;
! CHECK(hr = GetTuningSpace(Name, (ITuningSpace**) &pVar->pdispVal));
! return hr;
}
else
***************
*** 499,502 ****
--- 500,506 ----
if (vt == VT_UNKNOWN || vt == VT_DISPATCH)
{
+ CComVariant Variant(VT_BSTR);
+ CHECK(pElem->setAttribute(CComBSTR(L"vt"), Variant));
+
CComQIPtr<ITuningSpace> TuningSpace = pVar->punkVal;
if(TuningSpace)
***************
*** 1147,1163 ****
Result = m_GuideData->GetProgramProperties(ProgramId, &EnumProgramProperties);
! CHECK(Result);
!
! CComBSTR Title;
! CComBSTR Description;
! Result = GetGuideDataProperty(EnumProgramProperties, L"Description.Title", Title);
! CHECK(Result);
! Result = GetGuideDataProperty(EnumProgramProperties, L"Description.One Sentence", Description);
! CHECK(Result);
! Result = UpdateScheduleInfo(ServiceId, ScheduleID.bstrVal, Title, Description, StartTime, EndTime);
! CHECK(Result);
ScheduleID.Clear();
--- 1151,1168 ----
Result = m_GuideData->GetProgramProperties(ProgramId, &EnumProgramProperties);
! if(SUCCEEDED(Result))
! {
! CComBSTR Title;
! CComBSTR Description;
! Result = GetGuideDataProperty(EnumProgramProperties, L"Description.Title", Title);
! CHECK(Result);
! Result = GetGuideDataProperty(EnumProgramProperties, L"Description.One Sentence", Description);
! CHECK(Result);
! Result = UpdateScheduleInfo(ServiceId, ScheduleID.bstrVal, Title, Description, StartTime, EndTime);
! CHECK(Result);
! }
ScheduleID.Clear();
***************
*** 1184,1189 ****
if (cCount > 0)
{
! CComVariant Item(0);
! return TuningSpaces->get_Item(Item, pDisp);
}
else
--- 1189,1196 ----
if (cCount > 0)
{
! CComPtr<IEnumTuningSpaces> EnumTuneSpaces;
! CHECK(TuningSpaces->get_EnumTuningSpaces(&EnumTuneSpaces));
! ULONG Items(0);
! return EnumTuneSpaces->Next(1, pDisp, &Items);
}
else
***************
*** 1197,1200 ****
--- 1204,1210 ----
//
// $Log$
+ // Revision 1.14 2003/02/26 08:18:25 adcockj
+ // Bug fixes
+ //
// Revision 1.13 2003/02/25 17:20:13 adcockj
// Fixed VB compability issues with schedule info
Index: TuneRequestStore.h
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneRequestStore.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** TuneRequestStore.h 25 Feb 2003 17:20:14 -0000 1.11
--- TuneRequestStore.h 26 Feb 2003 08:18:25 -0000 1.12
***************
*** 100,104 ****
ElementStack m_stackElems;
! typedef CComEnumOnSTL<IEnumTuneInfo, &IID_IEnumTuneInfo, ITuneInfo*, _Copy<ITuneInfo*>, std::vector<ITuneInfo*> > ComSTLEnum;
CComPtr<xml::IXMLDOMDocument> m_doc;
CComPtr<xml::IXMLDOMElement> m_TopElement;
--- 100,104 ----
ElementStack m_stackElems;
! typedef CComEnumOnSTL<IEnumTuneInfo, &IID_IEnumTuneInfo, ITuneInfo*, _CopyInterface<ITuneInfo>, std::vector<ITuneInfo*> > ComSTLEnum;
CComPtr<xml::IXMLDOMDocument> m_doc;
CComPtr<xml::IXMLDOMElement> m_TopElement;
|
|
From: <ad...@us...> - 2003-02-26 08:18:14
|
Update of /cvsroot/bdadev/CleverTelly
In directory sc8-pr-cvs1:/tmp/cvs-serv25906
Modified Files:
MainDlg.cpp MainDlg.h
Log Message:
Bug Fixes
Index: MainDlg.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** MainDlg.cpp 25 Feb 2003 17:23:17 -0000 1.5
--- MainDlg.cpp 26 Feb 2003 08:17:55 -0000 1.6
***************
*** 27,33 ****
_ATL_FUNC_INFO OnDblClickInfo = {CC_STDCALL, VT_EMPTY, 0};
_ATL_FUNC_INFO OnErrorInfo = {CC_STDCALL, VT_EMPTY, 7, {VT_I2, VT_PTR, VT_I4, VT_BSTR, VT_BSTR, VT_I4, VT_PTR} };
! _ATL_FUNC_INFO OnKeyDownInfo = {CC_STDCALL, VT_EMPTY, 2, {VT_PTR, VT_I2} };
_ATL_FUNC_INFO OnKeyPressInfo = {CC_STDCALL, VT_EMPTY, 2, {VT_PTR} };
! _ATL_FUNC_INFO OnKeyUpInfo = {CC_STDCALL, VT_EMPTY, 2, {VT_PTR, VT_I2} };
_ATL_FUNC_INFO OnMouseDownInfo = {CC_STDCALL, VT_EMPTY, 4, {VT_I2, VT_I2, VT_I4, VT_I4} };
_ATL_FUNC_INFO OnMouseMoveInfo = {CC_STDCALL, VT_EMPTY, 4, {VT_I2, VT_I2, VT_I4, VT_I4} };
--- 27,33 ----
_ATL_FUNC_INFO OnDblClickInfo = {CC_STDCALL, VT_EMPTY, 0};
_ATL_FUNC_INFO OnErrorInfo = {CC_STDCALL, VT_EMPTY, 7, {VT_I2, VT_PTR, VT_I4, VT_BSTR, VT_BSTR, VT_I4, VT_PTR} };
! _ATL_FUNC_INFO OnKeyDownInfo = {CC_STDCALL, VT_EMPTY, 2, {VT_I2|VT_BYREF, VT_I2} };
_ATL_FUNC_INFO OnKeyPressInfo = {CC_STDCALL, VT_EMPTY, 2, {VT_PTR} };
! _ATL_FUNC_INFO OnKeyUpInfo = {CC_STDCALL, VT_EMPTY, 2, {VT_I2|VT_BYREF, VT_I2} };
_ATL_FUNC_INFO OnMouseDownInfo = {CC_STDCALL, VT_EMPTY, 4, {VT_I2, VT_I2, VT_I4, VT_I4} };
_ATL_FUNC_INFO OnMouseMoveInfo = {CC_STDCALL, VT_EMPTY, 4, {VT_I2, VT_I2, VT_I4, VT_I4} };
***************
*** 118,123 ****
if(pVidRenderer)
{
! pVidRenderer->put_UsingOverlay(m_UseOverlay?VARIANT_TRUE:VARIANT_FALSE);
}
// create the Tune Request store
--- 118,126 ----
if(pVidRenderer)
{
! CHECK(pVidRenderer->put_UsingOverlay(m_UseOverlay?VARIANT_TRUE:VARIANT_FALSE));
}
+ OLE_COLOR Black(0);
+ CHECK(m_pVidControl->put_BackColor(Black));
+ CHECK(m_pVidControl->put_ColorKey(Black));
// create the Tune Request store
***************
*** 126,130 ****
{
ATLTRACE("CreateTuneReqStore Returned %8x\n", Result);
- return FALSE;
}
--- 129,132 ----
***************
*** 135,152 ****
if(m_TuneRequestStore)
{
! long Count(0);
! CHECK(m_TuneRequestStore->get_Count(&Count));
! if(Count == 0)
{
! Result = LoadUpDefaultTuneRequest();
! if(FAILED(Result))
! {
! ATLTRACE("LoadUpDefaultTuneRequest Returned %8x\n", Result);
! return FALSE;
! }
}
! else
{
! Result = TuneToChannel(1);
if(FAILED(Result))
{
--- 137,151 ----
if(m_TuneRequestStore)
{
! Result = LoadUpDefaultTuneRequest();
! if(FAILED(Result))
{
! ATLTRACE("LoadUpDefaultTuneRequest Returned %8x\n", Result);
! return FALSE;
}
! long Count(0);
! CHECK(m_TuneRequestStore->get_Count(&Count));
! if(Count > 0)
{
! Result = TuneToChannel(8);
if(FAILED(Result))
{
***************
*** 188,191 ****
--- 187,191 ----
SetWindowRgn(NULL,TRUE);
}
+ SetupAspectRatio();
m_FullScreen = !m_FullScreen;
return 0;
***************
*** 208,219 ****
}
-
- if(m_pVidControl)
- {
- m_pVidControl->Stop();
- m_pVidControl.Release();
- }
-
-
if(m_TuneRequestStore)
{
--- 208,211 ----
***************
*** 227,230 ****
--- 219,230 ----
}
+
+ if(m_pVidControl)
+ {
+ m_pVidControl->Stop();
+ m_pVidControl.Release();
+ }
+
+
DestroyWindow();
PostQuitMessage(wID);
***************
*** 239,242 ****
--- 239,243 ----
GetClientRect(&WinRect);
hwndVC.MoveWindow(&WinRect, TRUE);
+ SetupAspectRatio();
}
***************
*** 291,294 ****
--- 292,297 ----
{
ATLTRACE("OnClick\n");
+ TuneToChannel(8);
+ m_pVidControl->Run();
}
***************
*** 319,322 ****
--- 322,326 ----
void __stdcall CMainDlg::OnKeyDown(short* pKeyCode, short Shift)
{
+ ATLTRACE("OnKeyDown %04x\n", *pKeyCode);
}
***************
*** 328,331 ****
--- 332,336 ----
void __stdcall CMainDlg::OnKeyUp(short* pKeyCode, short Shift)
{
+ ATLTRACE("OnKeyUp %04x\n", *pKeyCode);
}
***************
*** 432,436 ****
CComPtr<ITuningSpaceContainer> TuningSpaceContainer;
! TuningSpaceContainer.CoCreateInstance(CLSID_SystemTuningSpaces);
// Try to match any tuning spaces named "Local (something) Cable".
--- 437,441 ----
CComPtr<ITuningSpaceContainer> TuningSpaceContainer;
! TuningSpaceContainer.CoCreateInstance(CLSID_SystemTuningSpaces, NULL, CLSCTX_INPROC_SERVER);
// Try to match any tuning spaces named "Local (something) Cable".
***************
*** 470,474 ****
HRESULT CMainDlg::CreateTuneReqStore()
{
! HRESULT Result = m_TuneRequestStore.CreateInstance(__uuidof(TUNEREQSTORELib::TuneRequestStore));
if (SUCCEEDED(Result))
{
--- 475,479 ----
HRESULT CMainDlg::CreateTuneReqStore()
{
! HRESULT Result = m_TuneRequestStore.CoCreateInstance(__uuidof(TUNEREQSTORELib::TuneRequestStore), NULL, CLSCTX_INPROC_SERVER);
if (SUCCEEDED(Result))
{
***************
*** 518,524 ****
// Sidebar
long NewWidth = MulDiv((WinRect.right - WinRect.left), ARWidth, ARHeight);
! WinRect.left += ((WinRect.right - WinRect.left) - Height) / 2;
! WinRect.right = WinRect.left + Height;
}
if(FAILED(m_VMRControl->SetVideoPosition(&SrcRect, &WinRect)))
{
--- 523,530 ----
// Sidebar
long NewWidth = MulDiv((WinRect.right - WinRect.left), ARWidth, ARHeight);
! WinRect.left += ((WinRect.right - WinRect.left) - NewWidth) / 2;
! WinRect.right = WinRect.left + NewWidth;
}
+ ATLTRACE("SetupVideoPosition : %d %d %d %d\n", WinRect.top, WinRect.left, WinRect.bottom, WinRect.right);
if(FAILED(m_VMRControl->SetVideoPosition(&SrcRect, &WinRect)))
{
***************
*** 564,568 ****
// implement the IVMRWindowlessControl interface
Result = GraphBuilder->EnumFilters(&EnumFilters);
! if(SUCCEEDED(Result))
{
CComPtr<IBaseFilter> BaseFilter;
--- 570,574 ----
// implement the IVMRWindowlessControl interface
Result = GraphBuilder->EnumFilters(&EnumFilters);
! if(Result == S_OK)
{
CComPtr<IBaseFilter> BaseFilter;
***************
*** 577,580 ****
--- 583,587 ----
return;
}
+ BaseFilter.Release();
}
}
***************
*** 654,657 ****
--- 661,667 ----
//
// $Log$
+ // Revision 1.6 2003/02/26 08:17:55 adcockj
+ // Bug Fixes
+ //
// Revision 1.5 2003/02/25 17:23:17 adcockj
// Added log and id to new files
Index: MainDlg.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** MainDlg.h 25 Feb 2003 17:23:18 -0000 1.4
--- MainDlg.h 26 Feb 2003 08:17:56 -0000 1.5
***************
*** 161,165 ****
private:
CComQIPtr<IMSVidCtl> m_pVidControl;
! TUNEREQSTORELib::ITuneRequestStorePtr m_TuneRequestStore;
CComPtr<IConnectionPoint> m_ConnectionPoint;
CComQIPtr<IMediaEventEx> m_MediaEvents;
--- 161,165 ----
private:
CComQIPtr<IMSVidCtl> m_pVidControl;
! CComPtr<TUNEREQSTORELib::ITuneRequestStore> m_TuneRequestStore;
CComPtr<IConnectionPoint> m_ConnectionPoint;
CComQIPtr<IMediaEventEx> m_MediaEvents;
|
|
From: <ad...@us...> - 2003-02-25 17:23:25
|
Update of /cvsroot/bdadev/CleverTelly
In directory sc8-pr-cvs1:/tmp/cvs-serv24634
Modified Files:
CleverTelly.cpp MainDlg.cpp MainDlg.h StdAfx.h
Log Message:
Added log and id to new files
Index: CleverTelly.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CleverTelly.cpp 25 Feb 2003 17:19:02 -0000 1.6
--- CleverTelly.cpp 25 Feb 2003 17:23:16 -0000 1.7
***************
*** 1,4 ****
! // CleverTelly.cpp : main source file for CleverTelly.exe
//
#include "stdafx.h"
--- 1,21 ----
! /////////////////////////////////////////////////////////////////////////////
! // $Id$
! /////////////////////////////////////////////////////////////////////////////
! // CleverTelly - BDA DVB TV Application
! // Copyright (c) 2003 John Adcock. All rights reserved.
! /////////////////////////////////////////////////////////////////////////////
! //
! // This file is subject to the terms of the GNU General Public License as
! // published by the Free Software Foundation. A copy of this license is
! // included with this software distribution in the file COPYING.txt. If you
! // do not have a copy, you may obtain a copy by writing to the Free
! // Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
! //
! // This software is distributed in the hope that it will be useful,
! // but WITHOUT ANY WARRANTY; without even the implied warranty of
! // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! // GNU General Public License for more details
//
+ /////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
***************
*** 80,81 ****
--- 97,107 ----
return nRet;
}
+
+ /////////////////////////////////////////////////////////////////////////////
+ // CVS Log
+ //
+ // $Log$
+ // Revision 1.7 2003/02/25 17:23:16 adcockj
+ // Added log and id to new files
+ //
+ /////////////////////////////////////////////////////////////////////////////
Index: MainDlg.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** MainDlg.cpp 25 Feb 2003 17:19:04 -0000 1.4
--- MainDlg.cpp 25 Feb 2003 17:23:17 -0000 1.5
***************
*** 1,3 ****
! // maindlg.cpp : implementation of the CMainDlg class
//
/////////////////////////////////////////////////////////////////////////////
--- 1,19 ----
! /////////////////////////////////////////////////////////////////////////////
! // $Id$
! /////////////////////////////////////////////////////////////////////////////
! // CleverTelly - BDA DVB TV Application
! // Copyright (c) 2003 John Adcock. All rights reserved.
! /////////////////////////////////////////////////////////////////////////////
! //
! // This file is subject to the terms of the GNU General Public License as
! // published by the Free Software Foundation. A copy of this license is
! // included with this software distribution in the file COPYING.txt. If you
! // do not have a copy, you may obtain a copy by writing to the Free
! // Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
! //
! // This software is distributed in the hope that it will be useful,
! // but WITHOUT ANY WARRANTY; without even the implied warranty of
! // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! // GNU General Public License for more details
//
/////////////////////////////////////////////////////////////////////////////
***************
*** 633,634 ****
--- 649,659 ----
return FALSE;
}
+
+ /////////////////////////////////////////////////////////////////////////////
+ // CVS Log
+ //
+ // $Log$
+ // Revision 1.5 2003/02/25 17:23:17 adcockj
+ // Added log and id to new files
+ //
+ /////////////////////////////////////////////////////////////////////////////
Index: MainDlg.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MainDlg.h 25 Feb 2003 17:19:04 -0000 1.3
--- MainDlg.h 25 Feb 2003 17:23:18 -0000 1.4
***************
*** 1,3 ****
! // maindlg.h : interface of the CMainDlg class
//
/////////////////////////////////////////////////////////////////////////////
--- 1,19 ----
! /////////////////////////////////////////////////////////////////////////////
! // $Id$
! /////////////////////////////////////////////////////////////////////////////
! // CleverTelly - BDA DVB TV Application
! // Copyright (c) 2003 John Adcock. All rights reserved.
! /////////////////////////////////////////////////////////////////////////////
! //
! // This file is subject to the terms of the GNU General Public License as
! // published by the Free Software Foundation. A copy of this license is
! // included with this software distribution in the file COPYING.txt. If you
! // do not have a copy, you may obtain a copy by writing to the Free
! // Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
! //
! // This software is distributed in the hope that it will be useful,
! // but WITHOUT ANY WARRANTY; without even the implied warranty of
! // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! // GNU General Public License for more details
//
/////////////////////////////////////////////////////////////////////////////
Index: StdAfx.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/StdAfx.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** StdAfx.h 25 Feb 2003 17:19:04 -0000 1.5
--- StdAfx.h 25 Feb 2003 17:23:18 -0000 1.6
***************
*** 1,6 ****
! // stdafx.h : include file for standard system include files,
! // or project specific include files that are used frequently, but
! // are changed infrequently
//
#if !defined(AFX_STDAFX_H__CCE886B8_480B_11D7_B841_0002A5623377__INCLUDED_)
--- 1,21 ----
! /////////////////////////////////////////////////////////////////////////////
! // $Id$
! /////////////////////////////////////////////////////////////////////////////
! // CleverTelly - BDA DVB TV Application
! // Copyright (c) 2003 John Adcock. All rights reserved.
! /////////////////////////////////////////////////////////////////////////////
//
+ // This file is subject to the terms of the GNU General Public License as
+ // published by the Free Software Foundation. A copy of this license is
+ // included with this software distribution in the file COPYING.txt. If you
+ // do not have a copy, you may obtain a copy by writing to the Free
+ // Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ //
+ // This software is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details
+ //
+ /////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_STDAFX_H__CCE886B8_480B_11D7_B841_0002A5623377__INCLUDED_)
|
|
From: <ad...@us...> - 2003-02-25 17:20:22
|
Update of /cvsroot/bdadev/TuneReqStore
In directory sc8-pr-cvs1:/tmp/cvs-serv22837
Modified Files:
TuneInfo.cpp TuneInfo.h TuneReqStore.idl TuneRequestStore.cpp
TuneRequestStore.h
Log Message:
Fixed VB compability issues with schedule info
Storage of Tuning spaces by name only
Index: TuneInfo.cpp
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneInfo.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** TuneInfo.cpp 21 Feb 2003 16:36:43 -0000 1.5
--- TuneInfo.cpp 25 Feb 2003 17:20:12 -0000 1.6
***************
*** 98,102 ****
}
! STDMETHODIMP CTuneInfo::get_ProgramInfomation(IEnumProgramInfo **pVal)
{
if (pVal == NULL)
--- 98,102 ----
}
! STDMETHODIMP CTuneInfo::get__NewEnum(IEnumProgramInfo **pVal)
{
if (pVal == NULL)
***************
*** 125,128 ****
--- 125,153 ----
}
+ STDMETHODIMP CTuneInfo::get_Item(long Index, IProgramInfo* *pVal)
+ {
+ if (pVal == NULL)
+ {
+ return E_POINTER;
+ }
+
+ if(Index >= 0 && Index < m_ProgramInfos.size())
+ {
+ *pVal = m_ProgramInfos[Index];
+ (*pVal)->AddRef();
+ return S_OK;
+ }
+ else
+ {
+ return E_FAIL;
+ }
+ }
+
+ STDMETHODIMP CTuneInfo::get_Count(long *pVal)
+ {
+ *pVal = m_ProgramInfos.size();
+ return S_OK;
+ }
+
void CTuneInfo::EmptyArray()
{
***************
*** 142,145 ****
--- 167,174 ----
//
// $Log$
+ // Revision 1.6 2003/02/25 17:20:12 adcockj
+ // Fixed VB compability issues with schedule info
+ // Storage of Tuning spaces by name only
+ //
// Revision 1.5 2003/02/21 16:36:43 adcockj
// Added schedule functionality (untested) and some code clean up
Index: TuneInfo.h
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneInfo.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** TuneInfo.h 21 Feb 2003 16:36:43 -0000 1.6
--- TuneInfo.h 25 Feb 2003 17:20:13 -0000 1.7
***************
*** 56,60 ****
// ITuneInfo
public:
! STDMETHOD(get_ProgramInfomation)(/*[out, retval]*/ IEnumProgramInfo* *pVal);
STDMETHOD(get_KeyedNumber)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_KeyedNumber)(/*[in]*/ long newVal);
--- 56,62 ----
// ITuneInfo
public:
! STDMETHOD(get__NewEnum)(/*[out, retval]*/ IEnumProgramInfo* *pVal);
! STDMETHOD(get_Item)(/*[in]*/ long Index, /*[out, retval]*/ IProgramInfo* *pVal);
! STDMETHOD(get_Count)(/*[out, retval]*/ long* pVal);
STDMETHOD(get_KeyedNumber)(/*[out, retval]*/ long *pVal);
STDMETHOD(put_KeyedNumber)(/*[in]*/ long newVal);
Index: TuneReqStore.idl
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneReqStore.idl,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** TuneReqStore.idl 25 Feb 2003 08:01:13 -0000 1.7
--- TuneReqStore.idl 25 Feb 2003 17:20:13 -0000 1.8
***************
*** 70,82 ****
interface ITuneInfo : IDispatch
{
! [propget, id(1), helpstring("property TuneRequest")] HRESULT TuneRequest([out, retval] ITuneRequest* *pVal);
! [propput, id(1), helpstring("property TuneRequest")] HRESULT TuneRequest([in] ITuneRequest* newVal);
! [propget, id(2), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
! [propput, id(2), helpstring("property Description")] HRESULT Description([in] BSTR newVal);
! [propget, id(3), helpstring("property UniqueID")] HRESULT UniqueID([out, retval] BSTR *pVal);
! [propput, id(3), helpstring("property UniqueID")] HRESULT UniqueID([in] BSTR newVal);
! [propget, id(4), helpstring("property KeyedNumber")] HRESULT KeyedNumber([out, retval] long *pVal);
! [propput, id(4), helpstring("property KeyedNumber")] HRESULT KeyedNumber([in] long newVal);
! [propget, id(5), helpstring("property ProgramInfomation")] HRESULT ProgramInfomation([out, retval] IEnumProgramInfo* *pVal);
};
--- 70,84 ----
interface ITuneInfo : IDispatch
{
! [id(DISPID_NEWENUM), propget] HRESULT _NewEnum([out, retval] IEnumProgramInfo** ppUnk);
! [id(DISPID_VALUE), propget] HRESULT Item([in] long Index, [out, retval] IProgramInfo** pVal);
! [id(1), propget] HRESULT Count([out, retval] long* pVal);
! [propget, id(2), helpstring("property TuneRequest")] HRESULT TuneRequest([out, retval] ITuneRequest* *pVal);
! [propput, id(2), helpstring("property TuneRequest")] HRESULT TuneRequest([in] ITuneRequest* newVal);
! [propget, id(3), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
! [propput, id(3), helpstring("property Description")] HRESULT Description([in] BSTR newVal);
! [propget, id(4), helpstring("property UniqueID")] HRESULT UniqueID([out, retval] BSTR *pVal);
! [propput, id(4), helpstring("property UniqueID")] HRESULT UniqueID([in] BSTR newVal);
! [propget, id(5), helpstring("property KeyedNumber")] HRESULT KeyedNumber([out, retval] long *pVal);
! [propput, id(5), helpstring("property KeyedNumber")] HRESULT KeyedNumber([in] long newVal);
};
***************
*** 159,162 ****
--- 161,168 ----
//
// $Log$
+ // Revision 1.8 2003/02/25 17:20:13 adcockj
+ // Fixed VB compability issues with schedule info
+ // Storage of Tuning spaces by name only
+ //
// Revision 1.7 2003/02/25 08:01:13 adcockj
// Added support for video Control
Index: TuneRequestStore.cpp
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneRequestStore.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** TuneRequestStore.cpp 25 Feb 2003 08:01:14 -0000 1.12
--- TuneRequestStore.cpp 25 Feb 2003 17:20:13 -0000 1.13
***************
*** 354,468 ****
CHECK(node->QueryInterface(&pElem));
! CComVariant varVT;
! CHECK(pElem->getAttribute(CComBSTR(L"vt"), &varVT));
! CHECK(varVT.ChangeType(VT_I2));
! VARTYPE vt = varVT.iVal;
! if (vt == VT_RECORD)
! {
! CComVariant var;
! // Get the uuid
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"uuid"), var));
! GUID uuid;
! CHECK(CLSIDFromString(var.bstrVal, &uuid));
! var.Clear();
! // Get the libid
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"libid"), var));
! GUID libid;
! CHECK(CLSIDFromString(var.bstrVal, &libid));
! var.Clear();
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"major"), var));
! CHECK(var.ChangeType(VT_I2));
! WORD wMajor = var.iVal;
! var.Clear();
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"minor"), var));
! CHECK(var.ChangeType(VT_I2));
! WORD wMinor = var.iVal;
! var.Clear();
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"lcid"), var));
! CHECK(var.ChangeType(VT_UI4));
! LCID lcid = var.ulVal;
! var.Clear();
! CComPtr<IRecordInfo> pRecInfo;
! CHECK(GetRecordInfoFromGuids(libid, wMajor, wMinor, lcid, uuid, &pRecInfo));
! void *pvRecord = pRecInfo->RecordCreate();
! ULONG cFields;
! CHECK(pRecInfo->GetFieldNames(&cFields, 0));
! BSTR *prgNames = new BSTR[cFields];
! CHECK(hr = pRecInfo->GetFieldNames(&cFields, prgNames));
! if (FAILED(hr)) {
! delete [] prgNames;
! return hr;
! }
! for (ULONG i = 0; i < cFields; i++)
! {
! if (SUCCEEDED(hr))
{
- CComVariant value;
- m_stackElems.push(pElem);
- CHECK(hr = Read(prgNames[i], &value, pErrorLog));
- m_stackElems.pop();
if (SUCCEEDED(hr))
! CHECK(pRecInfo->PutField(INVOKE_PROPERTYPUT, pvRecord, prgNames[i], &value));
}
! SysFreeString(prgNames[i]);
! }
! if (FAILED(hr)) {
! delete [] prgNames;
! return hr;
! }
! pVar->vt = VT_RECORD;
! pVar->pRecInfo = pRecInfo.Detach();
! pVar->pvRecord = pvRecord;
! delete [] prgNames;
! }
! else if (vt == VT_UNKNOWN || vt == VT_DISPATCH)
! {
! CComPtr<IPersistPropertyBag> pppb;
! m_stackElems.push(pElem);
! CHECK(UnPersistObject(pErrorLog, &pppb));
! m_stackElems.pop();
! pVar->vt = vt;
! if (hr == S_OK)
! return pppb->QueryInterface((vt == VT_UNKNOWN ? IID_IUnknown : IID_IDispatch), (void**)&pVar->punkVal);
else
{
! pVar->punkVal = 0;
! return S_FALSE;
}
}
- else if (vt == VT_BSTR)
- {
- CHECK(pElem->get_text(&pVar->bstrVal));
- pVar->vt = vt;
- }
- else
- {
- CComVariant textValue;
- CHECK(pElem->get_text(&textValue.bstrVal));
- textValue.vt = VT_BSTR;
- return VariantChangeType(pVar, &textValue, 0, vt);
- }
return S_OK;
--- 354,478 ----
CHECK(node->QueryInterface(&pElem));
! if(wcscmp(pwszPropNameIn, L"Tuning Space") == 0)
! {
! CComBSTR Name;
! CHECK(pElem->get_text(&Name));
! pVar->vt = VT_DISPATCH;
! return GetTuningSpace(Name, (ITuningSpace**) &pVar->pdispVal);
! }
! else
! {
! CComVariant varVT;
! CHECK(pElem->getAttribute(CComBSTR(L"vt"), &varVT));
! CHECK(varVT.ChangeType(VT_I2));
! VARTYPE vt = varVT.iVal;
! if (vt == VT_RECORD)
! {
! CComVariant var;
! // Get the uuid
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"uuid"), var));
! GUID uuid;
! CHECK(CLSIDFromString(var.bstrVal, &uuid));
! var.Clear();
! // Get the libid
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"libid"), var));
! GUID libid;
! CHECK(CLSIDFromString(var.bstrVal, &libid));
! var.Clear();
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"major"), var));
! CHECK(var.ChangeType(VT_I2));
! WORD wMajor = var.iVal;
! var.Clear();
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"minor"), var));
! CHECK(var.ChangeType(VT_I2));
! WORD wMinor = var.iVal;
! var.Clear();
! CHECK(GetAttributeToBSTRVariant( pElem, CComBSTR(L"lcid"), var));
! CHECK(var.ChangeType(VT_UI4));
! LCID lcid = var.ulVal;
! var.Clear();
! CComPtr<IRecordInfo> pRecInfo;
! CHECK(GetRecordInfoFromGuids(libid, wMajor, wMinor, lcid, uuid, &pRecInfo));
! void *pvRecord = pRecInfo->RecordCreate();
! ULONG cFields;
! CHECK(pRecInfo->GetFieldNames(&cFields, 0));
! BSTR *prgNames = new BSTR[cFields];
! CHECK(hr = pRecInfo->GetFieldNames(&cFields, prgNames));
! if (FAILED(hr)) {
! delete [] prgNames;
! return hr;
! }
! for (ULONG i = 0; i < cFields; i++)
{
if (SUCCEEDED(hr))
! {
! CComVariant value;
! m_stackElems.push(pElem);
! CHECK(hr = Read(prgNames[i], &value, pErrorLog));
! m_stackElems.pop();
! if (SUCCEEDED(hr))
! CHECK(pRecInfo->PutField(INVOKE_PROPERTYPUT, pvRecord, prgNames[i], &value));
! }
! SysFreeString(prgNames[i]);
}
! if (FAILED(hr)) {
! delete [] prgNames;
! return hr;
! }
! pVar->vt = VT_RECORD;
! pVar->pRecInfo = pRecInfo.Detach();
! pVar->pvRecord = pvRecord;
! delete [] prgNames;
! }
! else if (vt == VT_UNKNOWN || vt == VT_DISPATCH)
! {
! CComPtr<IPersistPropertyBag> pppb;
! m_stackElems.push(pElem);
! CHECK(UnPersistObject(pErrorLog, &pppb));
! m_stackElems.pop();
! pVar->vt = vt;
! if (hr == S_OK)
! return pppb->QueryInterface((vt == VT_UNKNOWN ? IID_IUnknown : IID_IDispatch), (void**)&pVar->punkVal);
! else
! {
! pVar->punkVal = 0;
! return S_FALSE;
! }
! }
! else if (vt == VT_BSTR)
! {
! CHECK(pElem->get_text(&pVar->bstrVal));
! pVar->vt = vt;
! }
else
{
! CComVariant textValue;
! CHECK(pElem->get_text(&textValue.bstrVal));
! textValue.vt = VT_BSTR;
! return VariantChangeType(pVar, &textValue, 0, vt);
}
}
return S_OK;
***************
*** 485,575 ****
CHECK(m_doc->createElement(CComBSTR(pwszPropName.c_str()), &pElem));
! CComVariant Variant(vt);
! CHECK(Variant.ChangeType(VT_BSTR));
!
! CHECK(pElem->setAttribute(CComBSTR(L"vt"), Variant));
!
! if (vt & VT_ARRAY)
{
! return E_NOTIMPL;
}
! else if (vt == VT_RECORD)
{
! CComPtr<IRecordInfo> pRecInfo = pVar->pRecInfo;
! void *pvRecord = pVar->pvRecord;
! GUID guid;
! CHECK(pRecInfo->GetGuid(&guid));
! CComBSTR bstr(guid);
! CHECK(pElem->setAttribute(CComBSTR(L"uuid"), CComVariant(bstr)));
! CComPtr<ITypeInfo> pTypeInfo;
! CHECK(pRecInfo->GetTypeInfo(&pTypeInfo));
! CComPtr<ITypeLib> pTypeLib;
! UINT index;
! CHECK(pTypeInfo->GetContainingTypeLib(&pTypeLib, &index));
! TLIBATTR *pattr = 0;
! CHECK(pTypeLib->GetLibAttr(&pattr));
! CHECK(pElem->setAttribute(CComBSTR(L"libid"), CComVariant(CComBSTR(pattr->guid))));
! CHECK(pElem->setAttribute(CComBSTR(L"major"), CComVariant(pattr->wMajorVerNum)));
! CHECK(pElem->setAttribute(CComBSTR(L"minor"), CComVariant(pattr->wMinorVerNum)));
! CHECK(pElem->setAttribute(CComBSTR(L"lcid"), CComVariant(long(pattr->lcid))));
! pTypeLib->ReleaseTLibAttr(pattr);
! ULONG cFields;
! CHECK(pRecInfo->GetFieldNames(&cFields, 0));
! BSTR *prgNames = new BSTR[cFields];
! if(FAILED(hr = pRecInfo->GetFieldNames(&cFields, prgNames)))
! {
! delete [] prgNames;
! return hr;
! }
! m_stackElems.push(pElem);
! for (ULONG i = 0; i < cFields; i++)
! {
! if (SUCCEEDED(hr))
{
- CComVariant value;
- hr = pRecInfo->GetField(pvRecord, prgNames[i], &value);
if (SUCCEEDED(hr))
{
! CHECK(Write(prgNames[i], &value));
}
}
! SysFreeString(prgNames[i]);
}
! delete [] prgNames;
! if (FAILED(hr)) return hr;
! m_stackElems.pop();
! }
! else if (vt == VT_UNKNOWN || vt == VT_DISPATCH)
! {
! CComPtr<IPersistPropertyBag> pppb;
! if (pVar->punkVal)
{
! CHECK(pVar->punkVal->QueryInterface(&pppb));
! }
! m_stackElems.push(pElem);
! CHECK(PersistObject(pppb));
! m_stackElems.pop();
! }
! else if (vt == VT_BSTR)
! {
! CHECK(pElem->put_text(pVar->bstrVal));
! }
! else
! {
! CComVariant value;
! CHECK(VariantChangeType(&value, pVar, 0, VT_BSTR));
! CHECK(pElem->put_text(value.bstrVal));
}
--- 495,605 ----
CHECK(m_doc->createElement(CComBSTR(pwszPropName.c_str()), &pElem));
! if(wcscmp(pwszPropNameIn, L"Tuning Space") == 0)
{
! if (vt == VT_UNKNOWN || vt == VT_DISPATCH)
! {
! CComQIPtr<ITuningSpace> TuningSpace = pVar->punkVal;
! if(TuningSpace)
! {
! CComBSTR Name;
! CHECK(TuningSpace->get_UniqueName(&Name));
! CHECK(pElem->put_text(Name));
! }
! }
! else
! {
! ATLTRACE("Unexpected type passed as Tuning Space");
! }
}
! else
{
! CComVariant Variant(vt);
! CHECK(Variant.ChangeType(VT_BSTR));
! CHECK(pElem->setAttribute(CComBSTR(L"vt"), Variant));
! if (vt & VT_ARRAY)
! {
! return E_NOTIMPL;
! }
! else if (vt == VT_RECORD)
! {
! CComPtr<IRecordInfo> pRecInfo = pVar->pRecInfo;
! void *pvRecord = pVar->pvRecord;
! GUID guid;
! CHECK(pRecInfo->GetGuid(&guid));
! CComBSTR bstr(guid);
! CHECK(pElem->setAttribute(CComBSTR(L"uuid"), CComVariant(bstr)));
! CComPtr<ITypeInfo> pTypeInfo;
! CHECK(pRecInfo->GetTypeInfo(&pTypeInfo));
! CComPtr<ITypeLib> pTypeLib;
! UINT index;
! CHECK(pTypeInfo->GetContainingTypeLib(&pTypeLib, &index));
! TLIBATTR *pattr = 0;
! CHECK(pTypeLib->GetLibAttr(&pattr));
! CHECK(pElem->setAttribute(CComBSTR(L"libid"), CComVariant(CComBSTR(pattr->guid))));
! CHECK(pElem->setAttribute(CComBSTR(L"major"), CComVariant(pattr->wMajorVerNum)));
! CHECK(pElem->setAttribute(CComBSTR(L"minor"), CComVariant(pattr->wMinorVerNum)));
! CHECK(pElem->setAttribute(CComBSTR(L"lcid"), CComVariant(long(pattr->lcid))));
! pTypeLib->ReleaseTLibAttr(pattr);
! ULONG cFields;
! CHECK(pRecInfo->GetFieldNames(&cFields, 0));
!
! BSTR *prgNames = new BSTR[cFields];
! if(FAILED(hr = pRecInfo->GetFieldNames(&cFields, prgNames)))
! {
! delete [] prgNames;
! return hr;
! }
!
! m_stackElems.push(pElem);
! for (ULONG i = 0; i < cFields; i++)
{
if (SUCCEEDED(hr))
{
! CComVariant value;
! hr = pRecInfo->GetField(pvRecord, prgNames[i], &value);
! if (SUCCEEDED(hr))
! {
! CHECK(Write(prgNames[i], &value));
! }
}
+ SysFreeString(prgNames[i]);
}
! delete [] prgNames;
! if (FAILED(hr)) return hr;
! m_stackElems.pop();
}
! else if (vt == VT_UNKNOWN || vt == VT_DISPATCH)
{
! CComPtr<IPersistPropertyBag> pppb;
! if (pVar->punkVal)
! {
! CHECK(pVar->punkVal->QueryInterface(&pppb));
! }
! m_stackElems.push(pElem);
! CHECK(PersistObject(pppb));
! m_stackElems.pop();
! }
! else if (vt == VT_BSTR)
! {
! CHECK(pElem->put_text(pVar->bstrVal));
! }
! else
! {
! CComVariant value;
! CHECK(VariantChangeType(&value, pVar, 0, VT_BSTR));
! CHECK(pElem->put_text(value.bstrVal));
! }
}
***************
*** 1138,1141 ****
--- 1168,1195 ----
}
+ HRESULT CTuneRequestStore::GetTuningSpace(BSTR Name, ITuningSpace** pDisp)
+ {
+ if(m_SystemTuningSpaces == NULL)
+ {
+ CHECK(m_SystemTuningSpaces.CoCreateInstance(CLSID_SystemTuningSpaces, NULL, CLSCTX_INPROC_SERVER));
+ }
+
+ CComPtr<ITuningSpaces> TuningSpaces;
+
+ CHECK(m_SystemTuningSpaces->TuningSpacesForName(Name, &TuningSpaces));
+
+ // Find the size of the returned collection.
+ long cCount = 0;
+ CHECK(TuningSpaces->get_Count(&cCount));
+ if (cCount > 0)
+ {
+ CComVariant Item(0);
+ return TuningSpaces->get_Item(Item, pDisp);
+ }
+ else
+ {
+ return E_FAIL;
+ }
+ }
/////////////////////////////////////////////////////////////////////////////
***************
*** 1143,1146 ****
--- 1197,1204 ----
//
// $Log$
+ // Revision 1.13 2003/02/25 17:20:13 adcockj
+ // Fixed VB compability issues with schedule info
+ // Storage of Tuning spaces by name only
+ //
// Revision 1.12 2003/02/25 08:01:14 adcockj
// Added support for video Control
Index: TuneRequestStore.h
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneRequestStore.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** TuneRequestStore.h 25 Feb 2003 08:01:15 -0000 1.10
--- TuneRequestStore.h 25 Feb 2003 17:20:14 -0000 1.11
***************
*** 94,97 ****
--- 94,99 ----
HRESULT UpdateScheduleInfo(BSTR ServiceId, BSTR ScheduleID, BSTR Title, BSTR Description, ULONG StartTime, ULONG EndTime);
ITuneInfo* GetTuneInfo(BSTR ServiceId);
+ HRESULT GetTuningSpace(BSTR Name, ITuningSpace** pDisp);
+
private:
typedef std::stack<xml::IXMLDOMElement*> ElementStack;
***************
*** 107,110 ****
--- 109,113 ----
DWORD m_GuideDataCookie;
std::vector<ITuneInfo*> m_TuneInfos;
+ CComPtr<ITuningSpaceContainer> m_SystemTuningSpaces;
bool m_UpdatePending;
|
Update of /cvsroot/bdadev/CleverTelly
In directory sc8-pr-cvs1:/tmp/cvs-serv22207
Modified Files:
CleverTelly.cpp CleverTelly.dsp CleverTelly.rc MainDlg.cpp
MainDlg.h StdAfx.h resource.h
Log Message:
Move to modeless dialog
Lots of improvements but still interim check in
Index: CleverTelly.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CleverTelly.cpp 25 Feb 2003 08:02:32 -0000 1.5
--- CleverTelly.cpp 25 Feb 2003 17:19:02 -0000 1.6
***************
*** 60,64 ****
CComObject<CMainDlg>* pApplication = new CComObject<CMainDlg>;
pApplication->AddRef();
! nRet = pApplication->DoModal();
pApplication->Release();
}
--- 60,75 ----
CComObject<CMainDlg>* pApplication = new CComObject<CMainDlg>;
pApplication->AddRef();
! HACCEL hAccel= LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_MAINFRAME));
! HWND hWnd = pApplication->Create(NULL);
! MSG msg;
! while (GetMessage (&msg,NULL,0,0))
! {
! if(!TranslateAccelerator (hWnd, hAccel, &msg) && !IsDialogMessage(hWnd, &msg))
! {
! TranslateMessage (&msg);
! DispatchMessage (&msg);
! }
! }
!
pApplication->Release();
}
Index: CleverTelly.dsp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.dsp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CleverTelly.dsp 24 Feb 2003 17:01:32 -0000 1.3
--- CleverTelly.dsp 25 Feb 2003 17:19:04 -0000 1.4
***************
*** 141,144 ****
--- 141,148 ----
SOURCE=.\res\CleverTelly.ico
# End Source File
+ # Begin Source File
+
+ SOURCE=.\CleverTelly.rgs
+ # End Source File
# End Group
# End Target
Index: CleverTelly.rc
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.rc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CleverTelly.rc 24 Feb 2003 17:01:35 -0000 1.3
--- CleverTelly.rc 25 Feb 2003 17:19:04 -0000 1.4
***************
*** 47,50 ****
--- 47,51 ----
#endif // APSTUDIO_INVOKED
+
/////////////////////////////////////////////////////////////////////////////
//
***************
*** 52,56 ****
//
! IDR_CleverTellyReg REGISTRY DISCARDABLE "CleverTelly.rgs"
/////////////////////////////////////////////////////////////////////////////
--- 53,57 ----
//
! IDR_CleverTellyReg REGISTRY DISCARDABLE "CleverTelly.rgs"
/////////////////////////////////////////////////////////////////////////////
***************
*** 85,88 ****
--- 86,90 ----
EXSTYLE WS_EX_CONTROLPARENT
CAPTION "CleverTelly"
+ MENU IDR_CLEVERTELLY
FONT 8, "MS Sans Serif"
BEGIN
***************
*** 102,105 ****
--- 104,108 ----
0x0000, 0x0000, 0x0300, 0x0000, 0x3de9, 0x0000, 0x3270, 0x0000, 0x000b,
0xffff, 0x000b, 0xffff, 0x000b, 0x0000, 0x0013, 0x0000, 0x0000,
+ 0
END
***************
*** 131,148 ****
IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
BEGIN
! "N", ID_FILE_NEW, VIRTKEY, CONTROL
! "O", ID_FILE_OPEN, VIRTKEY, CONTROL
! "S", ID_FILE_SAVE, VIRTKEY, CONTROL
! "P", ID_FILE_PRINT, VIRTKEY, CONTROL
! "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL
! "X", ID_EDIT_CUT, VIRTKEY, CONTROL
! "C", ID_EDIT_COPY, VIRTKEY, CONTROL
! "V", ID_EDIT_PASTE, VIRTKEY, CONTROL
! VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT
! VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT
! VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL
! VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT
! VK_F6, ID_NEXT_PANE, VIRTKEY
! VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT
END
--- 134,152 ----
IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
BEGIN
! "C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
! "N", ID_FILE_NEW, VIRTKEY, CONTROL, NOINVERT
! "O", ID_FILE_OPEN, VIRTKEY, CONTROL, NOINVERT
! "P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT
! "S", ID_FILE_SAVE, VIRTKEY, CONTROL, NOINVERT
! "V", ID_EDIT_PASTE, VIRTKEY, CONTROL, NOINVERT
! VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT, NOINVERT
! VK_CANCEL, IDM_FULLSCREEN, VIRTKEY, CONTROL, NOINVERT
! VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT, NOINVERT
! VK_F6, ID_NEXT_PANE, VIRTKEY, NOINVERT
! VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT, NOINVERT
! VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
! VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT, NOINVERT
! "X", ID_EDIT_CUT, VIRTKEY, CONTROL, NOINVERT
! "Z", ID_EDIT_UNDO, VIRTKEY, CONTROL, NOINVERT
END
***************
*** 169,174 ****
BLOCK "StringFileInfo"
BEGIN
! BLOCK "040904B0"
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "test1 Module\0"
--- 173,179 ----
BLOCK "StringFileInfo"
BEGIN
! BLOCK "040904b0"
BEGIN
+ VALUE "Comments", "\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "test1 Module\0"
***************
*** 176,182 ****
--- 181,190 ----
VALUE "InternalName", "TEST1\0"
VALUE "LegalCopyright", "Copyright 2003\0"
+ VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "CleverTelly.exe\0"
+ VALUE "PrivateBuild", "\0"
VALUE "ProductName", "CleverTelly Module\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
+ VALUE "SpecialBuild", "\0"
END
END
***************
*** 304,307 ****
--- 312,324 ----
IDR_CLEVERTELLY MENU DISCARDABLE
BEGIN
+ POPUP "&View"
+ BEGIN
+ MENUITEM "&Full Screen\tCtrl+Pause", IDM_FULLSCREEN
+ MENUITEM SEPARATOR
+ MENUITEM "&16:9 Display", IDM_16x9_DISPLAY
+ MENUITEM "&4:3 Display", IDM_4x3_DISPLAY
+ MENUITEM SEPARATOR
+ MENUITEM "Use &Overlay", IDM_USEOVERLAY
+ END
POPUP "Help"
BEGIN
Index: MainDlg.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MainDlg.cpp 25 Feb 2003 08:02:32 -0000 1.3
--- MainDlg.cpp 25 Feb 2003 17:19:04 -0000 1.4
***************
*** 22,25 ****
--- 22,59 ----
/////////////////////////////////////////////////////////////////////////////
// CMainDlg
+ CMainDlg::CMainDlg()
+ {
+ m_FullScreen = FALSE;
+ m_ARWidth = 16;
+ m_ARHeight = 9;
+ m_UseOverlay = FALSE;
+ }
+
+ CMainDlg::~CMainDlg()
+ {
+ }
+
+ LRESULT CMainDlg::OnGraphNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+ {
+ long evCode, param1, param2;
+ HRESULT Result;
+ while (SUCCEEDED(m_MediaEvents->GetEvent(&evCode, ¶m1, ¶m2, 0)))
+ {
+ ATLTRACE("Graph Notify Event %d\n", evCode);
+ switch(evCode)
+ {
+ case EC_VIDEO_SIZE_CHANGED:
+ SetupAspectRatio();
+ break;
+ default:
+ break;
+ }
+ Result = m_MediaEvents->FreeEventParams(evCode, param1, param2);
+ }
+
+ bHandled = TRUE;
+ return TRUE;
+ }
+
LRESULT CMainDlg::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
***************
*** 63,67 ****
--- 97,109 ----
}
+ // set the use overlay flag
+ CComPtr<IMSVidVideoRenderer> pVidRenderer;
+ CHECK(m_pVidControl->get_VideoRendererActive(&pVidRenderer));
+ if(pVidRenderer)
+ {
+ pVidRenderer->put_UsingOverlay(m_UseOverlay?VARIANT_TRUE:VARIANT_FALSE);
+ }
+ // create the Tune Request store
Result = CreateTuneReqStore();
if(FAILED(Result))
***************
*** 71,80 ****
}
!
! Result = LoadUpDefaultTuneRequest();
! if(FAILED(Result))
{
! ATLTRACE("LoadUpDefaultTuneRequest Returned %8x\n", Result);
! return FALSE;
}
--- 113,144 ----
}
! // Load up either channel 1 for the time being or
! // create a default tune request so that we can listen to the
! // TIF and get the full list of channels
! // Once we have tuned in to a channel then run the video
! if(m_TuneRequestStore)
{
! long Count(0);
! CHECK(m_TuneRequestStore->get_Count(&Count));
! if(Count == 0)
! {
! Result = LoadUpDefaultTuneRequest();
! if(FAILED(Result))
! {
! ATLTRACE("LoadUpDefaultTuneRequest Returned %8x\n", Result);
! return FALSE;
! }
! }
! else
! {
! Result = TuneToChannel(1);
! if(FAILED(Result))
! {
! ATLTRACE("TuneToChannel Returned %8x\n", Result);
! return FALSE;
! }
! }
!
! Result = m_pVidControl->Run();
}
***************
*** 89,96 ****
--- 153,189 ----
}
+ LRESULT CMainDlg::OnFullScreen(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
+ {
+ if(m_FullScreen == FALSE)
+ {
+ m_hMenu = GetMenu();
+ SetMenu(NULL);
+ RECT Pos = { 0, 0, GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)};
+ GetWindowRect(&m_Rect);
+ SetWindowPos(HWND_TOPMOST, &Pos, SWP_SHOWWINDOW | SWP_NOACTIVATE);
+ SetWindowLong(GWL_STYLE, WS_VISIBLE);
+ SetWindowRgn(NULL,TRUE);
+ }
+ else
+ {
+ SetMenu(m_hMenu);
+ SetWindowPos(HWND_NOTOPMOST, &m_Rect, SWP_SHOWWINDOW | SWP_NOACTIVATE);
+ SetWindowLong(GWL_STYLE, WS_OVERLAPPEDWINDOW | WS_VISIBLE);
+ SetWindowRgn(NULL,TRUE);
+ }
+ m_FullScreen = !m_FullScreen;
+ return 0;
+ }
+
+
LRESULT CMainDlg::OnClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
AtlAdviseSinkMap(this, FALSE);
+ if(m_MediaEvents)
+ {
+ StopListeningForAspectChanges();
+ }
+
if(m_ConnectionPoint)
{
***************
*** 118,122 ****
}
! EndDialog(wID);
return 0;
}
--- 211,217 ----
}
! DestroyWindow();
! PostQuitMessage(wID);
!
return 0;
}
***************
*** 126,131 ****
RECT WinRect;
CWindow hwndVC(GetDlgItem(IDC_MSVIDCTL));
! GetWindowRect(&WinRect);
! ScreenToClient(&WinRect);
hwndVC.MoveWindow(&WinRect, TRUE);
}
--- 221,225 ----
RECT WinRect;
CWindow hwndVC(GetDlgItem(IDC_MSVIDCTL));
! GetClientRect(&WinRect);
hwndVC.MoveWindow(&WinRect, TRUE);
}
***************
*** 188,195 ****
--- 282,291 ----
{
m_TuneRequestStore->AttachToVideoControl(m_pVidControl);
+ ListenForAspectChanges();
}
else if(CurrState == STATE_UNBUILT)
{
m_TuneRequestStore->DetachFromTIF();
+ StopListeningForAspectChanges();
}
}
***************
*** 197,200 ****
--- 293,297 ----
void __stdcall CMainDlg::OnDblClick()
{
+ ATLTRACE("OnDblClick\n");
}
***************
*** 313,321 ****
}
-
HRESULT CMainDlg::LoadUpDefaultTuneRequest()
{
- long Freq = 481833;
- long SID = 8261;
HRESULT Result = S_OK;
CComPtr<ITuningSpace> TuningSpace;
--- 410,415 ----
***************
*** 326,330 ****
// Try to match any tuning spaces named "Local (something) Cable".
CComPtr<ITuningSpaces> TuningSpaces;
! CComBSTR bstrName("SimpleTV");
Result = TuningSpaceContainer->TuningSpacesForName(bstrName, &TuningSpaces);
if (SUCCEEDED(Result))
--- 420,424 ----
// Try to match any tuning spaces named "Local (something) Cable".
CComPtr<ITuningSpaces> TuningSpaces;
! CComBSTR bstrName(L"SimpleTV");
Result = TuningSpaceContainer->TuningSpacesForName(bstrName, &TuningSpaces);
if (SUCCEEDED(Result))
***************
*** 345,369 ****
Result = TuningSpace->CreateTuneRequest(&TuneRequest);
! CComQIPtr<IDVBTuneRequest> DVBTuneRequest = TuneRequest;
!
! TuneRequest->Release();
!
! CComPtr<ILocator> Locator;
!
! Result = DVBTuneRequest->get_Locator(&Locator);
!
! if(Locator == NULL)
! {
! //Locator.CoCreateInstance(CLSID_DVBTLocator);
! //Result = DVBTuneRequest->put_Locator(Locator);
! }
!
! //Locator->put_CarrierFrequency(Freq);
!
! Result = DVBTuneRequest->put_SID(SID);
!
! CComVariant var(DVBTuneRequest);
Result = m_pVidControl->View(&var);
- Result = m_pVidControl->Run();
}
}
--- 439,444 ----
Result = TuningSpace->CreateTuneRequest(&TuneRequest);
! CComVariant var(TuneRequest);
Result = m_pVidControl->View(&var);
}
}
***************
*** 388,390 ****
--- 463,634 ----
}
return Result;
+ }
+
+ void CMainDlg::SetupAspectRatio()
+ {
+ if(m_VMRControl)
+ {
+ long Width;
+ long Height;
+ long ARWidth;
+ long ARHeight;
+
+ HRESULT Result = m_VMRControl->GetNativeVideoSize(&Width, &Height, &ARWidth, &ARHeight);
+ if(SUCCEEDED(Result))
+ {
+ // adjust the incoming AR by what we tell the system the
+ // output Aspect ratio is.
+ // This cross multiply tells us what adjustment to make
+ // in the direction we have to shrink to display on the window
+ ARWidth *= m_ARHeight;
+ ARHeight *= m_ARWidth;
+ RECT SrcRect = {0, 0, Width, Height};
+ RECT WinRect;
+ GetClientRect(&WinRect);
+
+ if(ARWidth == ARHeight)
+ {
+ // it's an exact fit so just scale to the full window
+ }
+ else if(ARWidth > ARHeight)
+ {
+ // letterbox
+ long NewHeight = MulDiv((WinRect.bottom - WinRect.top), ARHeight, ARWidth);
+ WinRect.top += ((WinRect.bottom - WinRect.top) - NewHeight) / 2;
+ WinRect.bottom = WinRect.top + NewHeight;
+ }
+ else
+ {
+ // Sidebar
+ long NewWidth = MulDiv((WinRect.right - WinRect.left), ARWidth, ARHeight);
+ WinRect.left += ((WinRect.right - WinRect.left) - Height) / 2;
+ WinRect.right = WinRect.left + Height;
+ }
+ if(FAILED(m_VMRControl->SetVideoPosition(&SrcRect, &WinRect)))
+ {
+ ATLTRACE("SetupAspectRatio : SetVideoPosition failed\n");
+ }
+ }
+ }
+ else
+ {
+ ATLTRACE("SetupAspectRatio : No VMR Control\n");
+ }
+ }
+
+ void CMainDlg::ListenForAspectChanges()
+ {
+ CComQIPtr<IMSVidGraphSegmentContainer> GraphSegCont = m_pVidControl;
+ if(GraphSegCont)
+ {
+ CComPtr<IGraphBuilder> GraphBuilder;
+ HRESULT Result = GraphSegCont->get_Graph(&GraphBuilder);
+ if(GraphBuilder)
+ {
+ m_MediaEvents = GraphBuilder;
+ if(m_MediaEvents)
+ {
+ m_MediaEvents->SetNotifyWindow((LONG)m_hWnd, WM_GRAPHNOTIFY, NULL);
+ }
+ else
+ {
+ ATLTRACE("ListenForAspectChanges : No MediaEvents\n");
+ }
+ }
+ else
+ {
+ ATLTRACE("ListenForAspectChanges : No Graph\n");
+ }
+
+ // declare local variables
+ CComPtr<IEnumFilters> EnumFilters;
+
+ // find the VMR in the filter graph
+ // we do this by looking for filters that
+ // implement the IVMRWindowlessControl interface
+ Result = GraphBuilder->EnumFilters(&EnumFilters);
+ if(SUCCEEDED(Result))
+ {
+ CComPtr<IBaseFilter> BaseFilter;
+ ULONG Fetched(0);
+ while(EnumFilters->Next(1, &BaseFilter, &Fetched) == S_OK)
+ {
+ m_VMRControl = BaseFilter;
+ if(m_VMRControl != NULL)
+ {
+ // setup the aspect ratio at the beginning
+ SetupAspectRatio();
+ return;
+ }
+ }
+ }
+ ATLTRACE("ListenForAspectChanges : No VMR\n");
+ }
+ else
+ {
+ ATLTRACE("ListenForAspectChanges : No GraphSegCont\n");
+ }
+ }
+
+ void CMainDlg::StopListeningForAspectChanges()
+ {
+ if(m_MediaEvents)
+ {
+ HRESULT Result = m_MediaEvents->SetNotifyWindow(NULL, WM_GRAPHNOTIFY, NULL);
+ m_MediaEvents.Release();
+ }
+
+ if(m_VMRControl)
+ {
+ m_VMRControl.Release();
+ }
+
+ }
+
+ HRESULT CMainDlg::TuneToChannel(int ChannelNumber)
+ {
+ CComPtr<TUNEREQSTORELib::IEnumTuneInfo> EnumTuneInfo;
+
+ CHECK(m_TuneRequestStore->get__NewEnum(&EnumTuneInfo));
+
+ CComPtr<TUNEREQSTORELib::ITuneInfo> TuneInfo;
+ ULONG Count;
+
+ while(EnumTuneInfo->Next(1, &TuneInfo, &Count) == S_OK)
+ {
+ long ThisKeyedNumber(0);
+ CHECK(TuneInfo->get_KeyedNumber(&ThisKeyedNumber));
+ if(ThisKeyedNumber == ChannelNumber)
+ {
+ CComPtr<TUNEREQSTORELib::ITuneRequest> TuneRequest;
+ CHECK(TuneInfo->get_TuneRequest(&TuneRequest));
+
+ CComVariant var(TuneRequest);
+ return m_pVidControl->View(&var);
+ }
+ TuneInfo.Release();
+ }
+ return E_FAIL;
+ }
+
+ LRESULT CMainDlg::On4x3(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
+ {
+ m_ARWidth = 4;
+ m_ARHeight = 3;
+ SetupAspectRatio();
+ return FALSE;
+ }
+
+ LRESULT CMainDlg::On16x9(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
+ {
+ m_ARWidth = 16;
+ m_ARHeight = 9;
+ SetupAspectRatio();
+ return FALSE;
+ }
+
+ LRESULT CMainDlg::OnUseOverlay(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
+ {
+ m_UseOverlay = !m_UseOverlay;
+ return FALSE;
}
Index: MainDlg.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** MainDlg.h 25 Feb 2003 08:02:32 -0000 1.2
--- MainDlg.h 25 Feb 2003 17:19:04 -0000 1.3
***************
*** 23,26 ****
--- 23,27 ----
extern _ATL_FUNC_INFO OnStateChangeInfo;
+ #define WM_GRAPHNOTIFY (WM_APP + 1)
class CMainDlg : public CAxDialogImpl<CMainDlg>,
***************
*** 36,40 ****
{
public:
! enum { IDD = IDD_MAINDLG };
DECLARE_REGISTRY_RESOURCEID(IDR_CleverTellyReg)
--- 37,43 ----
{
public:
! CMainDlg();
! ~CMainDlg();
! enum { IDD = IDD_MAINDLG };
DECLARE_REGISTRY_RESOURCEID(IDR_CleverTellyReg)
***************
*** 61,67 ****
--- 64,75 ----
COMMAND_ID_HANDLER(WM_CLOSE, OnClose)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
+ MESSAGE_HANDLER(WM_GRAPHNOTIFY, OnGraphNotify)
+ COMMAND_ID_HANDLER(IDM_FULLSCREEN, OnFullScreen)
COMMAND_ID_HANDLER(IDM_ABOUT, OnAppAbout)
COMMAND_ID_HANDLER(IDOK, OnClose)
COMMAND_ID_HANDLER(IDCANCEL, OnClose)
+ COMMAND_ID_HANDLER(IDM_16x9_DISPLAY, On16x9)
+ COMMAND_ID_HANDLER(IDM_4x3_DISPLAY, On4x3)
+ COMMAND_ID_HANDLER(IDM_USEOVERLAY, OnUseOverlay)
END_MSG_MAP()
***************
*** 83,90 ****
LRESULT OnMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
!
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
// IMSVidCtlComp
--- 91,103 ----
LRESULT OnMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
!
! LRESULT OnGraphNotify(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
LRESULT OnAppAbout(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
+ LRESULT OnFullScreen(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
LRESULT OnClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
+ LRESULT On4x3(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
+ LRESULT On16x9(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
+ LRESULT OnUseOverlay(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
// IMSVidCtlComp
***************
*** 125,128 ****
--- 138,145 ----
HRESULT LoadUpDefaultTuneRequest();
HRESULT CreateTuneReqStore();
+ void SetupAspectRatio();
+ void ListenForAspectChanges();
+ void StopListeningForAspectChanges();
+ HRESULT TuneToChannel(int ChannelNumber);
private:
***************
*** 130,134 ****
--- 147,159 ----
TUNEREQSTORELib::ITuneRequestStorePtr m_TuneRequestStore;
CComPtr<IConnectionPoint> m_ConnectionPoint;
+ CComQIPtr<IMediaEventEx> m_MediaEvents;
+ CComQIPtr<IVMRWindowlessControl> m_VMRControl;
DWORD m_dwCookie;
+ HMENU m_hMenu;
+ BOOL m_FullScreen;
+ BOOL m_UseOverlay;
+ RECT m_Rect;
+ long m_ARWidth;
+ long m_ARHeight;
};
Index: StdAfx.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/StdAfx.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** StdAfx.h 24 Feb 2003 17:01:39 -0000 1.4
--- StdAfx.h 25 Feb 2003 17:19:04 -0000 1.5
***************
*** 30,33 ****
--- 30,35 ----
#include <atlctrlw.h>
+ #include <dshow.h>
+
#define CHECK(x) { HRESULT __hr(x); if(FAILED(__hr)) {ATLTRACE(#x " Returned %8x\n", __hr); _asm{int 3}; return __hr;}}
Index: resource.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/resource.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** resource.h 24 Feb 2003 17:01:39 -0000 1.3
--- resource.h 25 Feb 2003 17:19:04 -0000 1.4
***************
*** 10,13 ****
--- 10,17 ----
#define IDC_MSVIDCTL 1000
#define IDM_ABOUT 32772
+ #define IDM_FULLSCREEN 32773
+ #define IDM_16x9_DISPLAY 32774
+ #define IDM_4x3_DISPLAY 32775
+ #define IDM_USEOVERLAY 32776
// Next default values for new objects
***************
*** 16,20 ****
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 203
! #define _APS_NEXT_COMMAND_VALUE 32773
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
--- 20,24 ----
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 203
! #define _APS_NEXT_COMMAND_VALUE 32777
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
|
|
From: <ad...@us...> - 2003-02-25 08:02:38
|
Update of /cvsroot/bdadev/CleverTelly
In directory sc8-pr-cvs1:/tmp/cvs-serv22260
Modified Files:
CleverTelly.cpp MainDlg.cpp MainDlg.h
Log Message:
Added Tuning and Bug fixes
Index: CleverTelly.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/CleverTelly.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** CleverTelly.cpp 24 Feb 2003 17:01:31 -0000 1.4
--- CleverTelly.cpp 25 Feb 2003 08:02:32 -0000 1.5
***************
*** 59,64 ****
{
CComObject<CMainDlg>* pApplication = new CComObject<CMainDlg>;
nRet = pApplication->DoModal();
! delete pApplication;
}
--- 59,65 ----
{
CComObject<CMainDlg>* pApplication = new CComObject<CMainDlg>;
+ pApplication->AddRef();
nRet = pApplication->DoModal();
! pApplication->Release();
}
Index: MainDlg.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** MainDlg.cpp 24 Feb 2003 17:18:24 -0000 1.2
--- MainDlg.cpp 25 Feb 2003 08:02:32 -0000 1.3
***************
*** 43,46 ****
--- 43,67 ----
}
+ AtlAdviseSinkMap(this, TRUE);
+
+
+ // Query the Video Control for IConnectionPointContainer.
+ CComQIPtr<IConnectionPointContainer> pContainer(m_pVidControl);
+ if (pContainer)
+ {
+ // Find the connection point.
+ Result = pContainer->FindConnectionPoint(DIID__IMSVidCtlEvents, &m_ConnectionPoint);
+ if (SUCCEEDED(Result))
+ {
+ // Get the IUnknown pointer of the event sink, which is
+ // typically the client itself.
+ IUnknown* pUnk;
+ this->QueryInterface(IID_IUnknown, (void**)&pUnk);
+ Result = m_ConnectionPoint->Advise(pUnk, &m_dwCookie);
+ pUnk->Release();
+ }
+ }
+
+
Result = CreateTuneReqStore();
if(FAILED(Result))
***************
*** 70,77 ****
LRESULT CMainDlg::OnClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
! m_pVidControl.Release();
if(m_TuneRequestStore)
{
CComBSTR Name(L"C:\\Channels.xml");
--- 91,114 ----
LRESULT CMainDlg::OnClose(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
! AtlAdviseSinkMap(this, FALSE);
!
! if(m_ConnectionPoint)
! {
! m_ConnectionPoint->Unadvise(m_dwCookie);
! m_ConnectionPoint.Release();
! }
!
!
! if(m_pVidControl)
! {
! m_pVidControl->Stop();
! m_pVidControl.Release();
! }
!
if(m_TuneRequestStore)
{
+ m_TuneRequestStore->DetachFromTIF();
+
CComBSTR Name(L"C:\\Channels.xml");
***************
*** 148,151 ****
--- 185,196 ----
void __stdcall CMainDlg::OnStateChange(MSVidCtlStateList PrevState, MSVidCtlStateList CurrState)
{
+ if(CurrState == STATE_PLAY)
+ {
+ m_TuneRequestStore->AttachToVideoControl(m_pVidControl);
+ }
+ else if(CurrState == STATE_UNBUILT)
+ {
+ m_TuneRequestStore->DetachFromTIF();
+ }
}
***************
*** 256,282 ****
}
! STDMETHODIMP CMainDlg::StateChange(IMSVidDevice* plpd, long oldState, long newState)
{
! HRESULT Result = S_OK;
! if(newState == STATE_PLAY)
! {
! //Result = m_TuneRequestStore->AttachToVideoControl(m_pVidControl);
! }
! else if(newState == STATE_UNBUILT)
! {
! Result = m_TuneRequestStore->DetachFromTIF();
! }
! return Result;
}
! STDMETHODIMP CMainDlg::WriteFailure()
{
! ATLTRACE("WriteFailure\n");
return S_OK;
}
HRESULT CMainDlg::LoadUpDefaultTuneRequest()
{
! return S_OK;
}
--- 301,378 ----
}
! STDMETHODIMP CMainDlg::WriteFailure()
{
! ATLTRACE("WriteFailure\n");
! return S_OK;
}
! STDMETHODIMP CMainDlg::StateChange(IMSVidDevice* plpd, long oldState, long newState)
{
! ATLTRACE("StateChange\n");
return S_OK;
}
+
HRESULT CMainDlg::LoadUpDefaultTuneRequest()
{
! long Freq = 481833;
! long SID = 8261;
! HRESULT Result = S_OK;
! CComPtr<ITuningSpace> TuningSpace;
!
! CComPtr<ITuningSpaceContainer> TuningSpaceContainer;
! TuningSpaceContainer.CoCreateInstance(CLSID_SystemTuningSpaces);
!
! // Try to match any tuning spaces named "Local (something) Cable".
! CComPtr<ITuningSpaces> TuningSpaces;
! CComBSTR bstrName("SimpleTV");
! Result = TuningSpaceContainer->TuningSpacesForName(bstrName, &TuningSpaces);
! if (SUCCEEDED(Result))
! {
! // Find the size of the returned collection.
! long cCount = 0;
! Result = TuningSpaces->get_Count(&cCount);
! if (SUCCEEDED(Result) && (cCount > 0))
! {
! CComPtr<IEnumTuningSpaces> TuningSpaceEnum;
! Result = TuningSpaces->get_EnumTuningSpaces(&TuningSpaceEnum);
! if (SUCCEEDED(Result))
! {
! Result = TuningSpaceEnum->Next(1, &TuningSpace, NULL);
! if(SUCCEEDED(Result))
! {
! ITuneRequest* TuneRequest = NULL;
! Result = TuningSpace->CreateTuneRequest(&TuneRequest);
!
! CComQIPtr<IDVBTuneRequest> DVBTuneRequest = TuneRequest;
!
! TuneRequest->Release();
!
! CComPtr<ILocator> Locator;
!
! Result = DVBTuneRequest->get_Locator(&Locator);
!
! if(Locator == NULL)
! {
! //Locator.CoCreateInstance(CLSID_DVBTLocator);
! //Result = DVBTuneRequest->put_Locator(Locator);
! }
!
! //Locator->put_CarrierFrequency(Freq);
!
! Result = DVBTuneRequest->put_SID(SID);
!
! CComVariant var(DVBTuneRequest);
! Result = m_pVidControl->View(&var);
! Result = m_pVidControl->Run();
! }
! }
! }
! else
! {
! Result = E_FAIL;
! }
! }
! return Result;
}
Index: MainDlg.h
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MainDlg.h 24 Feb 2003 17:01:37 -0000 1.1
--- MainDlg.h 25 Feb 2003 08:02:32 -0000 1.2
***************
*** 45,48 ****
--- 45,49 ----
COM_INTERFACE_ENTRY(IApplication)
COM_INTERFACE_ENTRY2(IDispatch, IApplication)
+ COM_INTERFACE_ENTRY2(IUnknown, IApplication)
COM_INTERFACE_ENTRY(IProvideClassInfo)
COM_INTERFACE_ENTRY(IProvideClassInfo2)
***************
*** 51,54 ****
--- 52,56 ----
COM_INTERFACE_ENTRY(IMSVidTunerEvent)
COM_INTERFACE_ENTRY(IMSVidVideoRendererEvent)
+ COM_INTERFACE_ENTRY_IID(DIID__IMSVidCtlEvents, IApplication)
END_COM_MAP()
***************
*** 127,130 ****
--- 129,134 ----
CComQIPtr<IMSVidCtl> m_pVidControl;
TUNEREQSTORELib::ITuneRequestStorePtr m_TuneRequestStore;
+ CComPtr<IConnectionPoint> m_ConnectionPoint;
+ DWORD m_dwCookie;
};
|
|
From: <ad...@us...> - 2003-02-25 08:01:23
|
Update of /cvsroot/bdadev/TuneReqStore
In directory sc8-pr-cvs1:/tmp/cvs-serv21761
Modified Files:
TuneReqStore.idl TuneRequestStore.cpp TuneRequestStore.h
Log Message:
Added support for video Control
Index: TuneReqStore.idl
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneReqStore.idl,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** TuneReqStore.idl 21 Feb 2003 16:36:43 -0000 1.6
--- TuneReqStore.idl 25 Feb 2003 08:01:13 -0000 1.7
***************
*** 113,116 ****
--- 113,117 ----
[id(4), helpstring("method AttachToTIF")] HRESULT AttachToTIF([in] IFilterGraph* pFilterGraph);
[id(5), helpstring("method DetachFromTIF")] HRESULT DetachFromTIF();
+ [id(6), helpstring("method AttachToVideoControl")] HRESULT AttachToVideoControl(IDispatch* VidCtl);
};
***************
*** 158,161 ****
--- 159,165 ----
//
// $Log$
+ // Revision 1.7 2003/02/25 08:01:13 adcockj
+ // Added support for video Control
+ //
// Revision 1.6 2003/02/21 16:36:43 adcockj
// Added schedule functionality (untested) and some code clean up
Index: TuneRequestStore.cpp
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneRequestStore.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** TuneRequestStore.cpp 21 Feb 2003 20:58:10 -0000 1.11
--- TuneRequestStore.cpp 25 Feb 2003 08:01:14 -0000 1.12
***************
*** 41,44 ****
--- 41,45 ----
#include "TuneInfo.h"
#include "ProgramInfo.h"
+ #include "Msvidctl.h"
/////////////////////////////////////////////////////////////////////////////
***************
*** 288,308 ****
STDMETHODIMP CTuneRequestStore::DetachFromTIF()
{
! // make sure we've got the latest info
! // since this is the last chance we have to talk to the TIF
! UpdateInfo();
! // unadvise GuideDataEvent object
! m_ConnectionPoint->Unadvise(m_GuideDataCookie);
! // release any objects we hold onto
! m_ConnectionPoint.Release();
! m_GuideData.Release();
! m_FilterGraph.Release();
! m_GuideDataCookie = 0;
return S_OK;
}
///////////////////////////////////////////////////////////////////////////////
// IPropertyBag interface
--- 289,335 ----
STDMETHODIMP CTuneRequestStore::DetachFromTIF()
{
! if(m_GuideData)
! {
! // make sure we've got the latest info
! // since this is the last chance we have to talk to the TIF
! UpdateInfo();
! // unadvise GuideDataEvent object
! m_ConnectionPoint->Unadvise(m_GuideDataCookie);
! // release any objects we hold onto
! m_ConnectionPoint.Release();
! m_GuideData.Release();
! m_FilterGraph.Release();
! m_GuideDataCookie = 0;
! }
return S_OK;
}
+ STDMETHODIMP CTuneRequestStore::AttachToVideoControl(IDispatch* VidCtl)
+ {
+ CComQIPtr<IMSVidCtl> VidCtl2 = VidCtl;
+ if(VidCtl2 == NULL)
+ {
+ return E_FAIL;
+ }
+
+ CComQIPtr<IMSVidGraphSegmentContainer> GraphSegCont = VidCtl2;
+ if(GraphSegCont != NULL)
+ {
+ CComPtr<IGraphBuilder> GraphBuilder;
+ HRESULT Result = GraphSegCont->get_Graph(&GraphBuilder);
+ CHECK(Result);
+
+ return AttachToTIF(GraphBuilder);
+ }
+ else
+ {
+ return E_FAIL;
+ }
+ }
+
///////////////////////////////////////////////////////////////////////////////
// IPropertyBag interface
***************
*** 885,892 ****
if(pTuneInfo->m_ProgramInfos[i] != NULL)
{
! pTuneInfo->m_ProgramInfos[i]->put_Description(Description);
! pTuneInfo->m_ProgramInfos[i]->put_Name(Title);
! pTuneInfo->m_ProgramInfos[i]->put_StartTime(DoubleStartTime);
! pTuneInfo->m_ProgramInfos[i]->put_EndTime(DoubleEndTime);
}
}
--- 912,926 ----
if(pTuneInfo->m_ProgramInfos[i] != NULL)
{
! CComBSTR Id;
! Result = pTuneInfo->m_ProgramInfos[i]->get_Id(&Id);
! CHECK(Result);
! if(Id == ScheduleID)
! {
! pTuneInfo->m_ProgramInfos[i]->put_Description(Description);
! pTuneInfo->m_ProgramInfos[i]->put_Name(Title);
! pTuneInfo->m_ProgramInfos[i]->put_StartTime(DoubleStartTime);
! pTuneInfo->m_ProgramInfos[i]->put_EndTime(DoubleEndTime);
! return Result;
! }
}
}
***************
*** 1109,1112 ****
--- 1143,1149 ----
//
// $Log$
+ // Revision 1.12 2003/02/25 08:01:14 adcockj
+ // Added support for video Control
+ //
// Revision 1.11 2003/02/21 20:58:10 adcockj
// Bug Fixes to schedule code
Index: TuneRequestStore.h
===================================================================
RCS file: /cvsroot/bdadev/TuneReqStore/TuneRequestStore.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** TuneRequestStore.h 21 Feb 2003 16:36:44 -0000 1.9
--- TuneRequestStore.h 25 Feb 2003 08:01:15 -0000 1.10
***************
*** 51,54 ****
--- 51,55 ----
public:
+ STDMETHOD(AttachToVideoControl)(IDispatch* VidCtl);
// ITuneRequestStore
STDMETHOD(get__NewEnum)(/*[out, retval]*/ IEnumTuneInfo** ppUnk);
|
|
From: <ad...@us...> - 2003-02-24 17:22:45
|
Update of /cvsroot/bdadev/CleverTelly/res In directory sc8-pr-cvs1:/tmp/cvs-serv24113/res Modified Files: CleverTelly.ico Log Message: Updated Icon Index: CleverTelly.ico =================================================================== RCS file: /cvsroot/bdadev/CleverTelly/res/CleverTelly.ico,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvscPc61O and /tmp/cvs2xCvOt differ |
|
From: <ad...@us...> - 2003-02-24 17:18:28
|
Update of /cvsroot/bdadev/CleverTelly
In directory sc8-pr-cvs1:/tmp/cvs-serv22236
Modified Files:
MainDlg.cpp
Log Message:
Bug fixes
Index: MainDlg.cpp
===================================================================
RCS file: /cvsroot/bdadev/CleverTelly/MainDlg.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MainDlg.cpp 24 Feb 2003 17:01:36 -0000 1.1
--- MainDlg.cpp 24 Feb 2003 17:18:24 -0000 1.2
***************
*** 72,80 ****
m_pVidControl.Release();
! CComBSTR Name(L"C:\\Channels.xml");
! m_TuneRequestStore->Save(Name);
! m_TuneRequestStore.Release();
EndDialog(wID);
--- 72,83 ----
m_pVidControl.Release();
! if(m_TuneRequestStore)
! {
! CComBSTR Name(L"C:\\Channels.xml");
! m_TuneRequestStore->Save(Name);
! m_TuneRequestStore.Release();
! }
EndDialog(wID);
***************
*** 258,262 ****
if(newState == STATE_PLAY)
{
! Result = m_TuneRequestStore->AttachToVideoControl(m_pVidControl);
}
else if(newState == STATE_UNBUILT)
--- 261,265 ----
if(newState == STATE_PLAY)
{
! //Result = m_TuneRequestStore->AttachToVideoControl(m_pVidControl);
}
else if(newState == STATE_UNBUILT)
***************
*** 288,290 ****
--- 291,294 ----
SysFreeString(FileName);
}
+ return Result;
}
|