示例#1
0
        private static async Task HandleClient(TcpClient tcpClientSocket)
        {
            var isClientConnected = true;

            IClientDataAccess clientDataAccess = new ClientDataAccess();
            IClientService    clientService    = new ClientService(clientDataAccess);

            DateTime hour           = DateTime.Now;
            string   connectionHour = hour.Hour + ":" + hour.Minute;

            int token = clientService.AddClient(connectionHour);

            try
            {
                using (var networkStream = tcpClientSocket.GetStream())
                {
                    SendMenu(networkStream);

                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    while (isClientConnected)
                    {
                        var frame = await frameHandler.ReadDataAsync();

                        var printiame = Encoding.ASCII.GetString(frame);
                        Console.WriteLine("Now handeling: " + printiame);
                        isClientConnected = HandleRequest(frame, networkStream);
                    }
                    clientService.RemoveClient(token);
                }
            }
            catch (SocketException)
            {
                Console.WriteLine("The client connection was interrupted");
            }
        }
        public void TestIsMultithreaded()
        {
            FrameHandler frameHandler = new FrameHandler(0, ActionFrame);

            frameHandler.IsMultithreaded = false;
            Assert.IsFalse(frameHandler.IsMultithreaded);
        }
 public static void GetFrame(FrameHandler handler)
 {
     using (var frame = Camera._cameraCapture.QueryFrame())
     {
         handler(frame);
     }
 }
示例#4
0
        /// <summary>
        /// The execute.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <returns>
        /// The <see cref="ChromelyResponse"/>.
        /// </returns>
        private ChromelyResponse Execute(ChromelyRequest request)
        {
            var response = new ChromelyResponse(request.Id)
            {
                ReadyState = (int)ReadyState.ResponseIsReady,
                Status     = (int)System.Net.HttpStatusCode.OK,
                StatusText = "OK",
                Data       = DateTime.Now.ToLongDateString()
            };

            try
            {
                var scriptInfo = new ScriptInfo(request.PostData);
                var frame      = FrameHandler.GetFrame(scriptInfo.FrameName);
                if (frame == null)
                {
                    response.Data = $"Frame {scriptInfo.FrameName} does not exist.";
                    return(response);
                }

                frame.ExecuteJavaScript(scriptInfo.Script, null, 0);
                response.Data = "Executed script :" + scriptInfo.Script;
                return(response);
            }
            catch (Exception e)
            {
                response.Data       = e.Message;
                response.ReadyState = (int)ReadyState.RequestReceived;
                response.Status     = (int)System.Net.HttpStatusCode.BadRequest;
                response.StatusText = "Error";
            }

            return(response);
        }
示例#5
0
        private void CommandAction(string path, IDictionary <string, string[]> queryParameters)
        {
            try
            {
                var data = new LitJson.JsonData();
                data["Path"] = path;
                if (queryParameters == null || !queryParameters.Any())
                {
                    data["QueryParams"] = "No query parameters";
                }
                else
                {
                    var qdata        = LitJson.JsonMapper.ToJson(queryParameters);
                    var encodedQdata = qdata.JavaScriptStringEncode();
                    data["QueryParams"] = encodedQdata;
                }

                var script = string.Format(COMMANDRESPONSESCRIPTFORMAT, data.ToJson());

                CefFrame frame = FrameHandler.GetFrame("alldemoframe");
                if (frame == null)
                {
                    var errorMsg = $"Frame alldemoframe does not exist.";
                    Log.Error(errorMsg);
                    return;
                }

                frame.ExecuteJavaScript(script, null, 0);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
        public void TestFrameArrivedSingleThread()
        {
            FrameHandler frameHandler = new FrameHandler(1, ActionFrame, false);

            frameHandler.Handler_FrameArrived(sender, eventArgs);
            Assert.AreEqual(1, counter);
        }
        public void Read()
        {
            try
            {
                while (true)
                {
                    if (!Connected)
                    {
                        return;
                    }

                    var l = _stream.Read(this._readBuffer, 0, this._readBuffer.Length);

                    if (l <= 0)
                    {
                        this.Disconnect();
                        return;
                    }

                    FrameHandler.Receive(new ArraySegment <byte>(this._readBuffer, 0, (int)l));
                    Array.Clear(this._readBuffer, 0, l);
                }
            }
            catch
            {
                this.Disconnect();
            }
        }
示例#8
0
        private byte[] GetTagBytes(Id3Tag tag)
        {
            var bytes = new List <byte>();

            bytes.AddRange(AsciiEncoding.GetBytes("ID3"));
            bytes.AddRange(new byte[] { 3, 0, 0 });
            foreach (Id3Frame frame in tag.Frames)
            {
                if (frame.IsAssigned)
                {
                    FrameHandler mapping = FrameHandlers[frame.GetType()];
                    if (mapping != null)
                    {
                        byte[] frameBytes = mapping.Encoder(frame);
                        bytes.AddRange(AsciiEncoding.GetBytes(GetFrameIdFromFrame(frame)));
                        bytes.AddRange(SyncSafeNumber.EncodeNormal(frameBytes.Length));
                        bytes.AddRange(new byte[] { 0, 0 });
                        bytes.AddRange(frameBytes);
                    }
                }
            }
            int framesSize = bytes.Count - 6;

            bytes.InsertRange(6, SyncSafeNumber.EncodeSafe(framesSize));
            return(bytes.ToArray());
        }
        public void TestFrameArrivedMultithread()
        {
            FrameHandler frameHandler = new FrameHandler(1, ActionFrame);

            frameHandler.Handler_FrameArrived(sender, eventArgs);
            finishedEvent.Wait();
            Assert.AreEqual(1, counter);
        }
示例#10
0
 public void AddClient(FrameHandler callback)
 {
     lock (this)
     {
         if(FrameReceived == null)
             SendMessage("start");
         FrameReceived += callback;
     }
 }
示例#11
0
 public void RemoveClient(FrameHandler callback)
 {
     lock (this)
     {
         FrameReceived -= callback;
         if (FrameReceived == null)
             SendMessage("stop");
     }
 }
        public void TestFrameArrivedNullMultiSourceFrame()
        {
            Isolate.WhenCalled(() => eventArgs.FrameReference.AcquireFrame()).WillReturn(null);
            FrameHandler frameHandler = new FrameHandler(1, ActionFrame, false);

            frameHandler.Handler_FrameArrived(sender, eventArgs);
            Assert.AreEqual(0, counter);
            Assert.AreEqual(0, frameId);
        }
        public void TestFrameArrivedFinished()
        {
            FrameHandler frameHandler = new FrameHandler(0, ActionFrame, false);

            frameHandler.Finished += Finished;
            frameHandler.Handler_FrameArrived(sender, eventArgs);
            Assert.IsTrue(isFinished);
            Assert.AreEqual(0, counter);
            Assert.AreEqual(0, frameId);
        }
        public void Read()
        {
            try
            {
                while (true)
                {
                    if (!Connected)
                    {
                        return;
                    }

                    var op = _reader.LoadAsync(1024 * 320);

                    op.Completed = async(info, status) =>
                    {
                        switch (status)
                        {
                        case AsyncStatus.Completed:
                            uint byteCount = _reader.UnconsumedBufferLength;

                            //byte[] buffer = new byte[byteCount];
                            _reader.ReadBytes(((Communication)this)._readBuffer);

                            if (byteCount <= 0)
                            {
                                await this.Disconnect();
                            }
                            else
                            {
                                FrameHandler.Receive(new ArraySegment <byte>(((Communication)this)._readBuffer, 0, (int)byteCount));
                                Array.Clear(((Communication)this)._readBuffer, 0, (int)byteCount);
                            }
                            break;

                        case AsyncStatus.Error:
                            await this.Disconnect();

                            break;

                        case AsyncStatus.Canceled:
                            await this.Disconnect();

                            break;
                        }
                    };
                }
            }
            catch
            {
                this.Disconnect();
            }
        }
 public void _02_GetCurrentFrameName()
 {
     test = extent
            .StartTest("GetCurrentFrameName ", "Searches for frame name " + "menu_page")
            .AssignCategory("Frames");
     try
     {
         Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("menu_page"), "Frame name was not 'menu_page' ");
         test.Log(LogStatus.Pass, "The frame is titled " + "'menu_page'");
     }
     catch (Exception ex)
     {
         test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>");
         throw;
     }
 }
 public void _05_MoveToParentFrame()
 {
     test = extent
            .StartTest("MoveToParentFrame", "Moves to frame " + "'main_page'")
            .AssignCategory("Frames");
     try
     {
         FrameHandler.MoveToParentFrame(_driver);
         Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("main_page"), "Frame name was not 'main_page' ");
         test.Log(LogStatus.Pass, "The current frame is " + "'main_page'");
     }
     catch (Exception ex)
     {
         test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>");
         throw;
     }
 }
 public void _03_GetDefaultContext()
 {
     test = extent
            .StartTest("GetDefaultContent", "Moves to Default Content")
            .AssignCategory("Frames");
     try
     {
         FrameHandler.MoveToDefaultContext(_driver);
         Assert.Null(FrameHandler.GetCurrentFrameName(_driver), "Failed to move to default Content ");
         test.Log(LogStatus.Pass, "Moved properly to default content");
     }
     catch (Exception ex)
     {
         test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>");
         throw;
     }
 }
 public void _06_MoveToSiblingFrame()
 {
     test = extent
            .StartTest("MoveToSiblingFrame", " Moves to frame " + "'main_frame2'")
            .AssignCategory("Frames");
     test.Log(LogStatus.Info, "Final Test in 'FrameHandlerTest' series");
     try
     {
         FrameHandler.MoveToChildFrame(_driver, By.Name("main_frame1"));
         FrameHandler.MoveToSiblingFrame(_driver, By.Name("main_frame2"));
         Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("main_frame2"), "Frame name was not 'main_frame2' ");
         test.Log(LogStatus.Pass, "The current frame is " + "'main_frame2'");
     }
     catch (Exception ex)
     {
         test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>");
         throw;
     }
 }
示例#19
0
        public void TestFailed_FrameHandler_SetThirdBowlForFrame_FrameIsNull()
        {
            //-- Arrange
            FrameHandler frameHandler    = new FrameHandler();
            var          kickedPinsCount = 1;

            //-- Act
            try
            {
                frameHandler.SetThirdBowlForFrame(null, kickedPinsCount);
            }
            catch (ArgumentNullException)
            {
                return;
            }

            //-- Assert
            Assert.Fail("Call did NOT throw the Argument Exception");
        }
        public void _01_MoveToChildFrame()
        {
            test = extent
                   .StartTest("MoveToChildFrame", "Verifies the link is displayed")
                   .AssignCategory("Frames");
            test.Log(LogStatus.Info, "Move to appropriate frame and discover link");

            try
            {
                FrameHandler.MoveToChildFrame(_driver, By.Name("menu_page"));
                Assert.True(_driver.FindElement(By.Id("googleLink")).Displayed, "Link was not found in 'menu_page'");
                test.Log(LogStatus.Pass, "The link " + "menu_page" + " is displayed ");
            }
            catch (Exception ex)
            {
                test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>");
                throw;
            }
        }
示例#21
0
文件: Animator.cs 项目: x335/WootzJs
 /// <summary>
 /// 
 /// </summary>
 /// <param name="frame"></param>
 /// <param name="duration">Milliseconds</param>
 /// <param name="onDone"></param>
 public static void Animate(FrameHandler frame, double duration, Action onDone = null)
 {
     int? start = null;
     Action<int> step = null;
     step = timestamp =>
     {
         start = start ?? timestamp;
         var progress = (timestamp - start.Value) / duration;
         frame(progress);
         if (progress < 1)
         {
             Browser.Window.RequestAnimationFrame(step);
         }
         else
         {
             onDone();
         }
     };
     Browser.Window.RequestAnimationFrame(step);            
 }
        public void _04_MoveToChildFrameArray()
        {
            test = extent
                   .StartTest("MovedToChildFrameArray", "Moves into " + "'main_frame1'")
                   .AssignCategory("Frames");
            try
            {
                By locatorParentFrame = By.Name("main_page");
                By locatorChildFrame  = By.Name("main_frame1");

                FrameHandler.MoveToChildFrame(_driver, new By[] { locatorParentFrame, locatorChildFrame });
                Assert.True(FrameHandler.GetCurrentFrameName(_driver).Equals("main_frame1"), "Failed to move to 'main_frame1'  ");
                test.Log(LogStatus.Pass, "The current frame is " + "main_frame1");
            }
            catch (Exception ex)
            {
                test.Log(LogStatus.Fail, "<pre>" + ex.StackTrace + "</pre>");
                throw;
            }
        }
示例#23
0
        /// <summary>
        /// The evaluate.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <returns>
        /// The <see cref="ChromelyResponse"/>.
        /// </returns>
        private ChromelyResponse Evaluate(ChromelyRequest request)
        {
            var response = new ChromelyResponse(request.Id)
            {
                ReadyState = (int)ReadyState.ResponseIsReady,
                Status     = (int)System.Net.HttpStatusCode.OK,
                StatusText = "OK",
                Data       = DateTime.Now.ToLongDateString()
            };

            try
            {
                var scriptInfo = new ScriptInfo(request.PostData);
                var frame      = FrameHandler.GetFrame(scriptInfo.FrameName);
                if (frame == null)
                {
                    response.Data = $"Frame {scriptInfo.FrameName} does not exist.";
                    return(response);
                }

                var javascriptResponse = frame.EvaluateScriptAsync(scriptInfo.Script);
                javascriptResponse.Wait();
                var status = javascriptResponse.Result.Success
                                    ? "Successfully executed :"
                                    : "Error in executing :";

                response.Data = string.IsNullOrEmpty(javascriptResponse.Result?.Result?.ToString())
                                    ? status + scriptInfo.Script
                                    : javascriptResponse.Result?.Result?.ToString();
                return(response);
            }
            catch (Exception exception)
            {
                response.Data       = exception.Message;
                response.ReadyState = (int)ReadyState.RequestReceived;
                response.Status     = (int)System.Net.HttpStatusCode.BadRequest;
                response.StatusText = "Error";
            }

            return(response);
        }
示例#24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="frame"></param>
        /// <param name="duration">Milliseconds</param>
        /// <param name="onDone"></param>
        public static void Animate(FrameHandler frame, double duration, Action onDone = null)
        {
            int?         start = null;
            Action <int> step  = null;

            step = timestamp =>
            {
                start = start ?? timestamp;
                var progress = (timestamp - start.Value) / duration;
                frame(progress);
                if (progress < 1)
                {
                    Browser.Window.RequestAnimationFrame(step);
                }
                else
                {
                    onDone();
                }
            };
            Browser.Window.RequestAnimationFrame(step);
        }
示例#25
0
        static void SendMenu(NetworkStream networkStream)
        {
            IMenuDataAccess menuDA       = new MenuDataAccess();
            IMenuService    menuService  = new MenuService(menuDA);
            IFrameHandler   frameHandler = new FrameHandler(networkStream);
            var             items        = menuService.GetMenuItems();


            string menu  = "";
            int    count = 1;

            foreach (var item in items)
            {
                menu += count + ") " + item + "\n";
                count++;
            }

            byte[] data = Encoding.UTF8.GetBytes(menu);

            frameHandler.SendMessageAsync(data);
        }
        public async Task GivenDicomFileWithFrames_WhenRetrievingWithTransferSyntax_ThenTranscoderShouldBeInvokedAsExpected(bool originalTransferSyntaxRequested, string requestedRepresentation, bool shouldBeInvoked)
        {
            (DicomFile file, Stream stream) = StreamAndStoredFileFromDataset(GenerateDatasetsFromIdentifiers(), 1).Result;
            ITranscoder transcoder = Substitute.For <ITranscoder>();

            transcoder.TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>()).Returns(_recyclableMemoryStreamManager.GetStream());
            FrameHandler frameHandler           = new FrameHandler(transcoder, _recyclableMemoryStreamManager);
            IReadOnlyCollection <Stream> result = await frameHandler.GetFramesResourceAsync(stream, new int[] { 0 }, originalTransferSyntaxRequested, requestedRepresentation);

            // Call Position of LazyTransformReadOnlyStream so that transcoder.TranscodeFrame is invoked
            long pos = result.First().Position;

            if (shouldBeInvoked)
            {
                transcoder.Received().TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>());
            }
            else
            {
                transcoder.DidNotReceive().TranscodeFrame(Arg.Any <DicomFile>(), Arg.Any <int>(), Arg.Any <string>());
            }
        }
        private static void RunResponseScript(string script)
        {
            try
            {
                Task.Run(() =>
                {
                    var frame = FrameHandler.GetMainFrame();
                    if (frame == null)
                    {
                        var errorMsg = $"Cannot get frame to run {script}.";
                        Log.Error(errorMsg);
                        return;
                    }

                    frame.ExecuteJavaScript(script, null, 0);
                });
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
        private static void RunResponseScriptAsync(string script)
        {
            try
            {
                Task.Run(async() =>
                {
                    var frame = FrameHandler.GetMainFrame();
                    if (frame == null)
                    {
                        var errorMsg = $"Cannot get frame to run {script}.";
                        Log.Error(errorMsg);
                        return;
                    }

                    await frame.EvaluateScriptAsync(script).ConfigureAwait(false);
                });
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
示例#29
0
        internal override Id3Tag ReadTag(Stream stream)
        {
            if (!HasTag(stream))
            {
                return(null);
            }

            var tag = new Id3Tag {
                MajorVersion = 2,
                MinorVersion = 3,
                Family       = Id3TagFamily.Version2x,
                IsSupported  = true,
            };

            stream.Seek(4, SeekOrigin.Begin);
            var headerBytes = new byte[6];

            stream.Read(headerBytes, 0, 6);

            var headerContainer = new Id3v2Header();

            tag.AdditionalData = headerContainer;

            byte flags  = headerBytes[1];
            var  header = new Id3v2StandardHeader {
                Revision         = headerBytes[0],
                Unsyncronization = (flags & 0x80) > 0,
                ExtendedHeader   = (flags & 0x40) > 0,
                Experimental     = (flags & 0x20) > 0
            };

            headerContainer.Header = header;

            int tagSize = SyncSafeNumber.DecodeSafe(headerBytes, 2, 4);
            var tagData = new byte[tagSize];

            stream.Read(tagData, 0, tagSize);

            int currentPos = 0;

            if (header.ExtendedHeader)
            {
                SyncSafeNumber.DecodeSafe(tagData, currentPos, 4);
                currentPos += 4;

                var extendedHeader = new Id3v2ExtendedHeader {
                    PaddingSize = SyncSafeNumber.DecodeNormal(tagData, currentPos + 2, 4)
                };

                if ((tagData[currentPos] & 0x80) > 0)
                {
                    extendedHeader.Crc32 = SyncSafeNumber.DecodeNormal(tagData, currentPos + 6, 4);
                    currentPos          += 10;
                }
                else
                {
                    currentPos += 6;
                }

                headerContainer.ExtendedHeader = extendedHeader;
            }

            while (currentPos < tagSize && tagData[currentPos] != 0x00)
            {
                string frameId = AsciiEncoding.GetString(tagData, currentPos, 4);
                currentPos += 4;

                int frameSize = SyncSafeNumber.DecodeNormal(tagData, currentPos, 4);
                currentPos += 4;

                var frameFlags = (ushort)((tagData[currentPos] << 0x08) + tagData[currentPos + 1]);
                currentPos += 2;

                var frameData = new byte[frameSize];
                Array.Copy(tagData, currentPos, frameData, 0, frameSize);

                FrameHandler mapping = FrameHandlers[frameId];
                if (mapping != null && mapping.Decoder != null)
                {
                    Id3Frame frame = mapping.Decoder(frameData);
                    tag.Frames.Add(frame);
                }

                currentPos += frameSize;
            }

            return(tag);
        }
        public StarlingGameSpriteBase()
        {
            instance = this;

            gametime.Start();

            this.Content = new Sprite().AttachTo(this);

            this.Content_layer0_ground = new Sprite().AttachTo(this.Content);
            this.Content_layer0_tracks = new Sprite().AttachTo(this.Content);
            this.Content_layer2_shadows = new Sprite().AttachTo(this.Content);
            this.Content_layer3_buildings = new Sprite().AttachTo(this.Content);

            this.Content_layer10_hiddenforgoggles = new Sprite().AttachTo(this.Content);
            this.Content_layer10_hiddenforgoggles.visible = false;

            this.info = new TextField(
                800,
                400,
                "Welcome to Starling!"
                ) { hAlign = HAlign.LEFT, vAlign = VAlign.TOP };


			// i can see text, cannot see images?
			info.AttachTo(this);
            //info.MoveTo(72, 8);





			this.stagescale = internalscale;

            onresize(
                (w, h) =>
                {
                    stagex = w * 0.5;
                    stagey = h * 0.8;
                    stagescale = internalscale * (w) / (800.0);


                }
            );



            #region Source0
            var SourceBitmapData0 = new ScriptCoreLib.ActionScript.flash.display.BitmapData(
                // 28MB
                //64 * 2,
                //64 * 2,

                 // 50 MB
                 2048,
                 2048,
                 true, 0x00000000
            );
            var Source0TextureCount = 0;
            // where to start?
            var Source0TextureTop = 0;
            var Source0TextureLeft = 0;

            // fighting mipmapping
            var Source0Padding = 4;

			// ?
            var Source0 = new XLazy<TextureAtlas>(
                 delegate
                 {
                     var SourceTexture = Texture.fromBitmapData(SourceBitmapData0);
                     var Source = new TextureAtlas(SourceTexture);


                     return Source;
                 }
              );
            #endregion



            #region new_tex_crop
            this.new_tex_crop =
               (asset, alpha, flipx, innersize, adjustAlpha, filter) =>
               {

                   var shape = ScriptCoreLib.ActionScript.Extensions.KnownEmbeddedResources.Default[asset].ToSprite();

                   return new_texsprite_crop(shape, alpha, flipx, innersize, adjustAlpha, filter);
               };


            this.new_texsprite_crop =
               (shape, alpha, flipx, innersize, adjustAlpha, filter) =>
               {


                   //var innersize = 64;
                   // outer 400, inner 64

                   // do we need to wrap?
                   if ((Source0TextureLeft + innersize) >= 2048)
                   {
                       // if so, goto next line
                       Source0TextureTop = Source0TextureMaxBottom;
                       Source0TextureLeft = 0;
                   }

                   var rect = new Rectangle(Source0TextureLeft, Source0TextureTop, innersize, innersize);

                   {

                       if (filter != null)
                           shape.filters = new[] { filter };

                       // this does not work!
                       //shape.alpha = 0.3;



                       // next image will appear right to us + padding to prevent bleed
                       Source0TextureLeft += innersize + Source0Padding;
                       Source0TextureMaxBottom = Source0TextureMaxBottom.Max(Source0TextureTop + innersize + Source0Padding);

                       var m = new Matrix();

                       // flip vertical?
                       if (flipx)
                       {
                           m.translate(-400, 0);
                           m.scale(-1, 1);
                       }

                       m.translate(
                           // where to draw? we need packer algorithm?
                           -(400 - rect.width) / 2 + rect.left,
                           -(400 - rect.height) / 2 + rect.top
                      );



                       // http://stackoverflow.com/questions/8035717/actionscript-3-draw-with-transparency-on-a-bitmap

                       if (adjustAlpha == null)
                           adjustAlpha = new ColorTransform();

                       adjustAlpha.alphaMultiplier = alpha;


                       // public void draw(IBitmapDrawable source, Matrix matrix, ColorTransform colorTransform, string blendMode, Rectangle clipRect);
                       //SourceBitmapData0.draw(shape, m, adjustAlpha, clipRect: rect);
                       SourceBitmapData0.draw(shape, m, adjustAlpha, null, rect);
                   }

                   var TextureIndex = Source0TextureCount;

                   Source0TextureCount++;

                   // Error	5	Cannot convert anonymous method to type 'FlashHeatZeeker.UnitPed.Library.Lazy<starling.textures.TextureAtlas>' because it is not a delegate type	X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\FlashHeatZeeker.UnitPed\Library\StarlingGameSpriteWithPed.cs	178	43	FlashHeatZeeker.UnitPed
                   var y = new XLazy<TextureAtlas>(
                       delegate
                       {
                           Source0.Content.addRegion(TextureIndex.ToString(), rect);

                           return Source0.Content;
                       }
                    );


                   // ???
                   return () => y.Content.getTexture(TextureIndex.ToString());
               };
            #endregion


            #region new_tex96
            this.new_tex96 =
               (shape, innersize) =>
               {

                   // outer 400, inner 64

                   // do we need to wrap?
                   if ((Source0TextureLeft + innersize) >= 2048)
                   {
                       // if so, goto next line
                       Source0TextureTop = Source0TextureMaxBottom;
                       Source0TextureLeft = 0;
                   }

                   var rect = new Rectangle(Source0TextureLeft, Source0TextureTop, innersize, innersize);

                   {

                       // this does not work!
                       //shape.alpha = 0.3;



                       // next image will appear right to us
                       Source0TextureLeft += innersize + Source0Padding;
                       Source0TextureMaxBottom = Source0TextureMaxBottom.Max(Source0TextureTop + innersize + Source0Padding);

                       var m = new Matrix();
                       m.translate(
                           // where to draw? we need packer algorithm?
                           rect.left,
                           rect.top
                      );

                       //m.scale(64 / 400.0, 64 / 400.0);

                       // http://stackoverflow.com/questions/8035717/actionscript-3-draw-with-transparency-on-a-bitmap

                       var adjustAlpha = new ColorTransform();
                       adjustAlpha.alphaMultiplier = alpha;


                       SourceBitmapData0.draw(shape, m, adjustAlpha);
                   }

                   var TextureIndex = Source0TextureCount;

                   Source0TextureCount++;

                   // Error	5	Cannot convert anonymous method to type 'FlashHeatZeeker.UnitPed.Library.Lazy<starling.textures.TextureAtlas>' because it is not a delegate type	X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\FlashHeatZeeker.UnitPed\Library\StarlingGameSpriteWithPed.cs	178	43	FlashHeatZeeker.UnitPed
                   var y = new XLazy<TextureAtlas>(
                       delegate
                       {
                           Source0.Content.addRegion(TextureIndex.ToString(), rect);

                           return Source0.Content;
                       }
                    );

                   return () => y.Content.getTexture(TextureIndex.ToString());
               };
            #endregion


            //var __bmd = new ScriptCoreLib.ActionScript.flash.display.BitmapData(96, 96, true, 0x00000000);
            //__bmd.draw(new white_jsc());
            var LogoTexture = new_tex96(new white_jsc());

            onbeforefirstframe += delegate
            {
                //var count = 64;
                var count = DefaultLogoCount;

                for (int i = 0; i < count; i++)
                    for (int yi = 0; yi < count; yi++)
                    {
                        var logo = new Image(LogoTexture()) { }.AttachTo(Content);

                        {
                            var cm = new Matrix();
                            cm.rotate(random.NextDouble() * Math.PI);
                            cm.translate(i * 96, yi * 96);

                            logo.transformationMatrix = cm;
                        }
                    }
            };


            // http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display3D/Context3D.html#driverInfo
            //Text = Starling.current.context.driverInfo;
            Text = "driverInfo missing";


            // how expensive is delegate call in a frame?
            onframe +=
                (stage, starling) =>
                {
                    if (this.frameid == 0)
                    {
                        if (this.onbeforefirstframe != null)
                            this.onbeforefirstframe(stage, starling);
                    }

                    this.frameid++;


                    if (!this.DisableDefaultContentDransformation)
                    {
                        var cm = new Matrix();
                        cm.scale(stagescale, stagescale);

                        if (autorotate)
                            cm.rotate(this.gametime.ElapsedMilliseconds * 0.001);

                        cm.translate(stagex, stagey);
                        this.Content.transformationMatrix = cm;
                    }


                    // does this cost us 40FPS??
                    //var texmem = (this.Source0TextureMaxBottom * 100 / 2048) + "%";

                    //this.info.text = new { this.frameid, texmem, this.Text }.ToString();

                };
        }
示例#31
0
 public void HookScript(FrameHandler handler, Action <IUIObject, object, object, object, object> function)
 {
     this.scriptHandler.HookScript(handler, function);
 }
示例#32
0
        static async Task Main(string[] args)
        {
            try
            {
                var tcpClient = await ClientConnectAsync().ConfigureAwait(false);

                var keepConnection = true;
                using (var networkStream = tcpClient.GetStream())
                {
                    FrameHandler frameHandler = new FrameHandler(networkStream);

                    var serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false);

                    var menu = Encoding.ASCII.GetString(serverResponse);
                    Console.WriteLine(menu);

                    while (keepConnection)
                    {
                        var frameToBeSent = "";

                        while (frameToBeSent == "")
                        {
                            frameToBeSent = Console.ReadLine();
                        }

                        if (frameToBeSent.Equals("exit"))
                        {
                            keepConnection = false;
                            var exitFrame = Encoding.UTF8.GetBytes("REQFF0000");
                            var tarea     = frameHandler.SendMessageAsync(exitFrame);
                            serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false);

                            var asciiResponse = (Encoding.ASCII.GetString(serverResponse));
                            Console.WriteLine(asciiResponse);
                        }
                        else
                        {
                            var encodedFrame = Encoding.UTF8.GetBytes(frameToBeSent);
                            var tarea        = frameHandler.SendMessageAsync(encodedFrame);
                            serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false);

                            var      asciiResponse    = (Encoding.ASCII.GetString(serverResponse));
                            string[] separator        = { "@" };
                            string[] splittedResponse = asciiResponse.Split(separator, StringSplitOptions.RemoveEmptyEntries);
                            Console.WriteLine(splittedResponse[0]);
                            if (splittedResponse[0].Equals("Sending file..."))
                            {
                                IFileFunctions fileFunctions = new FileFunctions();
                                IFileHandler   fileHandler   = new FileHandler(networkStream);
                                IFileService   fileService   = new FileService(fileFunctions, fileHandler);
                                try
                                {
                                    fileService.SendFile(splittedResponse[1]);
                                    serverResponse = await frameHandler.ReadDataAsync().ConfigureAwait(false);

                                    asciiResponse = (Encoding.ASCII.GetString(serverResponse));
                                    Console.WriteLine(asciiResponse);
                                }
                                catch (BussinesLogicException e)
                                {
                                    Console.WriteLine(e.Message);
                                }
                            }
                            if (asciiResponse.Equals("Goodbye"))
                            {
                                keepConnection = false;
                            }
                        }
                    }
                }
                tcpClient.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Ha ocurrido un error de conexion verifique su app config o que el servidor este levantado");
                Console.ReadLine();
            }
        }
示例#33
0
        internal override Id3Tag ReadTag(Stream stream, out object additionalData)
        {
            if (!HasTag(stream))
            {
                additionalData = null;
                return(null);
            }

            Id3Tag tag = CreateTag();

            stream.Seek(4, SeekOrigin.Begin);
            var headerBytes = new byte[6];

            stream.Read(headerBytes, 0, 6);

            var headerContainer = new Id3V2Header();

            additionalData = headerContainer;

            byte flags  = headerBytes[1];
            var  header = new Id3V2StandardHeader {
                Revision         = headerBytes[0],
                Unsyncronization = (flags & 0x80) > 0,
                ExtendedHeader   = (flags & 0x40) > 0,
                Experimental     = (flags & 0x20) > 0
            };

            headerContainer.Header = header;

            int tagSize = SyncSafeNumber.DecodeSafe(headerBytes, 2, 4);
            var tagData = new byte[tagSize];

            stream.Read(tagData, 0, tagSize);

            var currentPos = 0;

            if (header.ExtendedHeader)
            {
                SyncSafeNumber.DecodeSafe(tagData, currentPos, 4);
                currentPos += 4;

                var extendedHeader = new Id3V2ExtendedHeader {
                    PaddingSize = SyncSafeNumber.DecodeNormal(tagData, currentPos + 2, 4)
                };

                if ((tagData[currentPos] & 0x80) > 0)
                {
                    extendedHeader.Crc32 = SyncSafeNumber.DecodeNormal(tagData, currentPos + 6, 4);
                    currentPos          += 10;
                }
                else
                {
                    currentPos += 6;
                }

                headerContainer.ExtendedHeader = extendedHeader;
            }

            while (currentPos < tagSize && tagData[currentPos] != 0x00)
            {
                string frameId = Encoding.ASCII.GetString(tagData, currentPos, 4);
                currentPos += 4;

                int frameSize = SyncSafeNumber.DecodeNormal(tagData, currentPos, 4);
                currentPos += 4;

                var frameFlags = (ushort)((tagData[currentPos] << 0x08) + tagData[currentPos + 1]);
                currentPos += 2;

                var frameData = new byte[frameSize];
                Array.Copy(tagData, currentPos, frameData, 0, frameSize);

                FrameHandler mapping = FrameHandlers[frameId];
                if (mapping != null)
                {
                    Id3Frame frame = mapping.Decoder(frameData);
                    tag.AddUntypedFrame(frame);
                }

                currentPos += frameSize;
            }

            return(tag);
        }
示例#34
0
        private static bool HandleRequest(byte[] frame, NetworkStream networkStream)
        {
            try
            {
                IFrameHandler frameHandler = new FrameHandler(networkStream);

                ICodification <HeaderStructure> header = new Header();

                var logManager = new SenderService();
                int logSize    = 0;

                HeaderStructure headerStructure = header.Decode(frame);

                if (!IsHeaderStructureOk(headerStructure, frame))
                {
                    return(true);
                }

                var command = headerStructure.CommandType;

                switch (command)
                {
                case CommandType.AG:
                    ServerGenreManager.UploadGenre(frame);
                    ServerResponse(frameHandler, "Genre Uploaded");
                    logSize = 2;
                    break;

                case CommandType.BG:
                    ServerGenreManager.DeleteGenre(frame);
                    ServerResponse(frameHandler, "Genre Deleted");
                    logSize = 1;
                    break;

                case CommandType.MG:
                    ServerGenreManager.ModifyGenre(frame);
                    ServerResponse(frameHandler, "Genre modified");
                    logSize = 3;
                    break;

                case CommandType.AP:
                    ServerMovieManager.Upload(frame);
                    ServerResponse(frameHandler, "Movie uploaded");
                    logSize = 3;
                    break;

                case CommandType.BP:
                    ServerMovieManager.Delete(frame);
                    ServerResponse(frameHandler, "Movie deleted");
                    logSize = 1;
                    break;

                case CommandType.MP:
                    ServerMovieManager.Modify(frame);
                    ServerResponse(frameHandler, "Movie updated");
                    logSize = 4;
                    break;

                case CommandType.AS:
                    ServerAsociationManager.AsociateGenreToMovie(frame);
                    ServerResponse(frameHandler, "Movie and genre associated");
                    logSize = 2;
                    break;

                case CommandType.DS:
                    ServerAsociationManager.DeAsociateGenreToMovie(frame);
                    ServerResponse(frameHandler, "Movie and genre deassociated");
                    logSize = 2;
                    break;

                case CommandType.AD:
                    ServerDirectorManager.UploadDirector(frame);
                    ServerResponse(frameHandler, "Director uploaded");
                    logSize = 4;
                    break;

                case CommandType.BD:
                    ServerDirectorManager.DeleteDirector(frame);
                    ServerResponse(frameHandler, "Director deleted");
                    logSize = 1;
                    break;

                case CommandType.MD:
                    ServerDirectorManager.ModifyDirector(frame);
                    ServerResponse(frameHandler, "Director updated");
                    logSize = 5;
                    break;

                case CommandType.SA:
                    string fileName = ServerMovieManager.SaveFile(frame, networkStream);
                    ServerResponse(frameHandler, "Sending file...@" + fileName);
                    ServerMovieManager.ReceiveFile(networkStream);
                    logSize = 2;
                    ServerResponse(frameHandler, "File sent");
                    break;

                case CommandType.DM:
                    ServerAsociationManager.AsociateDirectorToMovie(frame);
                    ServerResponse(frameHandler, "Director and movie asociated");
                    logSize = 2;
                    break;

                case CommandType.DD:
                    ServerAsociationManager.DeAsociateDirectorToMovie(frame);
                    ServerResponse(frameHandler, "Director and movie deasociated");
                    logSize = 2;
                    break;

                case CommandType.FF:
                    ServerResponse(frameHandler, "Goodbye");
                    logSize = 1;
                    return(false);

                default:
                    ServerResponse(frameHandler, "Formato de trama invalido vuelva a enviar");
                    break;
                }
                logManager.CreateLog(command.ToString().ToUpper(), frame, logSize);
                return(true);
            }
            catch (Exception ex)
            {
                var logManager = new SenderService();
                logManager.CreateLog("EX", frame, 1);
                if (ex is FormatException || ex is ArgumentException)
                {
                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    ServerResponse(frameHandler, "La trama recibida fue invalida");
                }
                else if (ex is IndexOutOfRangeException)
                {
                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    ServerResponse(frameHandler, "El objeto solicitado en el Data esta mal construido");
                }
                else if (ex is BussinesLogicException || ex is AsociatedClassException)
                {
                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    ServerResponse(frameHandler, ex.Message);
                }
                else if (ex is DataBaseException || ex is EntityBeingModifiedException)
                {
                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    ServerResponse(frameHandler, ex.Message);
                }
                else
                {
                    IFrameHandler frameHandler = new FrameHandler(networkStream);
                    ServerResponse(frameHandler, "Ha ocurrido un error inesperado vuelva a mandar su trama");
                }
                return(true);
            }
        }