This file is indexed.

/usr/include/x86_64-linux-gnu/visp3/io/vpKeyboard.h is in libvisp-io-dev 3.0.0-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
/****************************************************************************
 *
 * This file is part of the ViSP software.
 * Copyright (C) 2005 - 2015 by Inria. All rights reserved.
 *
 * This software is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * ("GPL") version 2 as published by the Free Software Foundation.
 * See the file LICENSE.txt at the root directory of this source
 * distribution for additional information about the GNU GPL.
 *
 * For using ViSP with software that can not be combined with the GNU
 * GPL, please contact Inria about acquiring a ViSP Professional
 * Edition License.
 *
 * See http://visp.inria.fr for more information.
 *
 * This software was developed at:
 * Inria Rennes - Bretagne Atlantique
 * Campus Universitaire de Beaulieu
 * 35042 Rennes Cedex
 * France
 *
 * If you have questions regarding the use of this file, please contact
 * Inria at visp@inria.fr
 *
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 *
 * Description:
 * Keybord management.
 *
 * Authors:
 * Fabien Spindler
 *
 *****************************************************************************/


#ifndef vpKeyboard_h
#define vpKeyboard_h

/*!
  \file vpKeyboard.h
  \brief Keybord management under unix.
*/

#include <visp3/core/vpConfig.h>

#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))

#  include <iostream>
#  include <termios.h>
#  include <unistd.h>
#  include <stdlib.h>


/*!

  \class vpKeyboard
  \ingroup group_io_keyboard
  \brief Keybord management under unix (Linux or OSX). This class is not available under windows.

  Gets a key from the keyboard without waiting for the "Enter" key.
  \warning The key that was pressed is only detected if the terminal where the binary was launched is active.

  \code
  vpKeyboard keyboard; // Turn on keyboard raw mode
  int c;
  while (...) {
    ...
    if (keyboard.kbhit()) { // Detect if a key was pressed
      c = keyboard.getchar (void); // Get the pressed key
      if (c == 'q' || c == 'Q') {
        break; // Quit the while()
      }
    ...
    }
  }

  // Keyboard raw mode is turned off by the vpKeyboard destructor
  \endcode

*/
class VISP_EXPORT vpKeyboard
{

public:
  vpKeyboard();
  ~vpKeyboard();
  int kbhit();
  int getchar();

private:
  void init();
  void end();

  void setRawMode(bool active);

  struct termios initial_settings, new_settings;
} ;

#endif // defined UNIX

#endif