1. Minor logging changes with one fix (mismatch log entry placeholder count and values).
2. Warn and bail if already-present device is redetected.
Remove CanTune() modulation restriction in base ATSC tuner class.
Modulation is a bad way to differentiate between tunable and not tunable channels.
DVB base scanning class will not be used for DRI scanning.
Use ManagementEventWatcher instead of a background thread to detect BDA/WDM tuner addition/removal.
Refactor DRI services to use a base class for event subscription/unsubscription and mandatory service implementation checking.
Use .NET 3.5 compatible code.
Be properly DRI compatible:
All state variables of data type "string" SHALL represent hex values with numerals 0-9 and upper case characters A
– F only (no 0x prefix); separated by comma.
Fix minor RequestTables() missing parameter bug.
Scan channel 1 rather than channel 2. This has no practical effect but it looks strange to scan channel 2. The scan output really needs to be reworked to be more suitable.
Add missing BaseService to project.
Remove Griffin server dependency. morpheus_xx has not had time to complete integration, and the existing HTTP server seems to be working okay.
Massive update to scanner classes.
1. Add scanner class to co-ordinate table parsers.
2. Add table parser events to inform the scanner when the table parsing is complete.
3. Determine when tables are complete using a combination of revision detection descriptors (NIT, NTT, S-VCT), section number details (L-VCT, MGT), and alternate logic/assumptions (NIT, S-VCT).
4. Field interpretation is deferred to the scanner class.
5. Extract common revision detection logic to base class.
6. Four byte fields should be stored to unsigned ints, not ints.
Updates to main DRI tuner class.
1. Try to avoid stealing tuner control from other applications.
2. Keep the source filter in the graph; no need to switch it in and out.
3. Fixes for Silicondust tuner compatibility (_isCetonDevice).
4. Remove .NET 3.5 incompatibilities.
Stylistic improvements.
1. Don't use Log.WriteFile()
2. Either log or throw exceptions.
3. Use TryGetValue() rather than Contains() + [] for dictionary lookups. Saves a lookup.
Use major channel for storing virtual channel number. This allows us to use the same channels for clear QAM and CableCARD tuners.
Revert remaining projects to .NET 3.5.
Remove DRI extended data type handler. It should not be required.