/// <summary> /// Instantiiert einen neuen Adapter /// </summary> /// <param name="pipeName">Pipename über die der Adapter die Einstellungen zum ApiClient bezieht.</param> /// <param name="isMdapi">Wenn der Adapter selbst keine Entschlüsselung vornehmen soll, true, anderenfalls false.</param> public DvbApiAdapter(string pipeName, bool isMdapi) { _FilteredPids = new byte[0x2000]; // index = pid 0 = nicht filtern, 1 = filtern. _DescramblePids = new byte[0x2000]; // gleiche hier, wert jedoch descrambler-Index. _Descramblers = new Descrambler[256]; _DescramblersList = new List <Descrambler>(); _Filters = new List <DemuxFilter>(); _ServiceId = -1; _PmtPid = -1; _AdapterIndex = -1; _UseMdApi = isMdapi; _DumpStream = false; Globals.Config.Get("debug", "streamdump", ref _DumpStream); try { string srv = ""; int port = 0; int adapterOffset = 0; Globals.Config.Get(cConfigSection, "server", ref srv); if (Globals.Config.Get(cConfigSection, "offset", 0, 128, ref adapterOffset) != Configuration.ConfigRes.Ok) { LogProvider.Add(DebugLevel.Error, cLogSection, Message.AdapterConfigInvalidOffset); } if (Globals.Config.Get(cConfigSection, "port", 1, 65535, ref port) != Configuration.ConfigRes.Ok) { LogProvider.Add(DebugLevel.Error, cLogSection, Message.AdapterConfigInvalidPort); } _ApiClient = new DvbApiClient(srv, port, pipeName, Globals.Info, adapterOffset); _ApiClient.Start(); } catch (AlreadyRunningException) { // ...wenn fehlgeschlagen, weil pipe schon existent, // dann war eine andere Plugin-Instanz schneller, wird weiter nicht benötigt. LogProvider.Add(DebugLevel.Info, cLogSection, Message.AdapterClientRunning); } _IcEp = new InterComClient(pipeName); _IcEp.GotCommand += IcCommand; _IcEp.Disconnected += IcDisconnected; _IcEp.Start(); }
public void Start() { if (_IsRunning) { return; } _IcEp.Start(); SendIndex(); _IsRunning = true; }