private void HandleButtonEvents(OuyaSDK.OuyaPlayer p, OuyaSDK.KeyEnum b, OuyaSDK.InputAction bs)
    {
        if (enabled && NGUITools.GetActive(gameObject))
        {
            // Ignoring P to allow any player to use the menu
            if (bs.Equals(OuyaSDK.InputAction.KeyDown))
            {
                switch (b)
                {
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        OnKey(KeyCode.UpArrow);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        OnKey(KeyCode.DownArrow);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        OnKey(KeyCode.LeftArrow);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        OnKey(KeyCode.RightArrow);
                        break;
                }
            }

            if (b == activateButton && gameObject == UICamera.selectedObject)
            {
                SendMessage("OnPress", bs.Equals(OuyaSDK.InputAction.KeyDown), SendMessageOptions.DontRequireReceiver);
            }
        }
    }
Esempio n. 2
0
 public static float GetAxis(string ouyaMapping, OuyaSDK.OuyaPlayer player)
 {
     switch (ouyaMapping)
     {
         case "LB":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_LB, player);
         case "LT":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_LT, player);
         case "LX":
             return GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_X, player);
         case "LY":
             return GetAxis(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, player);
         case "RB":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_RB, player);
         case "RT":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_RT, player);
         case "RX":
             return GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_X, player);
         case "RY":
             return GetAxis(OuyaSDK.KeyEnum.AXIS_RSTICK_Y, player);
         case "DL":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, player);
         case "DR":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, player);
         case "DU":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_DPAD_UP, player);
         case "DD":
             return GetAxis(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, player);
         default:
             return 0f;
     }
 }
 protected KeyCode CommonGetUnityKeyCode(int buttonNum, OuyaSDK.OuyaPlayer player)
 {
     string keyCode = CommonGetKeyString(buttonNum, player);
     if (string.IsNullOrEmpty(keyCode))
     {
         return (KeyCode)(-1);
     }
     OuyaKeyCode key = (OuyaKeyCode)Enum.Parse(typeof(OuyaKeyCode), keyCode);
     return (KeyCode)(int)key;
 }
 protected string CommonGetKeyString(int buttonNum, OuyaSDK.OuyaPlayer player)
 {
     switch (player)
     {
         case OuyaSDK.OuyaPlayer.none:
             return string.Format("JoystickButton{0}", buttonNum);
         default:
             return string.Format("Joystick{0}Button{1}", ((int)player), buttonNum);
     }
 }
 protected bool HasKeyCode(OuyaSDK.KeyEnum[] supportedCodes, OuyaSDK.KeyEnum keyCode)
 {
     foreach (OuyaSDK.KeyEnum item in supportedCodes)
     {
         if (item == keyCode)
         {
             return true;
         }
     }
     return false;
 }
 public static float GetAxisRaw(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
 {
     if (OuyaSDK.m_EnableUnityInput)
     {
         return GetAxisWithDelegate(keyCode, player, Input.GetAxisRaw);
     }
     else
     {
         return 0f;
     }
 }
    /// <summary>
    /// Wrap Unity's method
    /// </summary>
    /// <param name="inputName"></param>
    /// <returns></returns>
    public static float GetAxis(string inputName, OuyaSDK.OuyaPlayer player)
    {
        #if !UNITY_EDITOR && !UNITY_STANDALONE_OSX && !UNITY_STANDALONE_WIN && !UNITY_STANDALONE_LINUX
        switch (inputName)
        {
            case "LT":
                return OuyaInputManager.getPlayerKeyState(player).m_axisLeftTrigger;
            case "RT":
                return OuyaInputManager.getPlayerKeyState(player).m_axisRightTrigger;
            case "RX":
                return OuyaInputManager.getPlayerKeyState(player).m_axisRightStickX;
            case "RY":
                return OuyaInputManager.getPlayerKeyState(player).m_axisRightStickY;
            case "LX":
                return OuyaInputManager.getPlayerKeyState(player).m_axisLeftStickX;
            case "LY":
                return -OuyaInputManager.getPlayerKeyState(player).m_axisLeftStickY;
        }
        return 0f;
        #else
        string axisName = string.Empty;
        int invertFactor = GetInvertedFactor(GetControllerType(player), inputName);
        switch (inputName)
        {
            case "LT":
                axisName = OuyaInputManager.GetInput(player, AxisTypes.Horizontal, AnalogTypes.LTRT);
                break;
            case "RT":
                axisName = OuyaInputManager.GetInput(player, AxisTypes.Vertical, AnalogTypes.LTRT);
                break;
            case "RX":
                axisName = OuyaInputManager.GetInput(player, AxisTypes.Horizontal, AnalogTypes.Right);
                break;
            case "RY":
                axisName = OuyaInputManager.GetInput(player, AxisTypes.Vertical, AnalogTypes.Right);
                break;
            case "LX":
                axisName = OuyaInputManager.GetInput(player, AxisTypes.Horizontal, AnalogTypes.Left);
                break;
            case "LY":
                axisName = OuyaInputManager.GetInput(player, AxisTypes.Vertical, AnalogTypes.Left);
                break;
        }
        if (!string.IsNullOrEmpty(axisName))
        {
            return invertFactor * Input.GetAxis(axisName);
        }
        return 0f;

        #endif
    }
Esempio n. 8
0
    public static float GetAxis(OuyaSDK.KeyEnum keyCode)
    {
        float axisValue = 0f;
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player1) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player2) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player3) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player4) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player5) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player6) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player7) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player8) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player9) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player10) );
        axisValue = GreaterValue(axisValue, SuperInputMapper.GetAxis(keyCode, OuyaSDK.OuyaPlayer.player11) );

        return axisValue;
    }
Esempio n. 9
0
    /// <summary>
    /// Destroys the audio object (using <see cref="ObjectPoolController"/> if pooling is enabled)
    /// </summary>
    public void DestroyAudioObject()
    {
        if (IsPlaying())
        {
            _Stop();
        }

#if OUYA_PAUSE_SYSTEM
        OuyaSDK.unregisterPauseListener(this);
        OuyaSDK.unregisterResumeListener(this);
#endif

        //Debug.Log( "Destroy:" + _audioSource.clip.name );
#if AUDIO_TOOLKIT_DEMO
        GameObject.Destroy(gameObject);
#else
        ObjectPoolController.Destroy(gameObject);
#endif
        _IsInactive = true;
    }
Esempio n. 10
0
    void Start()
    {
        Input.ResetInputAxes();
        Application.targetFrameRate = 60;
        DontDestroyOnLoad(transform.gameObject);

        #region Init OUYA

        try
        {
            //Initialize OuyaSDK with your developer ID
            //Get your developer_id from the ouya developer portal @ http://developer.ouya.tv
            OuyaSDK.initialize(DEVELOPER_ID);
        }
        catch (System.Exception ex)
        {
            Debug.LogError(string.Format("Failed to initialize OuyaSDK exception={0}", ex));
        }

        #endregion
    }
    /// <summary>
    /// Wrap Unity's method
    /// </summary>
    /// <param name="inputName"></param>
    /// <returns></returns>
    public static bool GetButton(string inputName, OuyaSDK.OuyaPlayer player)
    {
        switch (inputName)
        {
            case "SYS": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonSystem;
            case "DPC": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonDPadCenter;
            case "DPD": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonDPadDown;
            case "DPL": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonDPadLeft;
            case "DPR": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonDPadRight;
            case "DPU": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonDPadUp;
            case "O": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonO;
            case "U": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonU;
            case "Y": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonY;
            case "A": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonA;
            case "LT": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonLT;
            case "RT": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonRT;
            case "LB": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonLB;
            case "RB": //arbitrary name and mapping
                return OuyaInputManager.getPlayerKeyState(player).m_buttonRB;
            case "L3":
                return OuyaInputManager.getPlayerKeyState(player).m_buttonL3;
            case "R3":
                return OuyaInputManager.getPlayerKeyState(player).m_buttonR3;
        }

        return false;
    }
Esempio n. 12
0
 public bool GetAxisInverted(OuyaSDK.KeyEnum keyCode)
 {
     #if !UNITY_EDITOR && UNITY_ANDROID
     switch (keyCode)
     {
         case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
             return false;
         case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
             return false;
         case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
             return false;
         case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
             return false;
         case OuyaSDK.KeyEnum.BUTTON_LT:
             return false;
         case OuyaSDK.KeyEnum.BUTTON_RT:
             return false;
         default:
             return false;
     }
     #else
     switch (keyCode)
     {
         case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
             return false;
         case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
             return true;
         case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
             return true;
         case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
             return false;
         case OuyaSDK.KeyEnum.BUTTON_LT:
             return false;
         case OuyaSDK.KeyEnum.BUTTON_RT:
             return false;
         default:
             return false;
     }
     #endif
 }
    void OnGUI()
    {
        int x = 300;

        for (int index = 1; index <= 4; ++index)
        {
            if (GUI.Button(new Rect(x, 60, 50, 30), string.Format("JOY{0}", index)))
            {
                OuyaExampleCommon.Player = (OuyaSDK.OuyaPlayer)index;
                UpdatePlayerButtons();
            }
            x += 52;
        }

        x = 300;
        for (int index = 5; index <= 8; ++index)
        {
            if (GUI.Button(new Rect(x, 100, 50, 30), string.Format("JOY{0}", index)))
            {
                OuyaExampleCommon.Player = (OuyaSDK.OuyaPlayer)index;
                UpdatePlayerButtons();
            }
            x += 52;
        }

        if (GUI.Button(new Rect(300, 140, 200, 20), m_inputToggle ? "[Toggle Unity Input]" : "Toggle Unity Input"))
        {
            m_inputToggle = !m_inputToggle;
            OuyaSDK.enableUnityInput(m_inputToggle);
        }

        /*
         * // prototyping
         * GUILayout.BeginHorizontal();
         * GUILayout.Space(600);
         * m_useSDKForInput = GUILayout.Toggle(m_useSDKForInput, "Use OuyaSDK Mappings and Unity Input", GUILayout.MinHeight(45));
         * GUILayout.EndHorizontal();
         */
    }
    private void Awake()
    {
        m_activity = new OuyaUnityActivity(UnityPlayer.currentActivity);

#if PERFORMANCE_TEST_MEASURE_LATENCY
        ThreadStart ts     = new ThreadStart(TestWorker);
        Thread      thread = new Thread(ts);
        thread.Start();
#endif

        OuyaSDK.registerJoystickCalibrationListener(this);
        OuyaSDK.registerMenuAppearingListener(this);
        OuyaSDK.registerPauseListener(this);
        OuyaSDK.registerResumeListener(this);

        m_backgroundBlack = new Texture2D(1, 1);
        m_backgroundBlack.SetPixel(0, 0, Color.black);
        m_backgroundBlack.Apply();

        m_guiSkin = ScriptableObject.CreateInstance <GUISkin>();
        m_guiSkin.label.normal.textColor  = Color.white;
        m_guiSkin.label.normal.background = m_backgroundBlack;

        StringBuilder sb = new StringBuilder();
        foreach (int button in Buttons)
        {
            Setup(button);

            string label;
            SetLabel(out label, button);

            if (!string.IsNullOrEmpty(label))
            {
                sb.Append(label);
                sb.Append(" ");
            }
            m_label = "Hello from Unity: " + sb.ToString();
        }
    }
Esempio n. 15
0
    public void RequestReceiptsOnSuccess(List <OuyaSDK.Receipt> receipts)
    {
        m_status = "RequestReceiptsOnSuccess";
        m_receipts.Clear();
        foreach (OuyaSDK.Receipt receipt in receipts)
        {
            m_receipts.Add(receipt);
        }

        // if a receipt was found, cache the receipt
        if (receipts.Count > 0)
        {
            // cache receipt for offline use
            OuyaSDK.putGameData("FULL_GAME_UNLOCK", "1");
        }
        // if receipt was removed, delete the cached receipt
        else
        {
            // delete cached receipt
            OuyaSDK.putGameData("FULL_GAME_UNLOCK", "0");
        }
    }
Esempio n. 16
0
    private void Awake()
    {
        OuyaSDK.registerContentInitializedListener(this);
        OuyaSDK.registerContentDeleteListener(this);
        OuyaSDK.registerContentDownloadListener(this);
        OuyaSDK.registerContentInstalledSearchListener(this);
        OuyaSDK.registerContentPublishedSearchListener(this);
        OuyaSDK.registerContentPublishListener(this);
        OuyaSDK.registerContentSaveListener(this);
        OuyaSDK.registerContentUnpublishListener(this);
        OuyaSDK.registerResumeListener(this);

        if (null != m_textureScreenshots)
        {
            m_bitmapScreenshots = new Bitmap[m_textureScreenshots.Length];
            for (int index = 0; index < m_textureScreenshots.Length; ++index)
            {
                Texture2D texture = m_textureScreenshots[index];

                Debug.Log("Encoding PNG from texture bytes");

                // make texture readable
                byte[] buffer = texture.EncodeToPNG();
                if (null == buffer ||
                    buffer.Length == 0)
                {
                    Debug.LogError("Failed to encode png");
                }
                else
                {
                    Debug.Log("Converting bytes to bitmap");
                    m_bitmapScreenshots[index] = BitmapFactory.decodeByteArray(buffer, 0, buffer.Length);
                }
            }
        }

        ResetFocus();
    }
    private bool GetButton(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        // Check if we want the *new* SDK input or the example common
        if (m_useSDKForInput)
        {
            // Get the Unity KeyCode for the Unity API
            KeyCode unityKeyCode = OuyaSDK.GetUnityKeyCode(keyCode, player);

            // Check if the KeyCode is valid
            if (unityKeyCode != (KeyCode)(-1))
            {
                //use the Unity API to get the button value
                bool buttonState = Input.GetKey(unityKeyCode);
                return(buttonState);
            }
        }
        // moving the common code into the sdk via aboveUs
        else
        {
            return(OuyaExampleCommon.GetButton(keyCode, player));
        }
        return(false);
    }
Esempio n. 18
0
 public void ContentUnpublishListenerOnError(string jsonData)
 {
     using (JSONObject jsonObject = new JSONObject(jsonData))
     {
         int    code   = 0;
         string reason = string.Empty;
         if (jsonObject.has("code"))
         {
             code = jsonObject.getInt("code");
         }
         if (jsonObject.has("reason"))
         {
             reason = jsonObject.getString("reason");
         }
         foreach (OuyaSDK.IContentUnpublishListener listener in OuyaSDK.getContentUnpublishListeners())
         {
             if (null != listener)
             {
                 listener.ContentUnpublishOnError(null, code, reason);
             }
         }
     }
 }
Esempio n. 19
0
    private void OnGUI()
    {
        try
        {
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(OuyaSDK.isIAPInitComplete() ? "IAP is initialized" : "IAP initializing...");
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer UUID: {0}", m_gamerUUID));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer User Name: {0}", m_gamerUserName));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Gamer Info", GUILayout.Height(40)))
            {
                OuyaSDK.fetchGamerInfo();
            }
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Put Game Data", GUILayout.Height(40)))
            {
                OuyaSDK.putGameData(KEY_PUT_GAME_DATA, "This is a test!!!!");
            }
            if (GUILayout.Button("Get Game Data", GUILayout.Height(40)))
            {
                m_gameData = OuyaSDK.getGameData(KEY_PUT_GAME_DATA);
            }
            GUILayout.Label(string.Format("GameData: {0}", m_gameData));
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Products:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Products", GUILayout.Height(40)))
            {
                List <OuyaSDK.Purchasable> productIdentifierList =
                    new List <OuyaSDK.Purchasable>();

                foreach (string productId in Purchasables)
                {
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = productId;
                    productIdentifierList.Add(purchasable);
                }

                OuyaSDK.requestProductList(productIdentifierList);
            }
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Product product in m_products)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("Name={0}", product.name));
                GUILayout.Label(string.Format("Price={0}", product.priceInCents));
                GUILayout.Label(string.Format("Identifier={0}", product.identifier));

                if (GUILayout.Button("Purchase"))
                {
                    Debug.Log(string.Format("Purchase Identifier: {0}", product.identifier));
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = product.identifier;
                    OuyaSDK.requestPurchase(purchasable);
                }

                GUILayout.EndHorizontal();
            }

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Receipts:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Receipts", GUILayout.Height(40)))
            {
                OuyaSDK.requestReceiptList();
            }
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Receipt receipt in m_receipts)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("Price={0}", receipt.priceInCents));
                GUILayout.Label(string.Format("Identifier={0}", receipt.identifier));

                GUILayout.EndHorizontal();
            }
        }
        catch (System.Exception)
        {
        }
    }
Esempio n. 20
0
 public void RequestUnityAwake(string ignore)
 {
     OuyaSDK.initialize(DEVELOPER_ID);
 }
    /// <summary>
    /// This needs to be setup for each joystick type being supported.  I have not setup the USB controller or the I:Droid:CON  
    /// For the most part you won't need to modify this section.
    /// </summary>
    /// <param name="player"></param>
    /// <param name="axis"></param>
    /// <param name="joystick"></param>
    /// <param name="atype"></param>
    /// <returns></returns>
    private static string CheckInput(OuyaSDK.OuyaPlayer player, AxisTypes axis, JoystickType joystick, AnalogTypes atype)
    {
        //Debug.Log(string.Format("Player:{0} Axis:{1} Joystick:{2} AnalogType:{3}",player,axis,joystick,atype));
        //REF: player1, DPadH, PS3, Dpad

        //Note:  It is your responsibility to make sure that  Unity Inputs are setup correctly or you will get an error on your controller.

        int axisNumber=0;

        switch (joystick)
        {
            case JoystickType.ps3:
                //Get The Joystick name from  Project Settings --> Input for Controllers
                #region PS3 Controller
                if (atype.Equals(AnalogTypes.Left))
                {
                    ControllerType cType = OuyaControllerMapping.getController("ps3");
                    if (axis.Equals(AxisTypes.Horizontal)) { axisNumber = cType.leftAnalogH; } else { axisNumber = cType.leftAnalogV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.Right))
                {
                    ControllerType cType = OuyaControllerMapping.getController("ps3");
                    if (axis.Equals(AxisTypes.Horizontal)) { axisNumber = cType.rightAnalogH; } else { axisNumber = cType.rightAnalogV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.DPad))
                {
                    ControllerType cType = OuyaControllerMapping.getController("ps3");
                    if (axis.Equals(AxisTypes.DPadH)) { axisNumber = cType.dpadH; } else { axisNumber = cType.dpadV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                #endregion
                break;

            case JoystickType.xbox:
                #region xbox ( usually 360 / untested with normal xbox )
                if (atype.Equals(AnalogTypes.Left))
                {
                    ControllerType cType = OuyaControllerMapping.getController("xbox360");
                    if (axis.Equals(AxisTypes.Horizontal)) { axisNumber = cType.leftAnalogH; } else { axisNumber = cType.leftAnalogV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.Right))
                {
                    ControllerType cType = OuyaControllerMapping.getController("xbox360");
                    if (axis.Equals(AxisTypes.Horizontal)) { axisNumber = cType.rightAnalogH; } else { axisNumber = cType.rightAnalogV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.DPad))
                {
                    ControllerType cType = OuyaControllerMapping.getController("xbox360");
                    if (axis.Equals(AxisTypes.DPadH)) { axisNumber = cType.dpadH; } else { axisNumber = cType.dpadV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.LTRT))
                {
                    ControllerType cType = OuyaControllerMapping.getController("xbox360");
                    axisNumber = cType.triggers;
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                #endregion
                break;

            case JoystickType.ouya:
                #region OUYA - Not Tested until I get a bluetooth dongle
                if (atype.Equals(AnalogTypes.Left))
                {
                    ControllerType cType = OuyaControllerMapping.getController("ouya");
                    if (axis.Equals(AxisTypes.Horizontal)) { axisNumber = cType.leftAnalogH; } else { axisNumber = cType.leftAnalogV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.Right))
                {
                    ControllerType cType = OuyaControllerMapping.getController("ouya");
                    if (axis.Equals(AxisTypes.Horizontal)) { axisNumber = cType.rightAnalogH; } else { axisNumber = cType.rightAnalogV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                else if (atype.Equals(AnalogTypes.DPad))
                {
                    ControllerType cType = OuyaControllerMapping.getController("ouya");
                    if (axis.Equals(AxisTypes.DPadH)) { axisNumber = cType.dpadH; } else { axisNumber = cType.dpadV; }
                    return "Joy" + (int)player + " Axis " + axisNumber.ToString();
                }
                #endregion
                break;
        }

        //most likely we will never reach here, but If we do Return basic Horizontal Axis
        return "Horizontal";
    }
    public static void HandleButtonEvent(OuyaSDK.InputButtonEvent inputEvent)
    {
        OuyaInputManager.OuyaKeyState keyState = OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer());
        if (null == keyState)
        {
            return;
        }

        switch (inputEvent.getKeyAction())
        {
            case OuyaSDK.InputAction.KeyDown:
            case OuyaSDK.InputAction.KeyUp:
                switch (inputEvent.getKeyCode())
                {
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        keyState.m_buttonO = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        keyState.m_buttonU = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        keyState.m_buttonY = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        keyState.m_buttonA = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        keyState.m_buttonLB = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        keyState.m_buttonLT = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        keyState.m_buttonL3 = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        keyState.m_buttonRB = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        keyState.m_buttonRT = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        keyState.m_buttonR3 = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                        keyState.m_buttonSystem = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        keyState.m_buttonDPadDown = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        keyState.m_buttonDPadLeft = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        keyState.m_buttonDPadRight = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        keyState.m_buttonDPadUp = inputEvent.getKeyAction() == OuyaSDK.InputAction.KeyDown;
                        break;
                    default:
                        return;
                }
                OuyaButtonEvent.buttonPressEvent(inputEvent.getPlayer(), inputEvent.getKeyCode(), inputEvent.getKeyAction());
                break;
        }
    }
 public static OuyaInputManager.OuyaKeyState getPlayerKeyState(OuyaSDK.OuyaPlayer player)
 {
     OuyaInputManager.OuyaKeyState keyState = keyStates.Find(delegate(OuyaInputManager.OuyaKeyState key) { return key.player.Equals(player); });
     return keyState;
 }
Esempio n. 24
0
 void Awake()
 {
     OuyaSDK.registerPauseListener(this);
     OuyaSDK.registerResumeListener(this);
 }
Esempio n. 25
0
 public void InvokeOuyaPurchaseOnSuccess(OuyaSDK.Product product)
 {
     foreach (OuyaSDK.IPurchaseListener listener in OuyaSDK.getPurchaseListeners())
     {
         if (null != listener)
         {
             listener.OuyaPurchaseOnSuccess(product);
         }
     }
 }
 public static bool GetButton(int buttonNum, OuyaSDK.OuyaPlayer player)
 {
     return GetButton(buttonNum, player, Input.GetKey);
 }
 void Purchase()
 {
     Debug.Log("buying stuff");
     OuyaSDK.requestPurchase(m_products[0].getIdentifier());
 }
Esempio n. 28
0
    void Awake()
    {
        OuyaSDK.registerMenuButtonUpListener(this);
        OuyaSDK.registerMenuAppearingListener(this);
        OuyaSDK.registerPauseListener(this);
        OuyaSDK.registerResumeListener(this);

        OuyaInputManager.OuyaButtonEvent.addButtonEventListener(HandleButtonEvent);

        //Get our character controller;
        controller = GetComponent <CharacterController>();

#if UNITY_EDITOR
        //If you find that your controller does not work properly in the Unity Editor, You can add a custom controller mapping as seen below.

        /* Here is some code to find keycodes for devices that are mapped to your InputManager.asset
         * List<OuyaGameObject.Device> devices = OuyaInputManager.GetDevices();
         * for (int iPlayerJoystick = 1; iPlayerJoystick <= devices.Count; iPlayerJoystick++)
         * {
         *  OuyaGameObject.Device device = devices.Find(delegate(OuyaGameObject.Device d) { return (null == d || null == devices) ? false : (d.id == devices[iPlayerJoystick - 1].id); });
         *  for (int i = 0; i < 13; i++)
         *  {
         *      //Controller Name:
         *      string fireBtnName = string.Format("Joystick{0}Button{1}", iPlayerJoystick, i);
         *      KeyCode keycode = (KeyCode)System.Enum.Parse(typeof(KeyCode), fireBtnName);
         *      Debug.Log(string.Format("Button Name:{0}, Keycode:{1}",keycode,int(keycode));
         *  }
         * }
         */

        //Custom Controller Mapping.
        List <ButtonMap> buttonMap = new List <ButtonMap>();
        ControllerType   xbox360   = new ControllerType();
        xbox360.name         = "xbox360";
        xbox360.leftAnalogH  = 1;
        xbox360.leftAnalogV  = 2;
        xbox360.rightAnalogH = 4;
        xbox360.rightAnalogV = 5;
        xbox360.triggers     = 3;
        xbox360.dpadH        = 6;
        xbox360.dpadV        = 7;
        JoystickType joystickType = JoystickType.xbox;

        //Start XBOX 360 ButtonMap ( only has 13 buttons )
        buttonMap.Add(new ButtonMap(joystickType, 370, OuyaSDK.KeyEnum.BUTTON_O));
        buttonMap.Add(new ButtonMap(joystickType, 371, OuyaSDK.KeyEnum.BUTTON_A));
        buttonMap.Add(new ButtonMap(joystickType, 372, OuyaSDK.KeyEnum.BUTTON_U));
        buttonMap.Add(new ButtonMap(joystickType, 373, OuyaSDK.KeyEnum.BUTTON_Y));

        buttonMap.Add(new ButtonMap(joystickType, 374, OuyaSDK.KeyEnum.BUTTON_LB));
        buttonMap.Add(new ButtonMap(joystickType, 375, OuyaSDK.KeyEnum.BUTTON_RB));
        buttonMap.Add(new ButtonMap(joystickType, 376, OuyaSDK.KeyEnum.BUTTON_SELECT));
        buttonMap.Add(new ButtonMap(joystickType, 377, OuyaSDK.KeyEnum.BUTTON_START));
        buttonMap.Add(new ButtonMap(joystickType, 378, OuyaSDK.KeyEnum.BUTTON_L3));
        buttonMap.Add(new ButtonMap(joystickType, 379, OuyaSDK.KeyEnum.BUTTON_R3));
        buttonMap.Add(new ButtonMap(joystickType, 380, OuyaSDK.KeyEnum.BUTTON_LT));     //Doesn't Show up
        buttonMap.Add(new ButtonMap(joystickType, 381, OuyaSDK.KeyEnum.BUTTON_RT));     //Doesn't Show up
        buttonMap.Add(new ButtonMap(joystickType, 382, OuyaSDK.KeyEnum.BUTTON_SYSTEM)); //Dowsn't Show up

        /*
         * //4 button dpad mappings
         * buttonMap.Add(new ButtonMap(joystickType, 13, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT));
         * buttonMap.Add(new ButtonMap(joystickType, 14, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT));
         * buttonMap.Add(new ButtonMap(joystickType, 15, OuyaSDK.KeyEnum.BUTTON_DPAD_UP));
         * buttonMap.Add(new ButtonMap(joystickType, 16, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN));
         */

        //controllers.Add(xbox360.name,xbox360)
        //OuyaControllerMapping.RegisterCustomControllerMapping(xbox360, buttonMap); //duplicate of existing
#endif
    }
 void PurchaseDiscount()
 {
     Debug.Log("buying discounted stuff");
     OuyaSDK.requestPurchase(m_products[1].getIdentifier());
 }
Esempio n. 30
0
    void Update()
    {
        //new button press detection
        //upPressed = OuyaExampleCommon.GetButtonDown (OuyaSDK.KeyEnum.BUTTON_DPAD_UP, Index);
        upPressed = OuyaExampleCommon.GetButtonDown(OuyaSDK.KeyEnum.BUTTON_DPAD_UP, Index);

        if (!lastUpPressed && upPressed)
        {
            //if it wasnt pressed last time but it is now
            lastUpPressed = true;         //log that it is pressed now for the next cycle
            upPressed     = true;         //signal new button press
        }
        else
        {
            lastUpPressed = upPressed;     //log the current state for next cycle
            upPressed     = false;         //signal no new button press
        }

        //downPressed = OuyaExampleCommon.GetButtonDown (OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, Index);
        downPressed = OuyaExampleCommon.GetButtonDown(OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, Index);

        if (!lastDownPressed && downPressed)
        {
            //if it wasnt pressed last time but it is now
            lastDownPressed = true;         //log that it is pressed now for the next cycle
            downPressed     = true;         //signal new button press
        }
        else
        {
            lastDownPressed = downPressed;   //log the current state for next cycle
            downPressed     = false;         //signal no new button press
        }

        //new joystick tilt detection
        //get the raw tilts to bools
        if (OuyaExampleCommon.GetAxisRaw(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, Index) < -L_STICK_DEADZONE)
        {
            lJoyUp = true;
        }
        else
        {
            lJoyUp = false;
        }
        if (OuyaExampleCommon.GetAxisRaw(OuyaSDK.KeyEnum.AXIS_LSTICK_Y, Index) > L_STICK_DEADZONE)
        {
            lJoyDown = true;
        }
        else
        {
            lJoyDown = false;
        }

        //evaluate new tilts
        if (!lastLJoyUp && lJoyUp)
        {
            //if it wasnt up last time but it is now
            lastLJoyUp = true;         //log that it is up now for the next cycle
            lJoyUp     = true;         //signal new up tilt
        }
        else
        {
            lastLJoyUp = lJoyUp;        //log the current state for next cycle
            lJoyUp     = false;         //signal no new joystick tilt
        }

        if (!lastLJoyDown && lJoyDown)
        {
            //if it wasnt up last time but it is now
            lastLJoyDown = true;         //log that it is up now for the next cycle
            lJoyDown     = true;         //signal new joystick tilt
        }
        else
        {
            lastLJoyDown = lJoyDown;      //log the current state for next cycle
            lJoyDown     = false;         //signal no new joystick tilt
        }

        //select button
        //selectPressed = OuyaExampleCommon.GetButtonDown (OuyaSDK.KeyEnum.BUTTON_O, Index);
        selectPressed = OuyaExampleCommon.GetButtonDown(OuyaSDK.KeyEnum.BUTTON_O, Index);

        //exit shortcut
        if (OuyaExampleCommon.GetButtonDown(OuyaSDK.KeyEnum.BUTTON_A, Index))
        {
            Application.LoadLevel("Main Menu");
        }


        //what to do if a choice is selected
        if (selectPressed)
        {
            OuyaSDK.Purchasable toBeBought = new OuyaSDK.Purchasable();
            switch (selectedChoice)
            {
            case 0:
                toBeBought.productId = "1";
                OuyaSDK.requestPurchase(toBeBought);

                break;

            case 1:
                toBeBought.productId = "2";
                OuyaSDK.requestPurchase(toBeBought);
                break;

            case 2:
                toBeBought.productId = "5";
                OuyaSDK.requestPurchase(toBeBought);
                break;

            case 3:
                Application.LoadLevel("Main Menu");
                break;

            default:
                break;
            }
        }

        //handling choice movement
        if ((upPressed || lJoyUp) && (selectedChoice > 0))
        {
            selectedChoice -= 1;
        }

        if ((downPressed || lJoyDown) && (selectedChoice < (choices.Length - 1)))
        {
            selectedChoice += 1;
        }
    }
    private void OnGUI()
    {
        try
        {
            Color oldColor = GUI.backgroundColor;

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(OuyaSDK.isIAPInitComplete() ? "IAP is initialized" : "IAP initializing...");
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer UUID: {0}", m_gamerUUID));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer User Name: {0}", m_gamerUserName));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnGetGamerInfo)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Get Gamer Info", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnGetGamerInfo &&
                 OuyaSDK.OuyaInput.GetButtonDown(0, OuyaController.BUTTON_O)))
            {
                OuyaSDK.fetchGamerInfo();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnPutGameData)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Put Game Data", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnPutGameData &&
                 OuyaSDK.OuyaInput.GetButtonDown(0, OuyaController.BUTTON_O)))
            {
                OuyaSDK.putGameData(KEY_PUT_GAME_DATA, "This is a test!!!!");
            }
            GUI.backgroundColor = oldColor;

            if (m_focusManager.SelectedButton == m_btnGetGameData)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Get Game Data", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnGetGameData &&
                 OuyaSDK.OuyaInput.GetButtonDown(0, OuyaController.BUTTON_O)))
            {
                m_gameData = OuyaSDK.getGameData(KEY_PUT_GAME_DATA);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.Label(string.Format("GameData: {0}", m_gameData));
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Products:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnGetProducts)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Get Products", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnGetProducts &&
                 OuyaSDK.OuyaInput.GetButtonDown(0, OuyaController.BUTTON_O)))
            {
                List <OuyaSDK.Purchasable> productIdentifierList =
                    new List <OuyaSDK.Purchasable>();

                foreach (string productId in Purchasables)
                {
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = productId;
                    productIdentifierList.Add(purchasable);
                }

                OuyaSDK.requestProductList(productIdentifierList);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Product product in m_products)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("Name={0}", product.name));
                GUILayout.Label(string.Format("Price={0}", product.localPrice));
                GUILayout.Label(string.Format("Identifier={0}", product.identifier));

                if (m_focusManager.SelectedButton == product)
                {
                    GUI.backgroundColor = Color.red;
                }
                if (GUILayout.Button("Purchase") ||
                    (m_focusManager.SelectedButton == product &&
                     OuyaSDK.OuyaInput.GetButtonDown(0, OuyaController.BUTTON_O)))
                {
                    Debug.Log(string.Format("Purchase Identifier: {0}", product.identifier));
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = product.identifier;
                    OuyaSDK.requestPurchase(purchasable);
                }
                GUI.backgroundColor = oldColor;

                GUILayout.EndHorizontal();
            }

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Receipts:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnGetReceipts)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Get Receipts", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnGetReceipts &&
                 OuyaSDK.OuyaInput.GetButtonDown(0, OuyaController.BUTTON_O)))
            {
                OuyaSDK.requestReceiptList();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Receipt receipt in m_receipts)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("Price={0}", receipt.priceInCents));
                GUILayout.Label(string.Format("Identifier={0}", receipt.identifier));

                GUILayout.EndHorizontal();
            }
        }
        catch (System.Exception)
        {
        }
    }
Esempio n. 32
0
 void OnDestroy()
 {
     OuyaSDK.unregisterRequestGamerInfoListener(this);
 }
Esempio n. 33
0
 public void SendIAPInitComplete(string ignore)
 {
     OuyaSDK.setIAPInitComplete();
 }
 public static bool GetButtonDown(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
 {
     return GetButtonWithDelegate(keyCode, player, Input.GetKeyDown);
 }
Esempio n. 35
0
 public static string GetKeyCode(int buttonNum, OuyaSDK.OuyaPlayer player)
 {
     switch (player)
     {
         case OuyaSDK.OuyaPlayer.none:
             return string.Format("JoystickButton{0}", buttonNum);
         default:
             return string.Format("Joystick{0}Button{1}", ((int)player), buttonNum);
     }
 }
Esempio n. 36
0
    private void OnGUI()
    {
        try
        {
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Is IAP Init Complete={0}", OuyaSDK.isIAPInitComplete()));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Debug Initialize SDK", GUILayout.Height(40)))
            {
                OuyaSDK.initialize(OuyaGameObject.Singleton.DEVELOPER_ID,
                                   OuyaGameObject.Singleton.UseLegacyInput);
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);

            GUILayout.Label("GetProductList:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Clear Get Product List", GUILayout.Height(40)))
            {
                OuyaSDK.OuyaJava.JavaClearGetProductList();
            }
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Debug Get Product List", GUILayout.Height(40)))
            {
                OuyaSDK.OuyaJava.JavaDebugGetProductList();
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            foreach (string productId in OuyaGameObject.Singleton.Purchasables)
            {
                if (GUILayout.Button(string.Format("Add: {0}", productId), GUILayout.Height(40)))
                {
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable(productId);
                    OuyaSDK.OuyaJava.JavaAddGetProduct(purchasable);
                }
            }
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Products:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Products", GUILayout.Height(40)))
            {
                List <OuyaSDK.Purchasable> productIdentifierList =
                    new List <OuyaSDK.Purchasable>();

                foreach (string productId in OuyaGameObject.Singleton.Purchasables)
                {
                    productIdentifierList.Add(new OuyaSDK.Purchasable(productId));
                }

                OuyaSDK.requestProductList(productIdentifierList);
            }
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Product product in m_products)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("Name={0}", product.getName()));
                GUILayout.Label(string.Format("Price={0}", product.getPriceInCents()));
                GUILayout.Label(string.Format("Identifier={0}", product.getIdentifier()));

                if (GUILayout.Button("Purchase"))
                {
                    Debug.Log(string.Format("Purchase Identifier: {0}", product.getIdentifier()));
                    OuyaSDK.requestPurchase(product.getIdentifier());
                }

                GUILayout.EndHorizontal();
            }

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Receipts:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Receipts", GUILayout.Height(40)))
            {
                OuyaSDK.requestReceiptList();
            }
            GUILayout.EndHorizontal();
        }
        catch (System.Exception)
        {
        }
    }
    void OnGUI()
    {
        GUI.skin = m_guiSkin;

        GUILayout.Space(40);

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
        GUILayout.FlexibleSpace();
        GUILayout.Label(string.Format("isRunningOnOUYASupportedHardware: {0}",
                                      OuyaSDK.isRunningOnOUYASupportedHardware()),
                        GUILayout.Width(300));
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();

        GUILayout.Space(5);

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));

        GUILayout.FlexibleSpace();

        int deviceId = PlayerNum;

        GUILayout.BeginVertical();
        GUILayout.Label("OUYA Axises:");
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_LS_X", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_LS_X)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_LS_Y", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_LS_Y)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_RS_X", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_RS_X)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_RS_Y", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_RS_Y)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_L2", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_L2)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.AXIS_R2", OuyaSDK.OuyaInput.GetAxis(deviceId, OuyaController.AXIS_R2)));
        GUILayout.EndVertical();

        GUILayout.FlexibleSpace();

        GUILayout.BeginVertical();
        GUILayout.Label("OUYA Buttons:");
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_O", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_O)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_U", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_U)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_Y", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_Y)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_A", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_A)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_L1", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_L1)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_R1", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_R1)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_L3", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_L3)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_R3", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_R3)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_UP", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_UP)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_DOWN", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_DOWN)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_RIGHT", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_RIGHT)));
        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_DPAD_LEFT", OuyaSDK.OuyaInput.GetButton(deviceId, OuyaController.BUTTON_DPAD_LEFT)));

        if (OuyaSDK.OuyaInput.GetButtonDown(deviceId, OuyaController.BUTTON_MENU))
        {
            m_menuDetected = DateTime.Now + TimeSpan.FromSeconds(1);
        }

        GUILayout.Label(string.Format("{0}={1}", "OuyaController.BUTTON_MENU", DateTime.Now < m_menuDetected));
        GUILayout.EndVertical();

        GUILayout.FlexibleSpace();

        GUI.skin = null;
        GUILayout.BeginVertical();
        for (int index = 0; index < OuyaController.MAX_CONTROLLERS; ++index)
        {
            if (GUILayout.Button(string.Format(PlayerNum == index ? "[JOY{0}]{1}" : "JOY{0}{1}", index, OuyaSDK.OuyaInput.IsControllerConnected(index) ? " |=" : " |X"), GUILayout.Height(60)))
            {
                PlayerNum = index;
                UpdatePlayerButtons();
            }
        }
        GUILayout.EndVertical();

        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Hide Cursor"))
        {
            OuyaController.showCursor(false);
        }

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));

        GUILayout.FlexibleSpace();

        GUI.skin = m_guiSkin;
        GUILayout.BeginHorizontal(GUILayout.Width(300));
        GUILayout.Label("Controllers:");
        GUILayout.BeginVertical();
        GUILayout.Label(string.Format("{0}={1}", 1, m_controller1));
        GUILayout.Label(string.Format("{0}={1}", 2, m_controller2));
        GUILayout.Label(string.Format("{0}={1}", 3, m_controller3));
        GUILayout.Label(string.Format("{0}={1}", 4, m_controller4));
        GUILayout.Label(string.Format("{0}={1}", 5, m_controller5));
        GUILayout.Label(string.Format("{0}={1}", 6, m_controller6));
        GUILayout.Label(string.Format("{0}={1}", 7, m_controller7));
        GUILayout.Label(string.Format("{0}={1}", 8, m_controller8));
        GUILayout.EndVertical();
        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));

        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal();

        GUILayout.Label(m_label);

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        GUILayout.FlexibleSpace();

        GUILayout.EndHorizontal();

        int buttonId = 0;

        GUILayout.FlexibleSpace();
        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
        GUILayout.FlexibleSpace();
        for (; buttonId < 7 && buttonId < m_controllerButtons.Count; ++buttonId)
        {
            Texture2D texture = m_controllerButtons[buttonId];
            if (null != texture)
            {
                GUILayout.Button(texture);
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.FlexibleSpace();

        GUILayout.BeginHorizontal(GUILayout.Width(Screen.width));
        GUILayout.FlexibleSpace();
        for (; buttonId < m_controllerButtons.Count; ++buttonId)
        {
            Texture2D texture = m_controllerButtons[buttonId];
            if (null != texture)
            {
                GUILayout.Button(texture);
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.FlexibleSpace();

        GUI.skin = null;
    }
 public ButtonMap(JoystickType type, int buttonID, OuyaSDK.KeyEnum button)
 {
     this.type = type;
     this.ButtonID = buttonID;
     this.button = button;
 }
 /// <summary>
 /// Get Devices
 /// </summary>
 /// <returns>List<Device></returns>
 public static void HandleAxisEvent(OuyaSDK.InputAxisEvent inputEvent)
 {
     switch (inputEvent.getAxisCode())
     {
         case OuyaSDK.AxisEnum.AXIS_LSTICK_X:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisLeftStickX = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_LSTICK_Y:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisLeftStickY = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_RSTICK_X:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisRightStickX = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_RSTICK_Y:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisRightStickY = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_LTRIGGER:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisLeftTrigger = inputEvent.getAxis();
             break;
         case OuyaSDK.AxisEnum.AXIS_RTRIGGER:
             OuyaInputManager.getPlayerKeyState(inputEvent.getPlayer()).m_axisRightTrigger = inputEvent.getAxis();
             break;
     }
 }
Esempio n. 40
0
 public static bool GetButton(int buttonNum, OuyaSDK.OuyaPlayer player)
 {
     string keyCode = GetKeyCode(buttonNum, player);
     if (string.IsNullOrEmpty(keyCode))
     {
         return false;
     }
     OuyaKeyCode key = (OuyaKeyCode)Enum.Parse(typeof(OuyaKeyCode), keyCode);
     return Input.GetKey((KeyCode)(int)key);
 }
    public static void SetButton(string inputName, OuyaSDK.OuyaPlayer player, bool state)
    {
        switch (inputName)
        {
            case "SYS": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonSystem = state;
                break;
            case "DPC": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonDPadCenter = state;
                break;
            case "DPD": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonDPadDown = state;
                break;
            case "DPL": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonDPadLeft = state;
                break;
            case "DPR": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonDPadRight = state;
                break;
            case "DPU": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonDPadUp = state;
                break;
            case "O": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonO = state;
                break;
            case "U": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonU = state;
                break;
            case "Y": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonY = state;
                break;
            case "A": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonA = state;
                break;
            case "LT": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonLT = state;
                break;
            case "RT": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonRT = state;
                break;
            case "LB": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonLB = state;
                break;
            case "RB": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonRB = state;
                break;
            case "L3": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonL3 = state;
                break;
            case "R3": //arbitrary name and mapping
                OuyaInputManager.getPlayerKeyState(player).m_buttonR3 = state;
                break;

        }
    }
Esempio n. 42
0
    public static bool GetButton(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        if (null == OuyaExampleCommon.Joysticks)
        {
            return false;
        }
        int playerIndex = (int) player - 1;
        if (playerIndex >= OuyaExampleCommon.Joysticks.Length)
        {
            return false;
        }

        string joystickName = OuyaExampleCommon.Joysticks[playerIndex];
        if (null == joystickName)
        {
            return false;
        }

        switch (joystickName.ToUpper())
        {
            case "HARMONIX ROCK BAND DRUMKIT":
                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_GREEN:
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_A:
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_RED:
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_B:
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_YELLOW:
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_Y:
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_BLUE:
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_X:
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_DRUMKIT_ORANGE:
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_BACK:
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(10, player);
                    case OuyaSDK.KeyEnum.BUTTON_START:
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(11, player);
                    case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(12, player);
                    default:
                        return false;
                }
            case "HARMONIX ROCK BAND GUITAR":
                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_GREEN:
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_RED:
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_YELLOW:
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_BLUE:
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_ORANGE:
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_LOWER:
                        return GetButton(13, player);
                    case OuyaSDK.KeyEnum.BUTTON_BACK:
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(10, player);
                    case OuyaSDK.KeyEnum.BUTTON_START:
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(11, player);
                    case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(12, player);
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_PICKUP:
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return false;
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_WHAMMI:
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return false;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetAxis(keyCode, player) < 0f;
                    default:
                        return false;
                }

            case "BROADCOM BLUETOOTH HID":
            case "MOGA PRO HID":
                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(7, player);
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(13, player);
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(14, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return GetAxis(keyCode, player) > 0f;
                    default:
                        return false;
                }

            case "OUYA GAME CONTROLLER":

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(5, player);
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(2, player);
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(7, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetButton(8, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetButton(9, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetButton(10, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetButton(11, player);
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return GetButton(12, player);
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return GetButton(13, player);
                    default:
                        return false;
                }

            case "XBOX 360 WIRELESS RECEIVER":

        #if !UNITY_EDITOR && UNITY_ANDROID

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(7, player);
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(13, player);
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(14, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetButton(2, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return GetAxis(keyCode, player) > 0f;
                    default:
                        return false;
                }
        #else
                if (Application.platform == RuntimePlatform.OSXEditor)
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.BUTTON_LB:
                            return GetButton(13, player);
                        case OuyaSDK.KeyEnum.BUTTON_RB:
                            return GetButton(14, player);
                        case OuyaSDK.KeyEnum.BUTTON_O:
                            return GetButton(16, player);
                        case OuyaSDK.KeyEnum.BUTTON_U:
                            return GetButton(18, player);
                        case OuyaSDK.KeyEnum.BUTTON_Y:
                            return GetButton(19, player);
                        case OuyaSDK.KeyEnum.BUTTON_A:
                            return GetButton(17, player);
                        case OuyaSDK.KeyEnum.BUTTON_L3:
                            return GetButton(11, player);
                        case OuyaSDK.KeyEnum.BUTTON_R3:
                            return GetButton(12, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                            return GetButton(5, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                            return GetButton(6, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                            return GetButton(7, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                            return GetButton(8, player);
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            return GetAxis(keyCode, player) > -1f;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            return GetAxis(keyCode, player) > -1f;
                        default:
                            return false;
                    }
                }
                else
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.BUTTON_LB:
                            return GetButton(4, player);
                        case OuyaSDK.KeyEnum.BUTTON_RB:
                            return GetButton(5, player);
                        case OuyaSDK.KeyEnum.BUTTON_O:
                            return GetButton(0, player);
                        case OuyaSDK.KeyEnum.BUTTON_U:
                            return GetButton(2, player);
                        case OuyaSDK.KeyEnum.BUTTON_Y:
                            return GetButton(3, player);
                        case OuyaSDK.KeyEnum.BUTTON_A:
                            return GetButton(1, player);
                        case OuyaSDK.KeyEnum.BUTTON_L3:
                            return GetButton(8, player);
                        case OuyaSDK.KeyEnum.BUTTON_R3:
                            return GetButton(9, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                            return GetAxis(keyCode, player) > 0f;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                            return GetAxis(keyCode, player) < 0f;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                            return GetAxis(keyCode, player) < 0f;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                            return GetAxis(keyCode, player) > 0f;
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            return GetAxis(keyCode, player) > 0f;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            return GetAxis(keyCode, player) > 0f;
                        default:
                            return false;
                    }
                }
        #endif

            case "CONTROLLER (AFTERGLOW GAMEPAD FOR XBOX 360)":
            case "CONTROLLER (ROCK CANDY GAMEPAD FOR XBOX 360)":
            case "CONTROLLER (XBOX 360 WIRELESS RECEIVER FOR WINDOWS)":
            case "MICROSOFT X-BOX 360 PAD":
            case "CONTROLLER (XBOX 360 FOR WINDOWS)":
            case "CONTROLLER (XBOX360 GAMEPAD)":
            case "XBOX 360 FOR WINDOWS (CONTROLLER)":
            case "MICROSOFT WIRELESS 360 CONTROLLER":

        #if !UNITY_EDITOR && UNITY_ANDROID

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(7, player);
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(13, player);
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(14, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return GetAxis(keyCode, player) > 0f;
                    default:
                        return false;
                }
        #else
                if (Application.platform == RuntimePlatform.OSXEditor)
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.BUTTON_LB:
                            return GetButton(13, player);
                        case OuyaSDK.KeyEnum.BUTTON_RB:
                            return GetButton(14, player);
                        case OuyaSDK.KeyEnum.BUTTON_O:
                            return GetButton(16, player);
                        case OuyaSDK.KeyEnum.BUTTON_U:
                            return GetButton(18, player);
                        case OuyaSDK.KeyEnum.BUTTON_Y:
                            return GetButton(19, player);
                        case OuyaSDK.KeyEnum.BUTTON_A:
                            return GetButton(17, player);
                        case OuyaSDK.KeyEnum.BUTTON_L3:
                            return GetButton(11, player);
                        case OuyaSDK.KeyEnum.BUTTON_R3:
                            return GetButton(12, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                            return GetButton(5, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                            return GetButton(6, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                            return GetButton(7, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                            return GetButton(8, player);
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            return GetAxis(keyCode, player) > -1f;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            return GetAxis(keyCode, player) > -1f;
                        default:
                            return false;
                    }
                }
                else
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.BUTTON_LB:
                            return GetButton(4, player);
                        case OuyaSDK.KeyEnum.BUTTON_RB:
                            return GetButton(5, player);
                        case OuyaSDK.KeyEnum.BUTTON_O:
                            return GetButton(0, player);
                        case OuyaSDK.KeyEnum.BUTTON_U:
                            return GetButton(2, player);
                        case OuyaSDK.KeyEnum.BUTTON_Y:
                            return GetButton(3, player);
                        case OuyaSDK.KeyEnum.BUTTON_A:
                            return GetButton(1, player);
                        case OuyaSDK.KeyEnum.BUTTON_L3:
                            return GetButton(8, player);
                        case OuyaSDK.KeyEnum.BUTTON_R3:
                            return GetButton(9, player);
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                            return GetAxis(keyCode, player) > 0f;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                            return GetAxis(keyCode, player) < 0f;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                            return GetAxis(keyCode, player) < 0f;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                            return GetAxis(keyCode, player) > 0f;
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            return GetAxis(keyCode, player) > 0f;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            return GetAxis(keyCode, player) > 0f;
                        default:
                            return false;
                    }
                }
        #endif

            case "": //the driver is reporting the controller as blank

        #if !UNITY_EDITOR && UNITY_ANDROID

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(7, player);
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(0, player);
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(3, player);
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(4, player);
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(1, player);
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(13, player);
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(14, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetAxis(keyCode, player) < 0f;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return GetAxis(keyCode, player) > 0f;
                    default:
                        return false;
                }
        #else
                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.BUTTON_LB:
                        return GetButton(13, player);
                    case OuyaSDK.KeyEnum.BUTTON_RB:
                        return GetButton(14, player);
                    case OuyaSDK.KeyEnum.BUTTON_O:
                        return GetButton(16, player);
                    case OuyaSDK.KeyEnum.BUTTON_U:
                        return GetButton(18, player);
                    case OuyaSDK.KeyEnum.BUTTON_Y:
                        return GetButton(19, player);
                    case OuyaSDK.KeyEnum.BUTTON_A:
                        return GetButton(17, player);
                    case OuyaSDK.KeyEnum.BUTTON_L3:
                        return GetButton(11, player);
                    case OuyaSDK.KeyEnum.BUTTON_R3:
                        return GetButton(12, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        return GetButton(5, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        return GetButton(6, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        return GetButton(7, player);
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        return GetButton(8, player);
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        return GetAxis(keyCode, player) > 0f;
                    case OuyaSDK.KeyEnum.BUTTON_SELECT:
                        return GetButton(10, player);
                    case OuyaSDK.KeyEnum.BUTTON_START:
                        return GetButton(9, player);
                    case OuyaSDK.KeyEnum.BUTTON_SYSTEM:
                        return GetButton(15, player);
                    default:
                        return false;
                }
        #endif
        }

        return false;
    }
 //Call this event ( trigger )
 public static void buttonPressEvent(OuyaSDK.OuyaPlayer player, OuyaSDK.KeyEnum button, OuyaSDK.InputAction buttonState)
 {
     if (ButtonsEvent != null)
     {
         ButtonsEvent(player, button, buttonState);
     }
 }
Esempio n. 44
0
 void Awake()
 {
     m_instance = this;
     OuyaSDK.enableUnityInput(true);
 }
Esempio n. 45
0
    private void OnGUI()
    {
        try
        {
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(OuyaSDK.isIAPInitComplete() ? "IAP is initialized" : "IAP initializing...");
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer UUID: {0}", m_gamerUUID));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Gamer UUID", GUILayout.Height(40)))
            {
                OuyaSDK.fetchGamerUUID();
            }
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Products:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Products", GUILayout.Height(40)))
            {
                List <OuyaSDK.Purchasable> productIdentifierList =
                    new List <OuyaSDK.Purchasable>();

                foreach (string productId in OuyaGameObject.Singleton.Purchasables)
                {
                    productIdentifierList.Add(new OuyaSDK.Purchasable(productId));
                }

                OuyaSDK.requestProductList(productIdentifierList);
            }
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Product product in m_products)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("Name={0}", product.getName()));
                GUILayout.Label(string.Format("Price={0}", product.getPriceInCents()));
                GUILayout.Label(string.Format("Identifier={0}", product.getIdentifier()));

                if (GUILayout.Button("Purchase"))
                {
                    Debug.Log(string.Format("Purchase Identifier: {0}", product.getIdentifier()));
                    OuyaSDK.requestPurchase(product.getIdentifier());
                }

                GUILayout.EndHorizontal();
            }

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Receipts:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (GUILayout.Button("Get Receipts", GUILayout.Height(40)))
            {
                OuyaSDK.requestReceiptList();
            }
            GUILayout.EndHorizontal();
        }
        catch (System.Exception)
        {
        }
    }
Esempio n. 46
0
 void Awake()
 {
     OuyaSDK.registerMenuAppearingListener(this);
     OuyaSDK.registerPauseListener(this);
     OuyaSDK.registerResumeListener(this);
 }
Esempio n. 47
0
    private void OnGUI()
    {
        try
        {
            Color oldColor = GUI.backgroundColor;

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnExit)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Exit", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnExit &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                m_status = "Exiting...";
                OuyaSDK.shutdown();
                Application.Quit();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btn720)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("720p", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btn720 &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                m_status = "Setting 1280x720...";
                Screen.SetResolution(1280, 720, true);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btn1080)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("1080p", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btn1080 &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                m_status = "Setting 1920x1080...";
                Screen.SetResolution(1920, 1080, true);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("IsRunningOnOUYAHardware: {0}", m_isRunningOnOUYAHardware));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("App Name: {0}", OuyaSDK.getStringResource("app_name")));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(OuyaSDK.isIAPInitComplete() ? "IAP is initialized" : "IAP initializing...");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("State: {0}", m_state));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Status: {0}", m_status));
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer UUID: {0}", m_gamerUUID));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer User Name: {0}", m_gamerUsername));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnRequestGamerInfo)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Request Gamer Info", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnRequestGamerInfo &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                m_status = "Requesting gamer info...";
                OuyaSDK.requestGamerInfo();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnPutGameData)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Put Game Data", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnPutGameData &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                OuyaSDK.putGameData(KEY_PUT_GAME_DATA, "This is a test!!!!");
            }
            GUI.backgroundColor = oldColor;

            if (m_focusManager.SelectedButton == m_btnGetGameData)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Get Game Data", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnGetGameData &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                m_gameData = OuyaSDK.getGameData(KEY_PUT_GAME_DATA);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.Label(string.Format("GameData: {0}", m_gameData));
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Products:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnRequestProducts)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Request Products", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnRequestProducts &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                List <OuyaSDK.Purchasable> productIdentifierList =
                    new List <OuyaSDK.Purchasable>();

                foreach (string productId in Purchasables)
                {
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = productId;
                    productIdentifierList.Add(purchasable);
                }

                m_status = "Requesting products...";
                OuyaSDK.requestProducts(productIdentifierList);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Product product in m_products)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(500);

                GUILayout.Label(string.Format("Name={0}", product.name));
                GUILayout.Label(string.Format("Price={0}", product.localPrice));
                GUILayout.Label(string.Format("Identifier={0}", product.identifier));

                GUILayout.FlexibleSpace();

                if (m_focusManager.SelectedButton == product)
                {
                    GUI.backgroundColor = Color.red;
                }
                if (GUILayout.Button("Request Purchase") ||
                    (m_focusManager.SelectedButton == product &&
                     OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
                {
                    m_status = "Requesting purchase...";
                    //Debug.Log(string.Format("Purchase Identifier: {0}", product.identifier));
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = product.identifier;
                    OuyaSDK.requestPurchase(purchasable);
                }
                GUI.backgroundColor = oldColor;

                GUILayout.EndHorizontal();
            }

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Receipts:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnRequestReceipts)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Request Receipts", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnRequestReceipts &&
                 OuyaSDK.OuyaInput.GetButtonUp(OuyaController.BUTTON_O)))
            {
                m_status = "Requesting receipts...";
                OuyaSDK.requestReceipts();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Receipt receipt in m_receipts)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("LocalPrice={0}", receipt.localPrice));
                GUILayout.Label(string.Format("Identifier={0}", receipt.identifier));

                GUILayout.EndHorizontal();
            }
        }
        catch (System.Exception)
        {
        }
    }
Esempio n. 48
0
 void OnDestroy()
 {
     OuyaSDK.unregisterMenuAppearingListener(this);
     OuyaSDK.unregisterPauseListener(this);
     OuyaSDK.unregisterResumeListener(this);
 }
Esempio n. 49
0
 public void RequestUnityAwake(string ignore)
 {
     OuyaSDK.initialize(m_developerId);
 }
 /// <summary>
 /// Wrap Unity's method
 /// </summary>
 /// <param name="inputName"></param>
 /// <returns></returns>
 public static bool GetButtonUp(string inputName, OuyaSDK.OuyaPlayer player)
 {
     // these will map to the Unity game's existing button names
     // the text cases are placeholders
     return !OuyaInputManager.GetButton(inputName, player);
 }
Esempio n. 51
0
 private void FixedUpdate()
 {
     OuyaSDK.UpdateJoysticks();
 }
 public static JoystickType GetControllerType(OuyaSDK.OuyaPlayer player)
 {
     // check the player to see what joystick type they have
     OuyaGameObject.Device device = OuyaGameObject.devices.Find(delegate(OuyaGameObject.Device d) { return (null == d) ? false : (d.player == player); });
     if (null == device)
     {
         return JoystickType.none;
     }
     return GetControllerType(device.name);
 }
 /// <summary>
 /// Builds a string to get the controller by player.
 /// </summary>
 /// <param name="player"></param>
 /// <param name="axis"></param>
 /// <param name="type"></param>
 /// <param name="atype"></param>
 /// <returns></returns>
 public static string GetInput(OuyaSDK.OuyaPlayer player, AxisTypes axis)
 {
     return GetInput(player, axis, AnalogTypes.none);
 }
    /// <summary>
    /// Builds a string to get the controller by player.
    /// </summary>
    /// <param name="player"></param>
    /// <param name="axis"></param>
    /// <param name="type"></param>
    /// <param name="atype"></param>
    /// <returns></returns>
    public static string GetInput(OuyaSDK.OuyaPlayer player, AxisTypes axis, AnalogTypes atype)
    {
        Vector2 point;
        JoystickType joystickType = GetControllerType(player);
        switch (joystickType)
        {
            case JoystickType.ps3:
                //Note We don't care if the axis is X or Y,  we just want to check for input from normalized.
                #region PS3 Controller
                point = new Vector2(Input.GetAxis(CheckInput(player, axis, JoystickType.ps3, AnalogTypes.Left)), Input.GetAxis(CheckInput(player, axis, JoystickType.ps3, AnalogTypes.Right)));
                if (point.x != 0f || point.y != 0f)
                {
                    return CheckInput(player, axis, JoystickType.ps3, atype);
                }
                if (atype.Equals(AnalogTypes.DPad)){
                    return CheckInput(player, axis, JoystickType.ps3, atype);
                }
                #endregion
                return string.Empty;

            case JoystickType.xbox:
                #region xbox360
                point = new Vector2(Input.GetAxis(CheckInput(player, axis, JoystickType.xbox, AnalogTypes.Left)), Input.GetAxis(CheckInput(player, axis, JoystickType.xbox, AnalogTypes.Right)));
                if (point.x != 0f || point.y != 0f)
                {
                    return CheckInput(player, axis, JoystickType.xbox, atype);
                }
                if (atype.Equals(AnalogTypes.DPad))
                {
                    return CheckInput(player, axis, JoystickType.xbox, atype);
                }
                if (atype.Equals(AnalogTypes.LTRT))
                {
                    return CheckInput(player, axis, JoystickType.xbox, atype);
                }
                #endregion
                return string.Empty;

            case JoystickType.ouya:
                point = new Vector2(Input.GetAxis(CheckInput(player, axis, JoystickType.ouya, AnalogTypes.Left)), Input.GetAxis(CheckInput(player, axis, JoystickType.ouya, AnalogTypes.Right)));
                if (point.x != 0f || point.y != 0f)
                {
                    return CheckInput(player, axis, JoystickType.ouya, atype);
                }
                if (atype.Equals(AnalogTypes.DPad))
                {
                    return CheckInput(player, axis, JoystickType.ouya, atype);
                }
                if (atype.Equals(AnalogTypes.LTRT))
                {
                    return CheckInput(player, axis, JoystickType.ouya, atype);
                }
                return string.Empty;

            default:
                return "Horizontal";
        }
    }
Esempio n. 55
0
    private void InputListener(OuyaSDK.InputAction inputAction, string jsonData)
    {
        #region Error Handling
        if (string.IsNullOrEmpty(jsonData))
        {
            Debug.LogError("OuyaSDK.InputListener: received invalid jsondata");
            return;
        }
        OuyaGameObject.InputData = jsonData;

        if (string.IsNullOrEmpty(OuyaSDK.getDeveloperId()))
        {
            Debug.LogError("SDK is not initialized");
            return;
        }

        //Debug.Log(string.Format("OuyaSDK.InputListener: inputAction={0} jsonData={1}", inputAction, jsonData));

        if (null == OuyaSDK.getInputAxisListener())
        {
            Debug.LogError("OuyaSDK.InputListener: Input axis listener is not set");
            return;
        }

        if (null == OuyaSDK.getInputAxisListener().onSuccess)
        {
            Debug.LogError("OuyaSDK.InputListener: Input axis listener onSuccess is not set");
            return;
        }

        if (null == OuyaSDK.getInputButtonListener())
        {
            Debug.LogError("OuyaSDK.InputListener: Input button listener is not set");
            return;
        }

        if (null == OuyaSDK.getInputButtonListener().onSuccess)
        {
            Debug.LogError("OuyaSDK.InputListener: Input button listener onSuccess is not set");
            return;
        }
        #endregion

        InputContainer container = JsonMapper.ToObject<InputContainer>(jsonData);
        OuyaSDK.InputAxisEvent inputAxis;
        OuyaSDK.InputButtonEvent inputButton;

        if (null == container)
        {
            return;
        }

        Device device = devices.Find(delegate(Device d) { return (null == d || null == container) ? false : (d.id == container.DeviceId); });
        if (null == device)
        {
            return;
        }

        if (!debugOff)
        {
            Debug.Log("Device:" + device.id + " Player" + device.player);
        }

        /// @todo: ADD_CONTROLLER_NAME

        switch (container.DeviceName.ToUpper())
        {
            #region OUYA Game Controller
            case "BLUETOOTH JOYSTICK":
            case "OUYA GAME CONTROLLER":
                switch (inputAction)
                {
                    #region KeyDown
                    case OuyaSDK.InputAction.KeyDown:
                        if (container.KeyEvent.mRepeatCount == 0 || container.KeyEvent.mRepeatCount > 5)
                        {
                            switch (container.KeyEvent.mKeyCode)
                            {
                                case 97:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 96:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 99:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 100:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 102:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 104:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 106:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_L3, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 103:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 105:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 107:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_R3, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 108:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 19:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 20:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 21:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 22:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 82:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                default:
                                    Debug.Log("Unhandled " + inputAction + ": " + container.KeyEvent.mKeyCode);
                                    break;
                            }
                        }
                        break;
                    #endregion

                    #region KeyUp
                    case OuyaSDK.InputAction.KeyUp:
                        switch (container.KeyEvent.mKeyCode)
                        {
                            case 97:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 96:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 99:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 100:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 102:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 104:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 106:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_L3, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 103:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 105:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 107:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_R3, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 108:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 19:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 20:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 21:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 22:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 82:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            default:
                                Debug.Log("Unhandled " + inputAction + ": " + container.KeyEvent.mKeyCode);
                                break;
                        }
                        break;
                    #endregion

                    #region GenericMotionEvent
                    case OuyaSDK.InputAction.GenericMotionEvent:
                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_X, container.AxisX, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_Y, container.AxisY, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_X, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_Y, container.AxisRZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, container.AxisLTrigger, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, container.AxisRTrigger, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        break;
                    #endregion
                }
                break;
            #endregion

            #region XBOX 360 WIRELESS RECEIVER & Microsoft X-Box 360 pad
            case "XBOX 360 WIRELESS RECEIVER":
            case "CONTROLLER (AFTERGLOW GAMEPAD FOR XBOX 360)":
            case "CONTROLLER (ROCK CANDY GAMEPAD FOR XBOX 360)":
            case "CONTROLLER (XBOX 360 WIRELESS RECEIVER FOR WINDOWS)":
            case "MICROSOFT X-BOX 360 PAD":
            case "CONTROLLER (XBOX 360 FOR WINDOWS)":
            case "CONTROLLER (XBOX360 GAMEPAD)":
            case "XBOX 360 FOR WINDOWS (CONTROLLER)":
                switch (inputAction)
                {
                    #region KeyDown
                    case OuyaSDK.InputAction.KeyDown:
                        if (container.KeyEvent.mRepeatCount == 0 || container.KeyEvent.mRepeatCount > 5)
                        {
                            if (container.KeyEvent.mKeyCode == 97)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 96)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 99)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 100)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 102)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 103)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 106)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_L3, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 107)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_R3, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                        }
                        break;
                    #endregion

                    #region KeyUp
                    case OuyaSDK.InputAction.KeyUp:
                        if (container.KeyEvent.mKeyCode == 97)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 96)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 99)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 100)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 102)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 103)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 106)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_L3, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 107)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_R3, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        break;
                    #endregion

                    #region GenericMotionEvent
                    case OuyaSDK.InputAction.GenericMotionEvent:
                        if (container.AxisHatY == -1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatY == 1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == -1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == 1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == 0 &&
                            container.AxisHatY == 0)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_CENTER, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_X, container.AxisX, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_Y, container.AxisY, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_X, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_Y, container.AxisRZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, container.AxisLTrigger, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, container.AxisRTrigger, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        /*
                        if (container.AxisLTrigger > 0.1f)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyDown, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            m_detectLTriggerDown = true;
                        }
                        else if (m_detectLTriggerDown)
                        {
                            m_detectLTriggerDown = false;
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyUp, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisRTrigger > 0.1f)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyDown, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            m_detectRTriggerDown = true;
                        }
                        else if (m_detectRTriggerDown)
                        {
                            m_detectRTriggerDown = false;
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyUp, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                         */

                        break;
                    #endregion
                }
                break;
            #endregion

            #region idroid:con
            case "IDROID:CON":
                switch (inputAction)
                {
                    #region KeyDown
                    case OuyaSDK.InputAction.KeyDown:
                        if (container.KeyEvent.mRepeatCount == 0 || container.KeyEvent.mRepeatCount > 5)
                        {
                            if (container.KeyEvent.mKeyCode == 189)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 188)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 190)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 191)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 192)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 193)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                        }
                        break;
                    #endregion

                    #region KeyUp
                    case OuyaSDK.InputAction.KeyUp:
                        if (container.KeyEvent.mKeyCode == 189)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 188)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 190)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 191)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 192)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 193)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        break;
                    #endregion

                    #region GenericMotionEvent
                    case OuyaSDK.InputAction.GenericMotionEvent:
                        if (container.AxisHatY == -1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatY == 1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == -1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == 1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == 0 &&
                            container.AxisHatY == 0)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_CENTER, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_X, container.AxisX, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_Y, container.AxisY, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_X, container.AxisRX, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_Y, container.AxisRY, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                        /*
                        if (container.AxisZ > 0.1f)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyDown, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            m_detectLTriggerDown = true;
                        }
                        else if (m_detectLTriggerDown)
                        {
                            m_detectLTriggerDown = false;
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyUp, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisZ < -0.1f)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyDown, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            m_detectRTriggerDown = true;
                        }
                        else if (m_detectRTriggerDown)
                        {
                            m_detectRTriggerDown = false;
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyUp, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                         */

                        break;
                    #endregion
                }
                break;
            #endregion

            #region PS3 MotionInJoy Game Controller ( Driver required )
            case "MOTIONINJOY VIRTUAL GAME CONTROLLER":
                switch (inputAction)
                {
                    #region KeyDown
                    case OuyaSDK.InputAction.KeyDown:
                        if (container.KeyEvent.mRepeatCount == 0 || container.KeyEvent.mRepeatCount > 5)
                        {
                            switch (container.KeyEvent.mKeyCode)
                            {
                                case 97:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 96:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 99:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 100:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 102:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 104:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 106:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_L3, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 103:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 105:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 107:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_R3, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 108:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                case 19:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 20:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 21:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;
                                case 22:
                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                    break;

                                default:
                                    Debug.Log("Unhandled " + inputAction + ": " + container.KeyEvent.mKeyCode);
                                    break;
                            }
                        }
                        break;
                    #endregion

                    #region KeyUp
                    case OuyaSDK.InputAction.KeyUp:
                        switch (container.KeyEvent.mKeyCode)
                        {
                            case 97:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 96:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 99:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 100:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 102:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 104:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 106:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_L3, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 103:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 105:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 107:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_R3, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 108:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            case 19:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 20:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 21:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;
                            case 22:
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                                break;

                            default:
                                Debug.Log("Unhandled " + inputAction + ": " + container.KeyEvent.mKeyCode);
                                break;
                        }
                        break;
                    #endregion

                    #region GenericMotionEvent
                    case OuyaSDK.InputAction.GenericMotionEvent:

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_X, container.AxisX, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_Y, container.AxisY, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_X, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_Y, container.AxisRZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        //inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER,container.AxisLTrigger, device.player);
                        //OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        //inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER,container.AxisRTrigger, device.player);
                        //OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                        /*
                        if (container.AxisLTrigger > 0.13f)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyDown, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            m_detectLTriggerDown = true;
                        }
                        else //if (m_detectLTriggerDown)
                        {
                            m_detectLTriggerDown = false;
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyUp, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            container.AxisLTrigger = 0; //override for deadzone
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisRTrigger > 0.13f)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyDown, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            m_detectRTriggerDown = true;
                        }
                        else //if (m_detectRTriggerDown)
                        {
                            m_detectRTriggerDown = false;
                            inputButton = new OuyaSDK.InputButtonEvent(OuyaSDK.InputAction.KeyUp, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            container.AxisRTrigger = 0; //override for deadzone
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }*/

                        break;
                    #endregion
                }
                break;
            #endregion

            #region SONY PLAYSTATION(R)3 CONTROLLER

            case "SONY PLAYSTATION(R)3 CONTROLLER":

                switch (inputAction)
                {

                    #region KeyDown

                    case OuyaSDK.InputAction.KeyDown:

                        if (container.KeyEvent.mRepeatCount == 0 || container.KeyEvent.mRepeatCount > 5)
                        {

                            switch (container.KeyEvent.mKeyCode)
                            {

                                case 21:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 22:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 19:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 108:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 107:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case -1:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case -2:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 106:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 20:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 102:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 104:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 105:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                case 103:

                                    inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);

                                    OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                    break;

                                default:

                                    Debug.Log("Unhandled " + inputAction + ": " + container.KeyEvent.mKeyCode);

                                    break;

                            }

                        }

                        break;

                    #endregion

                    #region KeyUp

                    case OuyaSDK.InputAction.KeyUp:

                        switch (container.KeyEvent.mKeyCode)
                        {

                            case 21:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 22:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 19:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 108:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 107:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case -1:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case -2:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 106:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 20:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_SYSTEM, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 102:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 104:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 105:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            case 103:

                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);

                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                break;

                            default:

                                Debug.Log("Unhandled " + inputAction + ": " + container.KeyEvent.mKeyCode);

                                break;

                        }

                        break;

                    #endregion

                    #region GenericMotionEvent

                    case OuyaSDK.InputAction.GenericMotionEvent:

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_X, container.AxisX, device.player);

                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_Y, container.AxisY, device.player);

                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_X, container.AxisZ, device.player);

                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_Y, container.AxisRZ, device.player);

                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        break;

                    #endregion

                }

                break;

            #endregion

            #region USB Controller
            case "USB CONTROLLER":
            default:
                switch (inputAction)
                {
                    #region KeyDown
                    case OuyaSDK.InputAction.KeyDown:
                        if (container.KeyEvent.mRepeatCount == 0 || container.KeyEvent.mRepeatCount > 5)
                        {
                            if (container.KeyEvent.mKeyCode == 97)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 98)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 99)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 96)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 100)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 101)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                            }
                            if (container.KeyEvent.mKeyCode == 102)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                switch (inputAction)
                                {
                                    case OuyaSDK.InputAction.KeyDown:
                                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, 1, device.player);
                                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                        break;
                                    case OuyaSDK.InputAction.KeyUp:
                                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, 0, device.player);
                                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                        break;
                                }
                            }
                            if (container.KeyEvent.mKeyCode == 103)
                            {
                                inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                                OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                                switch (inputAction)
                                {
                                    case OuyaSDK.InputAction.KeyDown:
                                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, -1, device.player);
                                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                        break;
                                    case OuyaSDK.InputAction.KeyUp:
                                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, 0, device.player);
                                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                        break;
                                }
                            }
                        }
                        break;
                    #endregion

                    #region KeyUp
                    case OuyaSDK.InputAction.KeyUp:
                        if (container.KeyEvent.mKeyCode == 97)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_A, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 98)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_O, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 99)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_U, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 96)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_Y, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 100)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LB, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 101)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RB, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }
                        if (container.KeyEvent.mKeyCode == 102)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_LT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                            switch (inputAction)
                            {
                                case OuyaSDK.InputAction.KeyDown:
                                    inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, 1, device.player);
                                    OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                    break;
                                case OuyaSDK.InputAction.KeyUp:
                                    inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, 0, device.player);
                                    OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                    break;
                            }
                        }
                        if (container.KeyEvent.mKeyCode == 103)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_RT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);

                            switch (inputAction)
                            {
                                case OuyaSDK.InputAction.KeyDown:
                                    inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, -1, device.player);
                                    OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                    break;
                                case OuyaSDK.InputAction.KeyUp:
                                    inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, 0, device.player);
                                    OuyaSDK.getInputAxisListener().onSuccess(inputAxis);
                                    break;
                            }
                        }
                        break;
                    #endregion

                    #region GenericMotionEvent
                    case OuyaSDK.InputAction.GenericMotionEvent:
                        if (container.AxisHatY == -1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_UP, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatY == 1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == -1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == 1)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        if (container.AxisHatX == 0 &&
                            container.AxisHatY == 0)
                        {
                            inputButton = new OuyaSDK.InputButtonEvent(inputAction, OuyaSDK.KeyEnum.BUTTON_DPAD_CENTER, device.player);
                            OuyaSDK.getInputButtonListener().onSuccess(inputButton);
                        }

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_X, container.AxisX, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LSTICK_Y, container.AxisY, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_X, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RSTICK_Y, container.AxisRZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_LTRIGGER, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        inputAxis = new OuyaSDK.InputAxisEvent(inputAction, OuyaSDK.AxisEnum.AXIS_RTRIGGER, container.AxisZ, device.player);
                        OuyaSDK.getInputAxisListener().onSuccess(inputAxis);

                        break;
                    #endregion
                }
                break;
            #endregion

        }
    }
 void GetReceipts()
 {
     OuyaSDK.requestReceiptList();
     Debug.Log("getting receipts");
 }
Esempio n. 57
0
 public static bool GetButton(OuyaSDK.KeyEnum keyCode)
 {
     return (
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player1) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player2) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player3) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player4) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player5) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player6) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player7) ||
                GetButton(keyCode, OuyaSDK.OuyaPlayer.player8));
 }
 public void OnSuccessInitializePlugin(string ignore)
 {
     Debug.Log("OUYA Plugin Initialized.");
     //success
     OuyaSDK.setIAPInitComplete();
 }
Esempio n. 59
0
    public static float GetAxis(OuyaSDK.KeyEnum keyCode, OuyaSDK.OuyaPlayer player)
    {
        if (null == OuyaExampleCommon.Joysticks)
        {
            return 0f;
        }
        int playerIndex = (int)player - 1;
        if (playerIndex >= OuyaExampleCommon.Joysticks.Length)
        {
            return 0f;
        }

        string joystickName = OuyaExampleCommon.Joysticks[playerIndex];
        if (null == joystickName)
        {
            return 0f;
        }

        bool invert = false;
        string axisName = string.Empty;

        switch (joystickName.ToUpper())
        {
            case "HARMONIX ROCK BAND DRUMKIT":
                return 0f;
            case "HARMONIX ROCK BAND GUITAR":
                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_PICKUP:
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        axisName = string.Format("Joy{0} Axis 3", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_WHAMMI:
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        axisName = string.Format("Joy{0} Axis 4", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        axisName = string.Format("Joy{0} Axis 7", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.HARMONIX_ROCK_BAND_GUITAR_STRUM:
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        axisName = string.Format("Joy{0} Axis 8", (int)player);
                        break;
                    default:
                        return 0f;
                }
                break;

            case "BROADCOM BLUETOOTH HID":
            case "MOGA PRO HID":
        #if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
                case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                    axisName = string.Format("Joy{0} Axis 1", (int)player);
                    break;
                case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 2", (int)player);
                    invert = true;
                    break;
                case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                    axisName = string.Format("Joy{0} Axis 3", (int)player);
                    break;
                case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 4", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_LT:
                    axisName = string.Format("Joy{0} Axis 8", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_RT:
                    axisName = string.Format("Joy{0} Axis 7", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;
                default:
                    return 0f;
            }
        #endif
                break;
            case "OUYA GAME CONTROLLER":

        #if !UNITY_EDITOR && UNITY_ANDROID
            switch (keyCode)
            {
                case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                    axisName = string.Format("Joy{0} Axis 1", (int)player);
                    break;
                case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 2", (int)player);
                    break;
                case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                    axisName = string.Format("Joy{0} Axis 3", (int)player);
                    break;
                case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                    axisName = string.Format("Joy{0} Axis 4", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_LT:
                    axisName = string.Format("Joy{0} Axis 5", (int)player);
                    break;
                case OuyaSDK.KeyEnum.BUTTON_RT:
                    axisName = string.Format("Joy{0} Axis 6", (int)player);
                    break;
                default:
                    return 0f;
            }
        #else
                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                        axisName = string.Format("Joy{0} Axis 1", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 2", (int)player);
                        invert = true;
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                        axisName = string.Format("Joy{0} Axis 4", (int)player);
                        invert = true;
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        axisName = string.Format("Joy{0} Axis 9", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        axisName = string.Format("Joy{0} Axis 10", (int)player);
                        break;
                    default:
                        return 0f;
                }
        #endif
                break;

            case "XBOX 360 WIRELESS RECEIVER":

        #if !UNITY_EDITOR && UNITY_ANDROID

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                        axisName = string.Format("Joy{0} Axis 1", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 2", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                        axisName = string.Format("Joy{0} Axis 3", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 4", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        axisName = string.Format("Joy{0} Axis 6", (int)player);
                        break;
                    default:
                        return 0f;
                }

        #else
                if (Application.platform == RuntimePlatform.OSXEditor)
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                            axisName = string.Format("Joy{0} Axis 1", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 2", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                            axisName = string.Format("Joy{0} Axis 3", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 4", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            axisName = string.Format("Joy{0} Axis 5", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            axisName = string.Format("Joy{0} Axis 6", (int)player);
                            break;
                        default:
                            return 0f;
                    }
                }
                else
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                            axisName = string.Format("Joy{0} Axis 1", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 2", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                            axisName = string.Format("Joy{0} Axis 4", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 5", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            axisName = string.Format("Joy{0} Axis 9", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            axisName = string.Format("Joy{0} Axis 10", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                            axisName = string.Format("Joy{0} Axis 6", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                            axisName = string.Format("Joy{0} Axis 6", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                            axisName = string.Format("Joy{0} Axis 7", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                            axisName = string.Format("Joy{0} Axis 7", (int)player);
                            break;
                        default:
                            return 0f;
                    }
                }
        #endif

                break;

            case "CONTROLLER (AFTERGLOW GAMEPAD FOR XBOX 360)":
            case "CONTROLLER (ROCK CANDY GAMEPAD FOR XBOX 360)":
            case "CONTROLLER (XBOX 360 WIRELESS RECEIVER FOR WINDOWS)":
            case "MICROSOFT X-BOX 360 PAD":
            case "CONTROLLER (XBOX 360 FOR WINDOWS)":
            case "CONTROLLER (XBOX360 GAMEPAD)":
            case "XBOX 360 FOR WINDOWS (CONTROLLER)":
            case "MICROSOFT WIRELESS 360 CONTROLLER":

        #if !UNITY_EDITOR && UNITY_ANDROID

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                        axisName = string.Format("Joy{0} Axis 1", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 2", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                        axisName = string.Format("Joy{0} Axis 3", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 4", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        axisName = string.Format("Joy{0} Axis 7", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        axisName = string.Format("Joy{0} Axis 8", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        axisName = string.Format("Joy{0} Axis 6", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        axisName = string.Format("Joy{0} Axis 6", (int)player);
                        break;
                    default:
                        return 0f;
                }

        #else
                if (Application.platform == RuntimePlatform.OSXEditor)
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                            axisName = string.Format("Joy{0} Axis 1", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 2", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                            axisName = string.Format("Joy{0} Axis 3", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 4", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            axisName = string.Format("Joy{0} Axis 5", (int)player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            axisName = string.Format("Joy{0} Axis 6", (int)player);
                            break;
                        default:
                            return 0f;
                    }
                }
                else
                {
                    switch (keyCode)
                    {
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                            axisName = string.Format("Joy{0} Axis 1", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 2", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                            axisName = string.Format("Joy{0} Axis 4", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                            axisName = string.Format("Joy{0} Axis 5", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_LT:
                            axisName = string.Format("Joy{0} Axis 9", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_RT:
                            axisName = string.Format("Joy{0} Axis 10", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                            axisName = string.Format("Joy{0} Axis 6", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                            axisName = string.Format("Joy{0} Axis 6", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                            axisName = string.Format("Joy{0} Axis 7", (int) player);
                            break;
                        case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                            axisName = string.Format("Joy{0} Axis 7", (int) player);
                            break;
                        default:
                            return 0f;
                    }
                }
        #endif

                break;

            case "": //the driver is reporting the controller as blank

        #if !UNITY_EDITOR && UNITY_ANDROID

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                        axisName = string.Format("Joy{0} Axis 1", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 2", (int)player);
                        invert = true;
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                        axisName = string.Format("Joy{0} Axis 3", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 4", (int)player);
                        invert = true;
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        axisName = string.Format("Joy{0} Axis 7", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        axisName = string.Format("Joy{0} Axis 8", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        axisName = string.Format("Joy{0} Axis 6", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        axisName = string.Format("Joy{0} Axis 6", (int)player);
                        break;
                    default:
                        return 0f;
                }

        #else

                switch (keyCode)
                {
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_X:
                        axisName = string.Format("Joy{0} Axis 1", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_LSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 2", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_X:
                        axisName = string.Format("Joy{0} Axis 3", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.AXIS_RSTICK_Y:
                        axisName = string.Format("Joy{0} Axis 4", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_LT:
                        axisName = string.Format("Joy{0} Axis 5", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_RT:
                        axisName = string.Format("Joy{0} Axis 6", (int)player);
                        break;
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_LEFT:
                        if (GetButton(7, player))
                        {
                            return -1;
                        }
                        else
                        {
                            return 0;
                        }
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_RIGHT:
                        if (GetButton(8, player))
                        {
                            return 1;
                        }
                        else
                        {
                            return 0;
                        }
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_UP:
                        if (GetButton(5, player))
                        {
                            return 1;
                        }
                        else
                        {
                            return 0;
                        }
                    case OuyaSDK.KeyEnum.BUTTON_DPAD_DOWN:
                        if (GetButton(6, player))
                        {
                            return -1;
                        }
                        else
                        {
                            return 0;
                        }
                    default:
                        return 0f;
                }
        #endif

                break;
        }
        if (string.IsNullOrEmpty(axisName))
        {
            return 0f;
        }
        if (invert)
        {
            return -Input.GetAxisRaw(axisName);
        }
        else
        {
            return Input.GetAxisRaw(axisName);
        }
    }
Esempio n. 60
0
    private void OnGUI()
    {
        try
        {
            Color oldColor = GUI.backgroundColor;

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnExit)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Exit", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnExit &&
                 IsPressed()))
            {
                m_status = "Exiting...";
                OuyaSDK.shutdown();
                Application.Quit();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btn720)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("720p", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btn720 &&
                 IsPressed()))
            {
                m_status = "Setting 1280x720...";
                Screen.SetResolution(1280, 720, true);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btn1080)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("1080p", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btn1080 &&
                 IsPressed()))
            {
                m_status = "Setting 1920x1080...";
                Screen.SetResolution(1920, 1080, true);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Input: Mouse: X={0} Y={1} Z={2}", Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z));
            GUILayout.Label(string.Format("Buttons: Left={0} Right={1} Middle={2}",
                                          Input.GetMouseButtonDown(0),
                                          Input.GetMouseButtonDown(1),
                                          Input.GetMouseButtonDown(2)));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Turret: Mouse: X={0} Y={1} Z={2}",
                                          OuyaSDK.OuyaInput.GetTurretMouseInfo(4),
                                          OuyaSDK.OuyaInput.GetTurretMouseInfo(5),
                                          OuyaSDK.OuyaInput.GetTurretMouseInfo(3)));
            int turretButtons = OuyaSDK.OuyaInput.GetTurretMouseInfo(0);
            GUILayout.Label(string.Format("Buttons: Left={0} Right={1} Middle={2}",
                                          (turretButtons & OuyaSDK.OuyaInput.TURRET_MOUSE_BUTTON_LEFT) != 0,
                                          (turretButtons & OuyaSDK.OuyaInput.TURRET_MOUSE_BUTTON_RIGHT) != 0,
                                          (turretButtons & OuyaSDK.OuyaInput.TURRET_BUTTON_MIDDLE) != 0));
            GUILayout.EndHorizontal();

            GUI.Label(new Rect(OuyaSDK.OuyaInput.GetTurretMouseInfo(4) - 5,
                               Screen.height - OuyaSDK.OuyaInput.GetTurretMouseInfo(5) - 5, 10, 20), "x");

#if false
            for (int i = 0; i < 6; ++i)
            {
                GUILayout.Label(string.Format("Turret Mouse Info: i={0} Value={1}", i, OuyaSDK.OuyaInput.GetTurretMouseInfo(i)));
            }
#endif

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("IsRunningOnOUYAHardware: {0}", m_isRunningOnOUYAHardware));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("App Name: {0}", OuyaSDK.getStringResource("app_name")));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(OuyaSDK.isIAPInitComplete() ? "IAP is initialized" : "IAP initializing...");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("State: {0}", m_state));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Status: {0}", m_status));
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer UUID: {0}", m_gamerUUID));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label(string.Format("Gamer User Name: {0}", m_gamerUsername));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnRequestGamerInfo)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Request Gamer Info", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnRequestGamerInfo &&
                 IsPressed()))
            {
                m_status = "Requesting gamer info...";
                OuyaSDK.requestGamerInfo();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnPutGameData)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Put Game Data", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnPutGameData &&
                 IsPressed()))
            {
                if (m_gameData == "")
                {
                    m_gameData = "This is a test!!!!";
                }
                OuyaSDK.putGameData(KEY_PUT_GAME_DATA, m_gameData);
            }
            GUI.backgroundColor = oldColor;

            if (m_focusManager.SelectedButton == m_btnGetGameData)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Get Game Data", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnGetGameData &&
                 IsPressed()))
            {
                m_gameData = OuyaSDK.getGameData(KEY_PUT_GAME_DATA);
            }
            GUI.backgroundColor = oldColor;
            m_gameData          = GUILayout.TextField(m_gameData, GUILayout.Width(300), GUILayout.Height(40));
            GUILayout.EndHorizontal();

            GUILayout.Label(string.Empty);
            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Products:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnRequestProducts)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Request Products", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnRequestProducts &&
                 IsPressed()))
            {
                List <OuyaSDK.Purchasable> productIdentifierList =
                    new List <OuyaSDK.Purchasable>();

                foreach (string productId in Purchasables)
                {
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = productId;
                    productIdentifierList.Add(purchasable);
                }

                m_status = "Requesting products...";
                OuyaSDK.requestProducts(productIdentifierList);
            }
            GUI.backgroundColor = oldColor;
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Product product in m_products)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(500);

                GUILayout.Label(string.Format("Name={0}", product.name));
                GUILayout.Label(string.Format("Price={0}", product.localPrice));
                GUILayout.Label(string.Format("Identifier={0}", product.identifier));

                GUILayout.FlexibleSpace();

                if (m_focusManager.SelectedButton == product)
                {
                    GUI.backgroundColor = Color.red;
                }
                if (GUILayout.Button("Request Purchase") ||
                    (m_focusManager.SelectedButton == product &&
                     IsPressed()))
                {
                    m_status = "Requesting purchase...";
                    //Debug.Log(string.Format("Purchase Identifier: {0}", product.identifier));
                    OuyaSDK.Purchasable purchasable = new OuyaSDK.Purchasable();
                    purchasable.productId = product.identifier;
                    OuyaSDK.requestPurchase(purchasable);
                }
                GUI.backgroundColor = oldColor;

                GUILayout.EndHorizontal();
            }

            GUILayout.Label(string.Empty);

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            GUILayout.Label("Receipts:");
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(400);
            if (m_focusManager.SelectedButton == m_btnRequestReceipts)
            {
                GUI.backgroundColor = Color.red;
            }
            if (GUILayout.Button("Request Receipts", GUILayout.Height(40)) ||
                (m_focusManager.SelectedButton == m_btnRequestReceipts &&
                 IsPressed()))
            {
                m_status = "Requesting receipts...";
                OuyaSDK.requestReceipts();
            }
            GUI.backgroundColor = oldColor;
            GUILayout.EndHorizontal();

            foreach (OuyaSDK.Receipt receipt in m_receipts)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Space(400);

                GUILayout.Label(string.Format("LocalPrice={0}", receipt.localPrice));
                GUILayout.Label(string.Format("Identifier={0}", receipt.identifier));

                GUILayout.EndHorizontal();
            }
        }
        catch (System.Exception)
        {
        }
    }