changes from carve
[vg.git] / src / vg / vg_input.h
index 4818d52ab099c3aa10813e93104522cdc00f7eb9..bbc2f84dad13c5dc43e86586044eb1eaa7d7c169 100644 (file)
@@ -122,6 +122,12 @@ int get_button_cross_device( int const id )
 
 void vg_update_inputs(void)
 {
+   if( !glfwGetGamepadState( GLFW_JOYSTICK_1, &vg_gamepad) )
+   {
+      vg_gamepad_ready = 0;
+   }
+   
+
        /* Update button inputs */
        for( int i = 0; i < vg_list_size( vg_button_binds ); i ++ )
        {
@@ -142,15 +148,28 @@ void vg_update_inputs(void)
        for( int i = 0; i < vg_list_size( vg_axis_binds ); i ++ )
        {
                struct axis_binding *binding = vg_axis_binds + i;
-               
-               if( vg_input_mode == k_EInputMode_pc )
-               {
-                       binding->value  = get_button_cross_device( binding->positive );
-                       binding->value -= get_button_cross_device( binding->negative );
-               }
-               else
-               {
-                       binding->value = vg_gamepad.axes[ binding->bind ];
-               }
+      binding->value = vg_gamepad.axes[ binding->bind ];
        }
 }
+
+static void vg_gamepad_init(void)
+{
+   for( int id = 0; id <= GLFW_JOYSTICK_LAST; id ++ )
+   {
+      if( glfwJoystickPresent( id ) )
+      {
+         vg_info( "Joystick found: '%s'\n", glfwGetJoystickName(id) );
+      }
+
+      if( glfwJoystickIsGamepad( id ) )
+      {
+         vg_gamepad_name = glfwGetGamepadName( id );
+         vg_success( "Gamepad with mapping registered: %s\n", vg_gamepad_name );
+         
+         vg_gamepad_ready = 1;
+         vg_gamepad_id = id;
+         
+         break;
+      }
+   }
+}