whole_func_string: function Keyboard(device){
    var self = this;
    InputEvent.apply(this, arguments);
    this.on('data', function(ev){
      // filting key event
      if(InputEvent.EVENT_TYPES.EV_KEY == ev.type){
        switch(ev.value){
          case KEY_STATUS.KEY_UP:
            self.emit('keyup', ev);
            break;
          case KEY_STATUS.KEY_DOWN:
            self.emit('keydown', ev);
            break;
          case KEY_STATUS.KEY_PRESS:
            self.emit('keypress', ev);
            break;
        }
      }
    });
  }
func_code_string: function Keyboard(device){
    var self = this;
    InputEvent.apply(this, arguments);
    this.on('data', function(ev){
      // filting key event
      if(InputEvent.EVENT_TYPES.EV_KEY == ev.type){
        switch(ev.value){
          case KEY_STATUS.KEY_UP:
            self.emit('keyup', ev);
            break;
          case KEY_STATUS.KEY_DOWN:
            self.emit('keydown', ev);
            break;
          case KEY_STATUS.KEY_PRESS:
            self.emit('keypress', ev);
            break;
        }
      }
    });
  }
func_documentation_string: [Keyboard description]
  @param {[type]} device [description]