home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
Submit: code patches (MediaPortal/TV-Server/etc.)
TV Server hardware-specific code refactoring
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="morpheus_xx" data-source="post: 668749" data-attributes="member: 48495"><p><strong>AW: TV Server hardware-specific code refactoring</strong></p><p></p><p>Hi all,</p><p></p><p>nice to see this development here, based on the interface IHardwareProvider.</p><p></p><p>probably you don't know that this interface was only one single part of a major rework I did in my old branch: <a href="https://sources.team-mediaportal.com/svn/public/branches/morpheus_xx/TvEngine3/TVLibrary" target="_blank">https://sources.team-mediaportal.com/svn/public/branches/morpheus_xx/TvEngine3/TVLibrary</a></p><p></p><p>the features there moved TV hardware specific code into plugins, modified the whole CI / Diseqc handling to use the interfaces and a lot more.</p><p></p><p>this stuff never got into the trunk, when I developed it 1 year ago we had feature freeze, now I won't port the changes, because I think it's too "late" for such quite big rework.</p><p></p><p>But maybe you can get more ideas how to restructure the tv handling, please check the branch I mentioned above!</p><p></p><p>Morpheus_xx</p><p></p><p>Edit: some more information, because there were only a developer-internal thread about this topic:</p><p></p><p>---------------- quoting ----------------</p><p>I made big progress in reworking the hardware support.</p><p></p><p>After implementing needed interfaces I laid out all hw-specific code to separate .dlls, put them all under tvserver\hardwareplugins. also I've added some priorities to ensure proper detection order:</p><p></p><p>[CODE]exactly hardware --> generic hardware --> additonal devices</p><p>i.e.</p><p>Technotrend --> GenericBDAS --> Hauppauge WinTvCI USB</p><p>[/CODE]</p><p>where Hauppauge WinTvCI is marked as "multiple device", so it will detect even another specific provider was found (i.e.Hauppauge diseqc provider)</p><p></p><p>now they get loaded and their features / capabilities are shown in log:</p><p></p><p>[CODE]2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.ConexantBDA.dll loaded True supported Interfaces:IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.DigitalEverywhere.dll loaded True supported Interfaces:IDiSEqCController,IConditionalAccessProvider</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.GenericATSC.dll loaded True supported Interfaces:IAtscQamProvider</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.GenericBDAS.dll loaded True supported Interfaces:IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.GenPixBDA.dll loaded True supported Interfaces:IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.Hauppauge.dll loaded True supported Interfaces:IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.Hauppauge_WinTvCI.dll loaded True supported Interfaces:IConditionalAccessProvider</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.KNC.dll loaded True supported Interfaces:IConditionalAccessProvider,IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.ProfRed.dll loaded True supported Interfaces:IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.TechnoTrend.dll loaded True supported Interfaces:IConditionalAccessProvider,IDiSEqCController</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.TwinHan.dll loaded True supported Interfaces:IDiSEqCController,IConditionalAccessProvider</p><p>2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.ViXSATSC.dll loaded True supported Interfaces:IAtscQamProvider</p><p>....</p><p>[/CODE]</p><p></p><p>then begins the hardware detection:</p><p>[CODE]</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for Conexant</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for FireDTV</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for GenPix</p><p>2009-11-09 16:14:13.474054 [TVService]: GenPix tuner filter name: TechnoTrend BDA/DVB-C Tuner</p><p>2009-11-09 16:14:13.474054 [TVService]: GenPix tuner filter pin name: MPEG2 Transport</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for Hauppauge</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for KNC</p><p>2009-11-09 16:14:13.474054 [TVService]: KNC: Disable CI</p><p>2009-11-09 16:14:13.474054 [TVService]: KNC: Disposing CI handler</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for ProfRed</p><p>2009-11-09 16:14:13.474054 [TVService]: Check for TechnoTrend</p><p>2009-11-09 16:14:13.489654 [TVService]: TechnoTrend: unable to open the device</p><p>[B]2009-11-09 16:14:13.489654 [TVService]: Successful detected TechnoTrend card</p><p>2009-11-09 16:14:13.489654 [TVService]: Registering TechnoTrend card ConditionalAccess feature</p><p>2009-11-09 16:14:13.489654 [TVService]: Registering TechnoTrend card CI menu feature</p><p>2009-11-09 16:14:13.489654 [TVService]: Registering TechnoTrend card DiSEqC feature</p><p>[/B]2009-11-09 16:14:13.489654 [TVService]: Check for WinTvCI USB[/CODE]</p><p></p><p>works very well <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" /></p><p>---------------- quoting ----------------</p><p></p><p>---------------- quoting ----------------</p><p>Testresults (Nov. 2009):</p><p>[CODE]</p><p>TvLibrary.HardwarePlugin.ConexantBDA.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.DigitalEverywhere.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B],IConditionalAccessProvider [COLOR="DarkGreen"][B][working!][/B][/COLOR]</p><p>TvLibrary.HardwarePlugin.GenericBDAS.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.GenPixBDA.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.Hauppauge.dll --> DiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.Hauppauge_WinTvCI.dll --> IConditionalAccessProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.KNC.dll --> IConditionalAccessProvider [COLOR="DarkGreen"][B][working!][/B][/COLOR],IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.ProfRed.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.TechnoTrend.dll --> IConditionalAccessProvider [COLOR="DarkGreen"][B][working!][/B][/COLOR],IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.TwinHan.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B],IConditionalAccessProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.GenericATSC.dll --> IAtscQamProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B]</p><p>TvLibrary.HardwarePlugin.ViXSATSC.dll --> IAtscQamProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B][/CODE]</p><p>...</p><p>All vendor related function got moved to their own .dll, the ConditionalAccess class now only calls interfaces (after interpreting the capabilities)</p><p>---------------- quoting ----------------</p></blockquote><p></p>
[QUOTE="morpheus_xx, post: 668749, member: 48495"] [b]AW: TV Server hardware-specific code refactoring[/b] Hi all, nice to see this development here, based on the interface IHardwareProvider. probably you don't know that this interface was only one single part of a major rework I did in my old branch: [url]https://sources.team-mediaportal.com/svn/public/branches/morpheus_xx/TvEngine3/TVLibrary[/url] the features there moved TV hardware specific code into plugins, modified the whole CI / Diseqc handling to use the interfaces and a lot more. this stuff never got into the trunk, when I developed it 1 year ago we had feature freeze, now I won't port the changes, because I think it's too "late" for such quite big rework. But maybe you can get more ideas how to restructure the tv handling, please check the branch I mentioned above! Morpheus_xx Edit: some more information, because there were only a developer-internal thread about this topic: ---------------- quoting ---------------- I made big progress in reworking the hardware support. After implementing needed interfaces I laid out all hw-specific code to separate .dlls, put them all under tvserver\hardwareplugins. also I've added some priorities to ensure proper detection order: [CODE]exactly hardware --> generic hardware --> additonal devices i.e. Technotrend --> GenericBDAS --> Hauppauge WinTvCI USB [/CODE] where Hauppauge WinTvCI is marked as "multiple device", so it will detect even another specific provider was found (i.e.Hauppauge diseqc provider) now they get loaded and their features / capabilities are shown in log: [CODE]2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.ConexantBDA.dll loaded True supported Interfaces:IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.DigitalEverywhere.dll loaded True supported Interfaces:IDiSEqCController,IConditionalAccessProvider 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.GenericATSC.dll loaded True supported Interfaces:IAtscQamProvider 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.GenericBDAS.dll loaded True supported Interfaces:IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.GenPixBDA.dll loaded True supported Interfaces:IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.Hauppauge.dll loaded True supported Interfaces:IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.Hauppauge_WinTvCI.dll loaded True supported Interfaces:IConditionalAccessProvider 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.KNC.dll loaded True supported Interfaces:IConditionalAccessProvider,IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.ProfRed.dll loaded True supported Interfaces:IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.TechnoTrend.dll loaded True supported Interfaces:IConditionalAccessProvider,IDiSEqCController 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.TwinHan.dll loaded True supported Interfaces:IDiSEqCController,IConditionalAccessProvider 2009-11-09 16:14:13.474054 [TVService]: HardwarePlugin: TvLibrary.HardwarePlugin.ViXSATSC.dll loaded True supported Interfaces:IAtscQamProvider .... [/CODE] then begins the hardware detection: [CODE] 2009-11-09 16:14:13.474054 [TVService]: Check for Conexant 2009-11-09 16:14:13.474054 [TVService]: Check for FireDTV 2009-11-09 16:14:13.474054 [TVService]: Check for GenPix 2009-11-09 16:14:13.474054 [TVService]: GenPix tuner filter name: TechnoTrend BDA/DVB-C Tuner 2009-11-09 16:14:13.474054 [TVService]: GenPix tuner filter pin name: MPEG2 Transport 2009-11-09 16:14:13.474054 [TVService]: Check for Hauppauge 2009-11-09 16:14:13.474054 [TVService]: Check for KNC 2009-11-09 16:14:13.474054 [TVService]: KNC: Disable CI 2009-11-09 16:14:13.474054 [TVService]: KNC: Disposing CI handler 2009-11-09 16:14:13.474054 [TVService]: Check for ProfRed 2009-11-09 16:14:13.474054 [TVService]: Check for TechnoTrend 2009-11-09 16:14:13.489654 [TVService]: TechnoTrend: unable to open the device [B]2009-11-09 16:14:13.489654 [TVService]: Successful detected TechnoTrend card 2009-11-09 16:14:13.489654 [TVService]: Registering TechnoTrend card ConditionalAccess feature 2009-11-09 16:14:13.489654 [TVService]: Registering TechnoTrend card CI menu feature 2009-11-09 16:14:13.489654 [TVService]: Registering TechnoTrend card DiSEqC feature [/B]2009-11-09 16:14:13.489654 [TVService]: Check for WinTvCI USB[/CODE] works very well :D ---------------- quoting ---------------- ---------------- quoting ---------------- Testresults (Nov. 2009): [CODE] TvLibrary.HardwarePlugin.ConexantBDA.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.DigitalEverywhere.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B],IConditionalAccessProvider [COLOR="DarkGreen"][B][working!][/B][/COLOR] TvLibrary.HardwarePlugin.GenericBDAS.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.GenPixBDA.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.Hauppauge.dll --> DiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.Hauppauge_WinTvCI.dll --> IConditionalAccessProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.KNC.dll --> IConditionalAccessProvider [COLOR="DarkGreen"][B][working!][/B][/COLOR],IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.ProfRed.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.TechnoTrend.dll --> IConditionalAccessProvider [COLOR="DarkGreen"][B][working!][/B][/COLOR],IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.TwinHan.dll --> IDiSEqCController [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B],IConditionalAccessProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.GenericATSC.dll --> IAtscQamProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B] TvLibrary.HardwarePlugin.ViXSATSC.dll --> IAtscQamProvider [B][COLOR="DeepSkyBlue"][please test!][/COLOR][/B][/CODE] ... All vendor related function got moved to their own .dll, the ConditionalAccess class now only calls interfaces (after interpreting the capabilities) ---------------- quoting ---------------- [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
Submit: code patches (MediaPortal/TV-Server/etc.)
TV Server hardware-specific code refactoring
Contact us
RSS
Top
Bottom