Exemplo n.º 1
0
        //F R O M   A N D R O I D
        //void InputFrame_fromAnAndroid(String partnerUUID, BabylonMS.BMSPack pack, TcpClient client, StreamReader reader, StreamWriter writer)
        void InputFrame_fromAnAndroid(BabylonMS.BMSEventSessionParameter session)
        {
            AndroidDescriptor thisAndroid = getAndroidDescriptor(session.client);

            //Nothing
            //- direct retrieve images
            //- setup mouse behaviour
            // etc... select requested images
            byte cmd = (byte)session.inputPack.GetField(0).getValue(0);

            switch (cmd)
            {
            case VRCEShared.CONST_ANDROIDCOMMAND_SUBSCRIBE_HWND:      //subscribe hwnd
                break;

            case VRCEShared.CONST_ANDROIDCOMMAND_SUBSCRIBE_TYPE:      //subscribe type (images,mouse,keyboard....
                break;

            case VRCEShared.CONST_ANDROIDCOMMAND_RETRIEVE_HWND:      //Direct retrieve a buffer element if need independently from refresh
            {
                //TODO szerintem nincs kész nem tesztelt...!

                //request from IMAGEBUFFER
                byte index = (byte)session.inputPack.GetField(1).getValue(0);
                //Request imagebuffer on tcp
                session.outputPack.Clear();
                session.outputPack.SetAttribs(BabylonMS.BabylonMS.CONST_AutosendOutputpack);                                        //A felkapcsolódás után az alábbi packot fogja elküldeni vissza
                                                                                                                                    //Így megspórolhatunk egy event-et és nem várunk semmire
                session.outputPack.AddField("CMD", BabylonMS.BabylonMS.CONST_FT_INT8).Value(VRCEShared.CONST_COMMAND_RETRIEVE_IDX); //TODO
                session.outputPack.AddField("IDX", BabylonMS.BabylonMS.CONST_FT_INT8).Value(index);
                session.TransferPacket(true);
            }
            break;

            case VRCEShared.CONST_ANDROIDCOMMAND_RETRIEVE_ALL:     //Elküldi a legfrissebb tartalmat minden feliratkozott képről.(feliratkozások minden Androidhoz előzőleg letárolva)
            {
                //Message_To_ImageBuffer_CONST_COMMAND_RETRIEVE(thisAndroid,session.);
                Message_To_ImageBuffer_CONST_COMMAND_RETRIEVE(thisAndroid, (BabylonMS.BMSEventSessionParameter)thisAndroid.bms_imagebuffer.Tag);
                Console.WriteLine("First retrieve for imagebuffer");
            }
            break;

            case VRCEShared.CONST_ANDROIDCOMMAND_FOCUS_WINDOW:      //Rááll egy ablakra
                //TODO kapcsolt hálózat? egyelőre ez a gép
            {
                String groupUUID = session.inputPack.GetFieldByName("GROUP").GetUUIDValue(0);
                if (BabylonMS.BabylonMS.compareUUID(Program.instanceUUID, groupUUID))
                {
                    //this instance
                    Int64       hwnd = session.inputPack.GetFieldByName("HWND").getValue(0);
                    HandlesList win  = HandlesList.getw(hwnd, HandlesList.windows);
                    if (win != null)
                    {
                        win.sc.BringToFront();
                    }
                }

                break;
            }
            }
        }