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; } |