usbus428ctldefs.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. *
  4. * Copyright (c) 2003 by Karsten Wiese <[email protected]>
  5. */
  6. enum E_IN84 {
  7. E_FADER_0 = 0,
  8. E_FADER_1,
  9. E_FADER_2,
  10. E_FADER_3,
  11. E_FADER_4,
  12. E_FADER_5,
  13. E_FADER_6,
  14. E_FADER_7,
  15. E_FADER_M,
  16. E_TRANSPORT,
  17. E_MODIFIER = 10,
  18. E_FILTER_SELECT,
  19. E_SELECT,
  20. E_MUTE,
  21. E_SWITCH = 15,
  22. E_WHEEL_GAIN,
  23. E_WHEEL_FREQ,
  24. E_WHEEL_Q,
  25. E_WHEEL_PAN,
  26. E_WHEEL = 20
  27. };
  28. #define T_RECORD 1
  29. #define T_PLAY 2
  30. #define T_STOP 4
  31. #define T_F_FWD 8
  32. #define T_REW 0x10
  33. #define T_SOLO 0x20
  34. #define T_REC 0x40
  35. #define T_NULL 0x80
  36. struct us428_ctls {
  37. unsigned char fader[9];
  38. unsigned char transport;
  39. unsigned char modifier;
  40. unsigned char filters_elect;
  41. unsigned char select;
  42. unsigned char mute;
  43. unsigned char unknown;
  44. unsigned char wswitch;
  45. unsigned char wheel[5];
  46. };
  47. struct us428_set_byte {
  48. unsigned char offset,
  49. value;
  50. };
  51. enum {
  52. ELT_VOLUME = 0,
  53. ELT_LIGHT
  54. };
  55. struct usx2y_volume {
  56. unsigned char channel,
  57. lh,
  58. ll,
  59. rh,
  60. rl;
  61. };
  62. struct us428_lights {
  63. struct us428_set_byte light[7];
  64. };
  65. struct us428_p4out {
  66. char type;
  67. union {
  68. struct usx2y_volume vol;
  69. struct us428_lights lights;
  70. } val;
  71. };
  72. #define N_US428_CTL_BUFS 16
  73. #define N_US428_P4OUT_BUFS 16
  74. struct us428ctls_sharedmem {
  75. struct us428_ctls ctl_snapshot[N_US428_CTL_BUFS];
  76. int ctl_snapshot_differs_at[N_US428_CTL_BUFS];
  77. int ctl_snapshot_last, ctl_snapshot_red;
  78. struct us428_p4out p4out[N_US428_P4OUT_BUFS];
  79. int p4out_last, p4out_sent;
  80. };
  81. #define US428_SHAREDMEM_PAGES PAGE_ALIGN(sizeof(struct us428ctls_sharedmem))