Ejemplo n.º 1
0
            public void AddToPack(BabylonMS.BMSPack outputpack, MouseEventArgs e)
            {
                BabylonMS.BMSField btn = outputpack.GetFieldByName("BUTTON"); //Able to call more then one and add extend field array
                BabylonMS.BMSField X   = outputpack.GetFieldByName("X");
                BabylonMS.BMSField Y   = outputpack.GetFieldByName("Y");
                uint button            = (uint)e.Button;

                if (VirtualMouse)
                {
                    if ((e.Button != MouseButtons.None) && (buttonState.CompareTo("") == 0))
                    {
                        buttonState = "down";
                    }
                    button |= VRMainContentExporter.VRCEShared.CONST_MOUSEBUTTON_VIRTUAL;
                    if (buttonState.ToLower().CompareTo("down") == 0)
                    {
                        button |= VRMainContentExporter.VRCEShared.CONST_MOUSEBUTTON_DOWN;
                    }
                    btn.Value((int)button);
                    X.Value((UInt16)VirtualMouseX);
                    Y.Value((UInt16)VirtualMouseY);
                }
                else
                {
                    if (buttonState.ToLower().CompareTo("down") == 0)
                    {
                        button |= VRMainContentExporter.VRCEShared.CONST_MOUSEBUTTON_DOWN;
                    }
                    btn.Value((int)button);
                    X.Value((UInt16)(e.X - left));
                    Y.Value((UInt16)(e.Y - top));
                }
            }
Ejemplo n.º 2
0
        // az aktuális pack tartalom engedélyezve?
        public bool isEnabled(BabylonMS.BMSEventSessionParameter session)
        {
            BabylonMS.BMSPack pack = session.inputPack;
            if (selection.Count() < 1)
            {
                return(true);
            }                                          //if empty the selection list then accepted (all types)
            long cmd = pack.GetField(0).getValue(0);   //CMD

            if (cmd == VRCEShared.CONST_COMMAND_STORE) //now only one type of IMAGEPACK
            {
                long   hwnd  = pack.GetFieldByName("HWND").getValue(0);
                String group = pack.GetFieldByName("GROUP").GetUUIDValue(0);
                if (selection.Find(x => ((x.type == Selection.CONST_PACKTYPE_IMAGE) && (x.hwnd == hwnd) && (x.hwndgroupUUID == group))) != null)
                {
                    return(true);  //found STORE/HWND data
                }
                else
                {
                    if (selection.Find(x => ((x.type == Selection.CONST_PACKTYPE_IMAGE))) == null)
                    { //ebben a t\pusban egy'ltal'n nincs adat akkor elfogadva
                        return(true);
                    }
                }
                return(false);
            }
            //check mouse
            if (cmd == VRCEShared.CONST_IC_EVENT)
            {
                String mouseUUID = session.shipUUID;

                if (selection.Find(x => ((x.type == Selection.CONST_PACKTYPE_CONTROLLER) && (x.mouseUUID == mouseUUID))) != null)
                {
                    return(true);  //found stored data erre az egérre fel van iratkozva
                }
                else
                {
                    if (selection.Find(x => ((x.type == Selection.CONST_PACKTYPE_CONTROLLER))) == null)
                    { //ebben a t\pusban egy'ltal'n nincs adat akkor úgy vesszük fel van iratkozva rá
                        return(true);
                    }
                }
            }

            return(false);  //unknown pack CMD
        }
Ejemplo n.º 3
0
        //T O  A N D R O I D
        //public void sendNoticeToAndroidsNewContent(BabylonMS.BMSPack inputpack, StreamReader reader, StreamWriter writer)
        public void sendNoticeToAndroidsNewContent(BabylonMS.BMSEventSessionParameter session)
        {
            BabylonMS.BMSPack androidpack;
            foreach (AndroidDescriptor android in AndroidsList)
            {
                try
                {
                    if (android.isEnabled(session))  //adott android mit kaphat meg...
                    {
                        byte cmd = (byte)session.inputPack.GetFieldByName("CMD").getValue(0);
                        switch (cmd)
                        {
                        case VRCEShared.CONST_COMMAND_STORE:     //->CONST_ANDROIDCOMMAND_CHANGE_HWND
                            //Translate pack
                            androidpack = new BabylonMS.BMSPack();
                            session.inputPack.CopyTo(androidpack);
                            androidpack.GetFieldByName("CMD").clearValue().Value(VRCEShared.CONST_ANDROIDCOMMAND_CHANGE_HWND);      //ClearValue because addarray to next position (2.)
                            androidpack.AddField("PCKCNT", BabylonMS.BabylonMS.CONST_FT_INT8).Value((byte)android.sentPackCounter++);
                            BabylonMS.BabylonMS.TransferPacket(android.writer, androidpack, true, android.locker);
                            break;

                        case VRCEShared.CONST_ANDROIDCOMMAND_LOST_WINDOW:
                            androidpack = session.inputPack;
                            androidpack.AddField("PCKCNT", BabylonMS.BabylonMS.CONST_FT_INT8).Value((byte)android.sentPackCounter++);
                            BabylonMS.BabylonMS.TransferPacket(android.writer, androidpack, true, android.locker);
                            break;

                        case VRCEShared.CONST_IC_EVENT:     //->CONST_ANDROIDCOMMAND_IC_EVENT
                            androidpack = new BabylonMS.BMSPack();
                            session.inputPack.CopyTo(androidpack);
                            androidpack.GetFieldByName("CMD").clearValue().Value(VRCEShared.CONST_ANDROIDCOMMAND_IC_EVENT);      //ClearValue because addarray to next position (2.)
                            ScreenCapture focused = ScreenCapture.getFocused();
                            if (focused != null)
                            {
                                androidpack.AddField("LEFT", BabylonMS.BabylonMS.CONST_FT_INT16).Value((Int16)ScreenCapture.frame[0]);
                                androidpack.AddField("TOP", BabylonMS.BabylonMS.CONST_FT_INT16).Value((Int16)ScreenCapture.frame[1]);
                            }
                            androidpack.AddField("PCKCNT", BabylonMS.BabylonMS.CONST_FT_INT8).Value((byte)android.sentPackCounter++);
                            BabylonMS.BabylonMS.TransferPacket(android.writer, androidpack, true, android.locker);
                            break;
                        }
                    }
                }
                catch (Exception)
                {
                }
            }
        }