Ignore:
Timestamp:
07/30/15 14:03:37 (10 years ago)
Author:
epyon
Message:
  • io_event type registration restored
  • TODO: io_event itself still missing (unions)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/core/io_event.cc

    r395 r447  
    88
    99#include "nv/core/logging.hh"
     10#include "nv/core/types.hh"
    1011
    1112using namespace nv;
     
    4950}
    5051
    51 /************************************************************************
    5252void nv::register_io_types( type_database* db )
    5353{
    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 )
    5656#               include <nv/detail/key_list.inc>
    5757#       undef NV_KEY
    58         };
    59         db->create_type<key_code>("key_code").enums( key_enums );
     58        ;
    6059
    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 )
    6362#               include <nv/detail/mouse_list.inc>
    6463#       undef NV_MOUSE
    65         };
    66         db->create_type<mouse_code>("mouse_code").enums( mouse_enums );
     64        ;
    6765
    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++ )
    7069#               include <nv/detail/io_event_list.inc>
    7170#       undef NV_IO_EVENT
    72         };
    73         db->create_type<io_event_code>("event_code").enums( io_event_enums );
     71        ;
    7472
    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 );
    8480
    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 );
    9387
    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 );
    10395
    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 );
    10999
    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 );
    116104
    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 );
    123109
    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 );
    130114
    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 );
    138119
    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
    145144}
    146 ************************************************************************/
Note: See TracChangeset for help on using the changeset viewer.