Exemple #1
0
    // Update is called once per frame
    void Update()
    {
        if (server.infoReceived.Count > 0)
        {
            KeyValuePair <int, COMData> data = server.infoReceived.Dequeue();

            if (data.Value.type == COMData.TYPE.TEXT)
            {
                COMData_text text = (COMData_text)data.Value;

                Log.Debug(data.Key + "|Message Received: " + text.GetText());
            }
            else
            if (data.Value.type == COMData.TYPE.IMAGE)
            {
                COMData_image image = (COMData_image)data.Value;

                if (imageReceived == null)
                {
                    imageReceived = new Texture2D(image.imageWidth, image.imageHeight);
                }
                else
                {
                    if (image.imageWidth != imageReceived.width || image.imageHeight != imageReceived.height)
                    {
                        imageReceived = new Texture2D(image.imageWidth, image.imageHeight);
                    }
                }
                imageReceived.LoadImage(image.data);

                Log.Debug("Image Received: " + imageReceived.width + " x " + imageReceived.height);

                GameObject.Find("RawImage").GetComponent <RawImage>().texture = imageReceived;

                //server.BroadcastMessage("READY");
            }
            else
            if (data.Value.type == COMData.TYPE.AUDIO)
            {
            }
        }
    }
Exemple #2
0
    //int framesSkiped = 30;
    //int counter = 0;
    //void FixedUpdate()
    //{
    //	if (sendImages)
    //	{
    //		counter++;
    //		if (counter == framesSkiped)
    //		{
    //			if (webCam == null)
    //				webCam = GameObject.Find("Main Camera").GetComponent<WebCam>().cam;

    //			if (textureTemp == null)
    //				textureTemp = new Texture2D(webCam.width, webCam.height);

    //			textureTemp.SetPixels32(webCam.GetPixels32());

    //			imageConverted = textureTemp.EncodeToPNG();

    //			client.SendInfo_image(imageConverted, textureTemp.width, textureTemp.height);

    //			counter = 0;
    //		}
    //	}
    //}
    // Update is called once per frame
    void Update()
    {
        if (client.infoReceived.Count > 0)
        {
            COMData data = client.infoReceived.Dequeue();

            if (data.type == COMData.TYPE.TEXT)
            {
                COMData_text text = (COMData_text)data;

                Log.Debug("Message Received: " + text.GetText());

                if (sendImages)
                {
                    if (text.GetText() == "READY")
                    {
                        SendImage();
                    }
                }
            }
            else
            if (data.type == COMData.TYPE.IMAGE)
            {
                COMData_image image = (COMData_image)data;

                Texture2D texture = new Texture2D(image.imageWidth, image.imageHeight);
                texture.LoadImage(image.data);
                texture.Apply();

                Log.Debug("Image Received: " + texture.width + " x " + texture.height);

                GameObject.Find("RawImage").GetComponent <RawImage>().texture = texture;
            }
            else
            if (data.type == COMData.TYPE.AUDIO)
            {
            }
        }
    }
    bool SendImage(COMData_image image)
    {
        string header =
            COMData.macroInit +
                image.type +
                COMData.macroSeparator +
                image.data.Length +
                COMData.macroSeparator +
                image.imageWidth +
                COMData.macroSeparator +
                image.imageHeight +
                COMData.macroEnd;

        Log.AddToDebug(header);
        socket.Send(System.Text.Encoding.UTF8.GetBytes (header));
        int bytesSent = socket.Send(image.data);

        return bytesSent == image.data.Length;
    }
    void ReceiveImage(int imageSize, int imageWidth, int imageHeight)
    {
        Log.AddToLog("Prepare to Resceive Image (size:" + imageSize + " width:" + imageWidth + " height:" + imageHeight + ")");
        COMData_image image = new COMData_image();
        image.imageWidth = imageWidth;
        image.imageHeight = imageHeight;
        image.data = new byte[imageSize];

        int bytesReceived = 0;

        while(bytesReceived != imageSize){
            int tmp = socket.Receive(image.data, bytesReceived, imageSize - bytesReceived, SocketFlags.None);
            bytesReceived += tmp;
            Log.AddToLog(bytesReceived + " bytes received so far (" + tmp + " this time) - (" + (imageSize - bytesReceived) + " left)");
        }

        Log.AddToDebug(bytesReceived + " bytes received");
        if(imageSize == bytesReceived){
            infoReceived.Enqueue(image);

            Log.AddToDebug("Image Received: " + image.data.Length);
        }
    }