radioio.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* $OpenBSD: radioio.h,v 1.5 2015/01/14 21:15:36 deraadt Exp $ */
  2. /* $RuOBSD: radioio.h,v 1.4 2001/10/18 16:51:36 pva Exp $ */
  3. /*
  4. * Copyright (c) 2001 Maxim Tsyplakov <tm@oganer.net>,
  5. * Vladimir Popov <jumbo@narod.ru>
  6. * All rights reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. * 1. Redistributions of source code must retain the above copyright
  12. * notice, this list of conditions and the following disclaimer.
  13. * 2. Redistributions in binary form must reproduce the above copyright
  14. * notice, this list of conditions and the following disclaimer in the
  15. * documentation and/or other materials provided with the distribution.
  16. *
  17. * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
  18. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  19. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  20. * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  21. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  22. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  23. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  24. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  25. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  26. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  27. */
  28. #ifndef _SYS_RADIOIO_H_
  29. #define _SYS_RADIOIO_H_
  30. #include <sys/types.h>
  31. #define MIN_FM_FREQ 87500
  32. #define MAX_FM_FREQ 108000
  33. #define MIN_TV_CHAN 0
  34. #define MAX_TV_CHAN 150
  35. #define IF_FREQ 10700
  36. struct radio_info {
  37. int mute;
  38. int volume;
  39. int stereo;
  40. int rfreq; /* reference frequency */
  41. int lock; /* locking field strength during an automatic search */
  42. u_int32_t freq; /* in kHz */
  43. u_int32_t caps; /* card capabilities */
  44. #define RADIO_CAPS_DETECT_STEREO (1<<0)
  45. #define RADIO_CAPS_DETECT_SIGNAL (1<<1)
  46. #define RADIO_CAPS_SET_MONO (1<<2)
  47. #define RADIO_CAPS_HW_SEARCH (1<<3)
  48. #define RADIO_CAPS_HW_AFC (1<<4)
  49. #define RADIO_CAPS_REFERENCE_FREQ (1<<5)
  50. #define RADIO_CAPS_LOCK_SENSITIVITY (1<<6)
  51. #define RADIO_CAPS_RESERVED1 (1<<7)
  52. #define RADIO_CAPS_RESERVED2 (0xFF<<8)
  53. #define RADIO_CARD_TYPE (0xFF<<16)
  54. u_int32_t info;
  55. #define RADIO_INFO_STEREO (1<<0)
  56. #define RADIO_INFO_SIGNAL (1<<1)
  57. u_int32_t tuner_mode;
  58. #define RADIO_TUNER_MODE_RADIO (1<<0)
  59. #define RADIO_TUNER_MODE_TV (1<<1)
  60. u_int32_t chan;
  61. u_int32_t chnlset;
  62. };
  63. /* Radio device operations */
  64. #define RIOCGINFO _IOR('R', 21, struct radio_info) /* get info */
  65. #define RIOCSINFO _IOWR('R', 22, struct radio_info) /* set info */
  66. #define RIOCSSRCH _IOW('R', 23, int) /* search up/down */
  67. #endif /* _SYS_RADIOIO_H_ */