unimotion.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:2k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*
  2.  *  UniMotion - Unified Motion detection for Apple portables.
  3.  *
  4.  *  Copyright (c) 2006 Lincoln Ramsay. All rights reserved.
  5.  *
  6.  *  This library is free software; you can redistribute it and/or
  7.  *  modify it under the terms of the GNU Lesser General Public
  8.  *  License version 2.1 as published by the Free Software Foundation.
  9.  *
  10.  *  This library is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.  *  Lesser General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU Lesser General Public
  16.  *  License along with this library; if not, write to the Free Software
  17.  *  Foundation Inc. 59 Temple Place, Suite 330, Boston MA 02111-1307 USA
  18.  */
  19. #ifndef UNIMOTION_H
  20. #define UNIMOTION_H
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. // The various SMS hardware that unimotion supports
  25. enum sms_hardware {
  26.     unknown = 0,
  27.     powerbook = 1,
  28.     ibook = 2,
  29.     highrespb = 3,
  30.     macbookpro = 4
  31. };
  32. // prototypes for the functions in unimotion.c
  33. // returns the value of SMS hardware present or unknown if no hardware is detected
  34. int detect_sms();
  35. // use the value returned from detect_sms as the type
  36. // these functinos return 1 on success and 0 on failure
  37. // they modify x, y and z if they are not 0
  38. // raw, unmodified values
  39. int read_sms_raw(int type, int *x, int *y, int *z);
  40. // "calibrated" values (same as raw if no calibration data exists)
  41. int read_sms(int type, int *x, int *y, int *z);
  42. // real (1.0 = 1G) values (requires calibration data)
  43. // note that this is the preferred API as it need not change with new machines
  44. // however, this API does not work if no "scale" calibration data exists
  45. int read_sms_real(int type, double *x, double *y, double *z);
  46. #ifdef __cplusplus
  47. }
  48. #endif
  49. #endif