- Timestamp:
- 07/30/15 14:03:37 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/core/io_event.cc
r395 r447 8 8 9 9 #include "nv/core/logging.hh" 10 #include "nv/core/types.hh" 10 11 11 12 using namespace nv; … … 49 50 } 50 51 51 /************************************************************************52 52 void nv::register_io_types( type_database* db ) 53 53 { 54 type_enum key_enums[] = {55 # define NV_KEY( id, val ) type_enum( #id, id ),54 db->create_type<key_code>() 55 # define NV_KEY( id, val ) .value( #id, val ) 56 56 # include <nv/detail/key_list.inc> 57 57 # undef NV_KEY 58 }; 59 db->create_type<key_code>("key_code").enums( key_enums ); 58 ; 60 59 61 type_enum mouse_enums[] = {62 # define NV_MOUSE( id, val ) type_enum( #id, id ),60 db->create_type<mouse_code>() 61 # define NV_MOUSE( id, val ) .value( #id, val ) 63 62 # include <nv/detail/mouse_list.inc> 64 63 # undef NV_MOUSE 65 }; 66 db->create_type<mouse_code>("mouse_code").enums( mouse_enums ); 64 ; 67 65 68 type_enum io_event_enums[] = { 69 # define NV_IO_EVENT( id ) type_enum( #id, id ), 66 uint32 counter = 0; 67 db->create_type<io_event_code>() 68 # define NV_IO_EVENT( id ) .value( #id, counter++ ) 70 69 # include <nv/detail/io_event_list.inc> 71 70 # undef NV_IO_EVENT 72 }; 73 db->create_type<io_event_code>("event_code").enums( io_event_enums ); 71 ; 74 72 75 type_field key_fields[] = { 76 type_field( "ascii", &key_event::ascii ), 77 type_field( "code", &key_event::code ), 78 type_field( "shift", &key_event::shift ), 79 type_field( "control", &key_event::control ), 80 type_field( "alt", &key_event::alt ), 81 type_field( "pressed", &key_event::pressed ), 82 }; 83 db->create_type<key_event>("key_event").fields( key_fields ); 73 db->create_type<key_event>() 74 .field( "ascii", &key_event::ascii ) 75 .field( "code", &key_event::code ) 76 .field( "shift", &key_event::shift ) 77 .field( "control", &key_event::control ) 78 .field( "alt", &key_event::alt ) 79 .field( "pressed", &key_event::pressed ); 84 80 85 type_field mouse_button_fields[] = { 86 type_field( "x", &mouse_button_event::x ), 87 type_field( "y", &mouse_button_event::y ), 88 type_field( "button", &mouse_button_event::button ), 89 type_field( "pressed", &mouse_button_event::pressed ), 90 type_field( "code", &mouse_button_event::code ), 91 }; 92 db->create_type<mouse_button_event>("mouse_button_event").fields( mouse_button_fields ); 81 db->create_type<mouse_button_event>() 82 .field( "x", &mouse_button_event::x ) 83 .field( "y", &mouse_button_event::y ) 84 .field( "button", &mouse_button_event::button ) 85 .field( "pressed", &mouse_button_event::pressed ) 86 .field( "code", &mouse_button_event::code ); 93 87 94 type_field mouse_move_fields[] = { 95 type_field( "x", &mouse_move_event::x ), 96 type_field( "y", &mouse_move_event::y ), 97 type_field( "rx", &mouse_move_event::rx ), 98 type_field( "ry", &mouse_move_event::ry ), 99 type_field( "pressed", &mouse_move_event::pressed ), 100 type_field( "code", &mouse_move_event::code ), 101 }; 102 db->create_type<mouse_move_event>("mouse_move_event").fields( mouse_move_fields ); 88 db->create_type<mouse_move_event>() 89 .field( "x", &mouse_move_event::x ) 90 .field( "y", &mouse_move_event::y ) 91 .field( "rx", &mouse_move_event::rx ) 92 .field( "ry", &mouse_move_event::ry ) 93 .field( "pressed", &mouse_move_event::pressed ) 94 .field( "code", &mouse_move_event::code ); 103 95 104 type_field mouse_wheel_fields[] = { 105 type_field( "x", &mouse_wheel_event::x ), 106 type_field( "y", &mouse_wheel_event::y ), 107 }; 108 db->create_type<mouse_wheel_event>("mouse_wheel_event").fields( mouse_wheel_fields ); 96 db->create_type<mouse_wheel_event>() 97 .field( "x", &mouse_wheel_event::x ) 98 .field( "y", &mouse_wheel_event::y ); 109 99 110 type_field joy_button_fields[] = { 111 type_field( "id", &joy_button_event::id ), 112 type_field( "button", &joy_button_event::button ), 113 type_field( "pressed", &joy_button_event::pressed ), 114 }; 115 db->create_type<joy_button_event>("joy_button_event").fields( joy_button_fields ); 100 db->create_type<pad_button_event>() 101 .field( "id", &pad_button_event::id ) 102 .field( "button", &pad_button_event::button ) 103 .field( "pressed", &pad_button_event::pressed ); 116 104 117 type_field joy_axis_fields[] = { 118 type_field( "id", &joy_axis_event::id ), 119 type_field( "axis", &joy_axis_event::axis ), 120 type_field( "value", &joy_axis_event::value ), 121 }; 122 db->create_type<joy_axis_event>("joy_axis_event").fields( joy_axis_fields ); 105 db->create_type<pad_axis_event>() 106 .field( "id", &pad_axis_event::id ) 107 .field( "axis", &pad_axis_event::axis ) 108 .field( "value", &pad_axis_event::value ); 123 109 124 type_field joy_hat_fields[] = { 125 type_field( "id", &joy_hat_event::id ), 126 type_field( "hat", &joy_hat_event::hat ), 127 type_field( "value", &joy_hat_event::value ), 128 }; 129 db->create_type<joy_hat_event>("joy_hat_event").fields( joy_hat_fields ); 110 db->create_type<joy_button_event>() 111 .field( "id", &joy_button_event::id ) 112 .field( "button", &joy_button_event::button ) 113 .field( "pressed", &joy_button_event::pressed ); 130 114 131 type_field joy_ball_fields[] = { 132 type_field( "id", &joy_ball_event::id ), 133 type_field( "ball", &joy_ball_event::ball ), 134 type_field( "rx", &joy_ball_event::rx ), 135 type_field( "ry", &joy_ball_event::ry ), 136 }; 137 db->create_type<joy_ball_event>("joy_ball_event").fields( joy_ball_fields ); 115 db->create_type<joy_axis_event>() 116 .field( "id", &joy_axis_event::id ) 117 .field( "axis", &joy_axis_event::axis ) 118 .field( "value", &joy_axis_event::value ); 138 119 139 type_field system_fields[] = { 140 type_field( "sys_type", &system_event::sys_type ), 141 type_field( "param1", &system_event::param1 ), 142 type_field( "param2", &system_event::param2 ), 143 }; 144 db->create_type<system_event>("system_event").fields( system_fields ); 120 db->create_type<joy_hat_event>() 121 .field( "id", &joy_hat_event::id ) 122 .field( "hat", &joy_hat_event::hat ) 123 .field( "value", &joy_hat_event::value ); 124 125 db->create_type<joy_ball_event>() 126 .field( "id", &joy_ball_event::id ) 127 .field( "ball", &joy_ball_event::ball ) 128 .field( "rx", &joy_ball_event::rx ) 129 .field( "ry", &joy_ball_event::ry ); 130 131 db->create_type<resize_event>() 132 .field( "x", &resize_event::x ) 133 .field( "y", &resize_event::y ); 134 135 db->create_type<active_event>() 136 .field( "gain", &active_event::gain ); 137 138 db->create_type<system_event>() 139 .field( "sys_type", &system_event::sys_type ) 140 .field( "param1", &system_event::param1 ) 141 .field( "param2", &system_event::param2 ); 142 143 // TODO: io_event 145 144 } 146 ************************************************************************/
Note: See TracChangeset
for help on using the changeset viewer.