whole_func_string: function InputEvent(device, options){
    var self = this;
    EventEmitter.call(this);
    if(device instanceof InputEvent){
      device = device.device;
    }
    this.device  = device;
    this.options = options || { flags: 'r', encoding: null };
    this.options.fd = fs.openSync(this.device, this.options.flags);
    this.fd = fs.createReadStream(null, this.options);
    this.fd.on('data', function(data){
      self.emit('raw', data);
      self.process(data);
    });
    this.fd.on('error', function(err){
      self.emit('error', err);
    });
  }
func_code_string: function InputEvent(device, options){
    var self = this;
    EventEmitter.call(this);
    if(device instanceof InputEvent){
      device = device.device;
    }
    this.device  = device;
    this.options = options || { flags: 'r', encoding: null };
    this.options.fd = fs.openSync(this.device, this.options.flags);
    this.fd = fs.createReadStream(null, this.options);
    this.fd.on('data', function(data){
      self.emit('raw', data);
      self.process(data);
    });
    this.fd.on('error', function(err){
      self.emit('error', err);
    });
  }
func_documentation_string: InputEvent