~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/sound/oss/aci.h

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1 #ifndef _ACI_H_
  2 #define _ACI_H_
  3 
  4 extern int aci_port;
  5 extern int aci_version;         /* ACI firmware version */
  6 extern int aci_rw_cmd(int write1, int write2, int write3);
  7 
  8 #define aci_indexed_cmd(a, b) aci_rw_cmd(a, b, -1)
  9 #define aci_write_cmd(a, b)   aci_rw_cmd(a, b, -1)
 10 #define aci_read_cmd(a)       aci_rw_cmd(a,-1, -1)
 11 
 12 #define COMMAND_REGISTER    (aci_port)      /* write register */
 13 #define STATUS_REGISTER     (aci_port + 1)  /* read register */
 14 #define BUSY_REGISTER       (aci_port + 2)  /* also used for rds */
 15 
 16 #define RDS_REGISTER        BUSY_REGISTER
 17 
 18 #define ACI_SET_MUTE          0x0d
 19 #define ACI_SET_POWERAMP      0x0f
 20 #define ACI_SET_TUNERMUTE     0xa3
 21 #define ACI_SET_TUNERMONO     0xa4
 22 #define ACI_SET_IDE           0xd0
 23 #define ACI_SET_WSS           0xd1
 24 #define ACI_SET_SOLOMODE      0xd2
 25 #define ACI_WRITE_IGAIN       0x03
 26 #define ACI_WRITE_TUNE        0xa7
 27 #define ACI_READ_TUNERSTEREO  0xa8
 28 #define ACI_READ_TUNERSTATION 0xa9
 29 #define ACI_READ_VERSION      0xf1
 30 #define ACI_READ_IDCODE       0xf2
 31 #define ACI_INIT              0xff
 32 #define ACI_STATUS            0xf0
 33 #define     ACI_S_GENERAL     0x00
 34 #define     ACI_S_READ_IGAIN  0x21
 35 #define ACI_ERROR_OP          0xdf
 36 
 37 /*
 38  * The following macro SCALE can be used to scale one integer volume
 39  * value into another one using only integer arithmetic. If the input
 40  * value x is in the range 0 <= x <= xmax, then the result will be in
 41  * the range 0 <= SCALE(xmax,ymax,x) <= ymax.
 42  *
 43  * This macro has for all xmax, ymax > 0 and all 0 <= x <= xmax the
 44  * following nice properties:
 45  *
 46  * - SCALE(xmax,ymax,xmax) = ymax
 47  * - SCALE(xmax,ymax,0) = 0
 48  * - SCALE(xmax,ymax,SCALE(ymax,xmax,SCALE(xmax,ymax,x))) = SCALE(xmax,ymax,x)
 49  *
 50  * In addition, the rounding error is minimal and nicely distributed.
 51  * The proofs are left as an exercise to the reader.
 52  */
 53 
 54 #define SCALE(xmax,ymax,x) (((x)*(ymax)+(xmax)/2)/(xmax))
 55 
 56 
 57 #endif  /* _ACI_H_ */
 58 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.