Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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();
 }
Ejemplo n.º 8
0
        /// <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();
                }
            }
        }