static void determiner() { Descrambler WordLen = new Descrambler(); string determiner = Console.ReadLine(); int determinerX = Int32.Parse(determiner); if (determinerX == 3) { Console.WriteLine("Type in the three letter word and press ENTER to see possible words:\r\n"); WordLen.threeLetter(); } else if (determinerX == 4) { Console.WriteLine("Type in the four letter word and press ENTER to see possible words:\r\n"); WordLen.fourLetter(); } else if (determinerX == 5) { Console.WriteLine("Type in the five letter word and press ENTER to see possible words:\r\n"); WordLen.fiveLetter(); } else if (determinerX >= 6 || determinerX <= 2) { Console.WriteLine("Sorry, the descrambler can only do 3 to 5 letters at this time. Try again."); Console.ReadLine(); } }
static void Main(string[] args) { Promptz UserPrompt = new Promptz(); Descrambler WordLength = new Descrambler(); UserPrompt.Prompt1(); determiner(); }
public TravelAgency(IDatabase <IAccomodation> bookingDatabase, IDatabase <IReview> oysterDatabase, IDatabase <IPhoto> stockDatabase, IDatabase <IAttraction> tripAdvisorDatabase) { this.bookingIterator = bookingDatabase.GetIterator(); this.oysteIterator = oysterDatabase.GetIterator();; this.stockIterator = stockDatabase.GetIterator();; this.tripAdvisorIterator = tripAdvisorDatabase.GetIterator(); this.bookingDescrambler = new BookingDescramblerFactory().GetDescrambler(); this.stockDescrambler = new ShutterStockDescramblerFactory().GetDescrambler(); this.tripAdvisorDescrambler = new TripAdvisorDescramblerFactory().GetDescrambler(); }
private Descrambler GetDescrambler(int index) { Descrambler descr = _Descramblers[index]; if (descr == null) { descr = new Descrambler(); descr.Index = index; _Descramblers[index] = descr; lock (_DescramblersList) _DescramblersList.Add(descr); } return(descr); }
private void IcCommandSetDescramblerMode(BinaryReader rdr) { int index = rdr.ReadInt32(); DescramblerAlgo algo = (DescramblerAlgo)rdr.ReadInt32(); DescramblerMode mode = (DescramblerMode)rdr.ReadInt32(); if (_UseMdApi) { if (algo != DescramblerAlgo.DvbCsa) { LogProvider.Add(DebugLevel.Warning, cLogSection, Message.AdapterMdapiMode); } return; } Descrambler descr = GetDescrambler(index); descr.SetDescramblerMode(algo, mode); }
private void IcCommandSetDescrambleData(BinaryReader rdr, int dLen) { int index = rdr.ReadInt32(); DescramblerParity parity = (DescramblerParity)rdr.ReadInt32(); DescramblerDataType dType = (DescramblerDataType)rdr.ReadInt32(); byte[] data = rdr.ReadBytes((int)(dLen - rdr.BaseStream.Position)); if (dType == DescramblerDataType.Key) { GotControlWord?.Invoke(data, parity); } if (_UseMdApi) { return; } Descrambler descr = GetDescrambler(index); descr.SetDescramblerData(parity, dType, data); }
public PolandTravel(ITravelAgency travelAgency, IDatabase <IAttraction> tripAdvisorDatabase) { this.travelAgency = travelAgency; this.tripAdvisorIterator = tripAdvisorDatabase.GetIterator(); this.tripAdvisorDescrambler = new TripAdvisorDescramblerFactory().GetDescrambler(); }
/// <summary> /// Verarbeitet den Rohen TS-Datenstrom /// </summary> /// <param name="buf">Pointer auf das Syncbyte des ersten Packets</param> /// <param name="len">Länge des Puffers, muss ein Vielfaches von 188 sein.</param> public void ProcessRawTs(IntPtr buf, int len) { int count = len / 188; int i, offset, pid; bool scr; if (_DumpFileStream != null) { try { byte[] b = new byte[len]; Marshal.Copy(buf, b, 0, len); lock (_DumpFileStream) { _DumpFileStream.Write(b, 0, len); } } catch (Exception ex) { LogProvider.Exception(cLogSection, Message.AdapterDumpFailed, ex); } } for (i = 0, offset = 0; i < count; i++, offset += 188) { pid = Marshal.ReadInt32(buf, offset); // int in Host-Byte-Order gelesen, pid & 0xff gibt sync-byte scr = (pid & 0xc0000000) != 0; // scrambled ? pid = (pid >> 16 & 0x00ff) | (pid & 0x1f00); // Aus Performance-Gründen wird hier mit Array-Direktzugriff gearbeitet. // über die PID wird der Descrambler-Index geholt und damit der descrambler der die Pid // entschlüsseln kann. Dies veringert die CPU-Last zum Teil erheblich - sofern mehrere Packets pro Aufruf entschlüsselt werden. if (_DescramblePids[pid] > 0 && scr) { int di = _DescramblePids[pid]; Descrambler descr = _Descramblers[di - 1]; if (descr != null) { descr.AddToBatch(buf + offset); } } // Gleiche hier mit der Verarbeitung der anderen Types, PMT, PAT, etc. if (_FilteredPids[pid] > 0) { try { ProcessTsPacket(buf + offset, pid); } catch (Exception ex) { LogProvider.Exception(cLogSection, Message.AdapterProcessFailed, ex); } } } // Alle descrambler durchfahren und "Decrypt-Button" drücken. lock (_DescramblersList) { for (i = 0; i < _DescramblersList.Count; i++) { Descrambler descr = _DescramblersList[i]; descr.DescrambleBatch(); } } }