示例#1
0
        public Pes pes()
        {
            Pes pes = new Pes();

            pes.Tamanho  = "Pequeno";
            pes.TemChule = true;

            return(pes);
        }
        /// <summary>
        /// Gets full image if 'ActiveImageIndex' not set, otherwise only gets image by index
        /// </summary>
        /// <returns></returns>
        public Bitmap GetBitmap()
        {
            if (ActiveImageIndex.HasValue && ActiveImageIndex >= 0 && ActiveImageIndex < Pes.ObjectDataList.Count)
            {
                return((Bitmap)Pes.GetImage(Pes.ObjectDataList[ActiveImageIndex.Value]).Clone());
            }

            return(Pes.GetImageFull());
        }
示例#3
0
        private void button1_Click(object sender, EventArgs e)
        {
            double Pes, Dlls;

            Dlls          = System.Double.Parse(textBox1.Text);
            Pes           = Dlls * 17.10;
            textBox2.Text = Pes.ToString();
            label3.Text   = textBox2.Text;
        }
示例#4
0
 public string GetFullFilePathByFileID(Int64 FileID, Pes.Core.File.Sizes FileSize)
 {
     string result = "";
     Pes.Core.File file = Pes.Core.File.GetFileByID(FileID);
     if (file != null)
     {
         Folder folder = Pes.Core.Folder.GetFolderByID(file.DefaultFolderID);
         result = folder.CreateDate.Year.ToString() + folder.CreateDate.Month.ToString() + "/" +
                         file.FileSystemName + "__" + FileSize.ToString() + "." + file.Extension;
     }
     return result;
 }
        public Size GetScreenSize()
        {
            if (_bdSup != null)
            {
                return(_bdSup.Size);
            }

            if (Pes != null)
            {
                return(Pes.GetScreenSize());
            }

            return(new Size(DvbSubPes.DefaultScreenWidth, DvbSubPes.DefaultScreenHeight));
        }
示例#6
0
 public void InitBot()
 {
     Pes.SetLogicCoord(dataMap.positionBot);                //Получили данные о боте с DATA
     Pes.botView = new BotView(scene, Pes.X, Pes.Y, Pes.Z); //Отрисовка по полученным координатам
 }
        /// <summary>
        /// Decodes teletext packets from the complete elementary stream packet.
        /// </summary>
        /// <param name="elementaryStreamPacket">The elementary stream packet to decode teletext packets from.</param>
        /// <param name="decodeSubtitles">True if teletext subtitles packets should be decoded, false if not.</param>
        /// <returns>A list of teletext packets, or null if the elementary stream packet is not for a teletext service.</returns>
        public static List <Packet>?DecodeTeletextPacket(Pes elementaryStreamPacket, bool decodeSubtitles)
        {
            // Check the PES is a private stream packet
            if (elementaryStreamPacket.StreamId != (byte)PesStreamTypes.PrivateStream1)
            {
                return(null);
            }
            // Set offset in bytes for teletext packet data
            int teletextPacketOffset;

            if (elementaryStreamPacket.OptionalPesHeader.MarkerBits == 2) // If optional PES header is present
            {
                // If optional header is present, teletext data starts after 9 bytes plus header bytes
                teletextPacketOffset = 9 + elementaryStreamPacket.OptionalPesHeader.PesHeaderLength;
            }
            else
            {
                // If no optional header is present, teletext data starts after 6 bytes
                teletextPacketOffset = 6;
            }
            // Check the data identifier is within the range for EBU teletext
            if (elementaryStreamPacket.Data[teletextPacketOffset] < 0x10 || elementaryStreamPacket.Data[teletextPacketOffset] > 0x1F)
            {
                return(null);
            }
            // Increase offset by 1 to the start of the first teletext data unit
            teletextPacketOffset++;
            // Create a list of teletext packets to return
            List <Packet> packets = new List <Packet>();

            // Loop through each teletext data unit within the PES
            while (teletextPacketOffset < elementaryStreamPacket.Data.Length)
            {
                // Get length of data unit
                int dataUnitLength = elementaryStreamPacket.Data[teletextPacketOffset + 1];
                // Check the data unit length doesn't exceed the PES length, and exit the loop if it does (assumed it is corrupted)
                if (dataUnitLength > elementaryStreamPacket.Data.Length - teletextPacketOffset + 2)
                {
                    Logger.OutputWarning("Skipping data unit with invalid length");
                    break;
                }
                // Check data unit contains non-subtitle teletext data, or contains subtitles teletext data if subtitles are enabled, otherwise ignore
                if (elementaryStreamPacket.Data[teletextPacketOffset] == 0x02 || (decodeSubtitles && elementaryStreamPacket.Data[teletextPacketOffset] == 0x03))
                {
                    // Create array of bytes to contain teletext packet data
                    byte[] teletextData = new byte[dataUnitLength];
                    // Copy teletext packet data to the array
                    Buffer.BlockCopy(elementaryStreamPacket.Data, teletextPacketOffset + 2, teletextData, 0, dataUnitLength);
                    // Reverse the bits in the bytes, required as teletext is transmitted as little endian whereas computers are generally big endian
                    for (int i = 0; i < teletextData.Length; i++)
                    {
                        teletextData[i] = Decode.Reverse(teletextData[i]);
                    }
                    // Create a new teletext packet from the bytes of data and add it to the list
                    packets.Add(new Packet(teletextData));
                }
                // Increase offset to the next data unit
                teletextPacketOffset += (dataUnitLength + 2);
            }
            // Return the list of teletext packets
            return(packets);
        }