1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#ifndef _HPI_H_
21#define _HPI_H_
22
23#include <linux/types.h>
24#define HPI_BUILD_KERNEL_MODE
25
26
27
28
29
30
31
32
33
34enum HPI_FORMATS {
35
36 HPI_FORMAT_MIXER_NATIVE = 0,
37
38 HPI_FORMAT_PCM8_UNSIGNED = 1,
39
40 HPI_FORMAT_PCM16_SIGNED = 2,
41
42 HPI_FORMAT_MPEG_L1 = 3,
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 HPI_FORMAT_MPEG_L2 = 4,
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
105 HPI_FORMAT_MPEG_L3 = 5,
106
107 HPI_FORMAT_DOLBY_AC2 = 6,
108
109 HPI_FORMAT_DOLBY_AC3 = 7,
110
111 HPI_FORMAT_PCM16_BIGENDIAN = 8,
112
113 HPI_FORMAT_AA_TAGIT1_HITS = 9,
114
115 HPI_FORMAT_AA_TAGIT1_INSERTS = 10,
116
117
118
119
120 HPI_FORMAT_PCM32_SIGNED = 11,
121
122 HPI_FORMAT_RAW_BITSTREAM = 12,
123
124 HPI_FORMAT_AA_TAGIT1_HITS_EX1 = 13,
125
126
127
128
129 HPI_FORMAT_PCM32_FLOAT = 14,
130
131 HPI_FORMAT_PCM24_SIGNED = 15,
132
133 HPI_FORMAT_OEM1 = 16,
134
135 HPI_FORMAT_OEM2 = 17,
136
137 HPI_FORMAT_UNDEFINED = 0xffff
138};
139
140
141
142
143
144enum HPI_STREAM_STATES {
145
146 HPI_STATE_STOPPED = 1,
147
148 HPI_STATE_PLAYING = 2,
149
150 HPI_STATE_RECORDING = 3,
151
152 HPI_STATE_DRAINED = 4,
153
154 HPI_STATE_SINEGEN = 5,
155
156
157 HPI_STATE_WAIT = 6
158};
159
160
161
162
163enum HPI_SOURCENODES {
164
165
166
167
168 HPI_SOURCENODE_NONE = 100,
169
170 HPI_SOURCENODE_OSTREAM = 101,
171
172 HPI_SOURCENODE_LINEIN = 102,
173 HPI_SOURCENODE_AESEBU_IN = 103,
174 HPI_SOURCENODE_TUNER = 104,
175 HPI_SOURCENODE_RF = 105,
176 HPI_SOURCENODE_CLOCK_SOURCE = 106,
177 HPI_SOURCENODE_RAW_BITSTREAM = 107,
178 HPI_SOURCENODE_MICROPHONE = 108,
179
180
181 HPI_SOURCENODE_COBRANET = 109,
182 HPI_SOURCENODE_ANALOG = 110,
183 HPI_SOURCENODE_ADAPTER = 111,
184
185
186 HPI_SOURCENODE_RTP_DESTINATION = 112,
187 HPI_SOURCENODE_INTERNAL = 113,
188 HPI_SOURCENODE_AVB = 114,
189 HPI_SOURCENODE_BLULINK = 115,
190
191 HPI_SOURCENODE_LAST_INDEX = 115
192
193};
194
195
196
197
198
199enum HPI_DESTNODES {
200
201
202
203
204 HPI_DESTNODE_NONE = 200,
205
206 HPI_DESTNODE_ISTREAM = 201,
207 HPI_DESTNODE_LINEOUT = 202,
208 HPI_DESTNODE_AESEBU_OUT = 203,
209 HPI_DESTNODE_RF = 204,
210 HPI_DESTNODE_SPEAKER = 205,
211
212
213 HPI_DESTNODE_COBRANET = 206,
214 HPI_DESTNODE_ANALOG = 207,
215
216
217 HPI_DESTNODE_RTP_SOURCE = 208,
218 HPI_DESTNODE_AVB = 209,
219 HPI_DESTNODE_INTERNAL = 210,
220 HPI_DESTNODE_BLULINK = 211,
221
222 HPI_DESTNODE_LAST_INDEX = 211
223
224};
225
226
227
228
229
230enum HPI_CONTROLS {
231 HPI_CONTROL_GENERIC = 0,
232 HPI_CONTROL_CONNECTION = 1,
233 HPI_CONTROL_VOLUME = 2,
234 HPI_CONTROL_METER = 3,
235 HPI_CONTROL_MUTE = 4,
236 HPI_CONTROL_MULTIPLEXER = 5,
237
238 HPI_CONTROL_AESEBU_TRANSMITTER = 6,
239 HPI_CONTROL_AESEBUTX = 6,
240
241 HPI_CONTROL_AESEBU_RECEIVER = 7,
242 HPI_CONTROL_AESEBURX = 7,
243
244 HPI_CONTROL_LEVEL = 8,
245 HPI_CONTROL_TUNER = 9,
246
247 HPI_CONTROL_VOX = 11,
248
249
250
251 HPI_CONTROL_CHANNEL_MODE = 15,
252
253 HPI_CONTROL_BITSTREAM = 16,
254 HPI_CONTROL_SAMPLECLOCK = 17,
255 HPI_CONTROL_MICROPHONE = 18,
256 HPI_CONTROL_PARAMETRIC_EQ = 19,
257 HPI_CONTROL_EQUALIZER = 19,
258
259 HPI_CONTROL_COMPANDER = 20,
260 HPI_CONTROL_COBRANET = 21,
261 HPI_CONTROL_TONEDETECTOR = 22,
262 HPI_CONTROL_SILENCEDETECTOR = 23,
263 HPI_CONTROL_PAD = 24,
264 HPI_CONTROL_SRC = 25,
265 HPI_CONTROL_UNIVERSAL = 26,
266
267
268 HPI_CONTROL_LAST_INDEX = 26
269
270};
271
272
273
274
275
276
277enum HPI_ADAPTER_PROPERTIES {
278
279
280
281
282
283
284
285 HPI_ADAPTER_PROPERTY_ERRATA_1 = 1,
286
287
288
289
290 HPI_ADAPTER_PROPERTY_GROUPING = 2,
291
292
293
294
295
296
297 HPI_ADAPTER_PROPERTY_ENABLE_SSX2 = 3,
298
299
300
301
302
303
304
305
306
307 HPI_ADAPTER_PROPERTY_SSX2_SETTING = 4,
308
309
310
311
312
313
314
315
316 HPI_ADAPTER_PROPERTY_IRQ_RATE = 5,
317
318
319 HPI_ADAPTER_PROPERTY_READONLYBASE = 256,
320
321
322
323
324
325
326 HPI_ADAPTER_PROPERTY_LATENCY = 256,
327
328
329
330
331
332
333
334 HPI_ADAPTER_PROPERTY_GRANULARITY = 257,
335
336
337
338
339 HPI_ADAPTER_PROPERTY_CURCHANNELS = 258,
340
341
342
343
344
345
346 HPI_ADAPTER_PROPERTY_SOFTWARE_VERSION = 259,
347
348
349
350
351
352
353 HPI_ADAPTER_PROPERTY_MAC_ADDRESS_MSB = 260,
354
355
356
357
358
359 HPI_ADAPTER_PROPERTY_MAC_ADDRESS_LSB = 261,
360
361
362
363
364
365
366
367
368
369 HPI_ADAPTER_PROPERTY_EXTENDED_ADAPTER_TYPE = 262,
370
371
372 HPI_ADAPTER_PROPERTY_LOGTABLEN = 263,
373 HPI_ADAPTER_PROPERTY_LOGTABBEG = 264,
374
375
376
377
378
379
380 HPI_ADAPTER_PROPERTY_IP_ADDRESS = 265,
381
382
383
384
385
386
387 HPI_ADAPTER_PROPERTY_BUFFER_UPDATE_COUNT = 266,
388
389
390
391
392
393
394
395
396
397
398
399
400
401 HPI_ADAPTER_PROPERTY_INTERVAL = 267,
402
403
404
405
406 HPI_ADAPTER_PROPERTY_CAPS1 = 268,
407
408
409
410
411 HPI_ADAPTER_PROPERTY_CAPS2 = 269,
412
413
414
415 HPI_ADAPTER_PROPERTY_SYNC_HEADER_CONNECTIONS = 270,
416
417
418
419
420
421
422 HPI_ADAPTER_PROPERTY_SUPPORTS_SSX2 = 271,
423
424
425
426
427
428 HPI_ADAPTER_PROPERTY_SUPPORTS_IRQ = 272,
429
430
431
432
433 HPI_ADAPTER_PROPERTY_SUPPORTS_FW_UPDATE = 273,
434
435
436
437
438
439
440 HPI_ADAPTER_PROPERTY_FIRMWARE_ID = 274
441};
442
443
444
445
446
447
448enum HPI_ADAPTER_MODE_CMDS {
449
450 HPI_ADAPTER_MODE_SET = 0,
451
452
453 HPI_ADAPTER_MODE_QUERY = 1
454};
455
456
457
458
459
460
461
462
463enum HPI_ADAPTER_MODES {
464
465
466
467
468
469
470
471
472
473
474 HPI_ADAPTER_MODE_4OSTREAM = 1,
475
476
477
478
479
480
481 HPI_ADAPTER_MODE_6OSTREAM = 2,
482
483
484
485
486
487
488 HPI_ADAPTER_MODE_8OSTREAM = 3,
489
490
491
492
493
494
495 HPI_ADAPTER_MODE_16OSTREAM = 4,
496
497
498
499
500 HPI_ADAPTER_MODE_1OSTREAM = 5,
501
502
503
504
505 HPI_ADAPTER_MODE_1 = 6,
506
507
508
509
510 HPI_ADAPTER_MODE_2 = 7,
511
512
513
514
515 HPI_ADAPTER_MODE_3 = 8,
516
517
518
519
520
521
522 HPI_ADAPTER_MODE_MULTICHANNEL = 9,
523
524
525
526
527
528
529 HPI_ADAPTER_MODE_12OSTREAM = 10,
530
531
532
533
534 HPI_ADAPTER_MODE_9OSTREAM = 11,
535
536
537
538
539
540 HPI_ADAPTER_MODE_MONO = 12,
541
542
543
544
545 HPI_ADAPTER_MODE_LOW_LATENCY = 13
546};
547
548
549
550#define HPI_CAPABILITY_NONE (0)
551#define HPI_CAPABILITY_MPEG_LAYER3 (1)
552
553
554
555#define HPI_CAPABILITY_MAX 1
556
557
558
559
560
561
562
563
564
565enum HPI_MPEG_ANC_MODES {
566
567 HPI_MPEG_ANC_HASENERGY = 0,
568
569
570
571
572 HPI_MPEG_ANC_RAW = 1
573};
574
575
576
577
578enum HPI_ISTREAM_MPEG_ANC_ALIGNS {
579
580 HPI_MPEG_ANC_ALIGN_LEFT = 0,
581
582 HPI_MPEG_ANC_ALIGN_RIGHT = 1
583};
584
585
586
587
588
589
590
591
592
593enum HPI_MPEG_MODES {
594
595
596
597 HPI_MPEG_MODE_DEFAULT = 0,
598
599 HPI_MPEG_MODE_STEREO = 1,
600
601 HPI_MPEG_MODE_JOINTSTEREO = 2,
602
603 HPI_MPEG_MODE_DUALCHANNEL = 3
604};
605
606
607
608
609
610#define HPI_MIXER_GET_CONTROL_MULTIPLE_CHANGED (0)
611#define HPI_MIXER_GET_CONTROL_MULTIPLE_RESET (1)
612
613
614
615
616
617enum HPI_MIXER_STORE_COMMAND {
618
619 HPI_MIXER_STORE_SAVE = 1,
620
621 HPI_MIXER_STORE_RESTORE = 2,
622
623 HPI_MIXER_STORE_DELETE = 3,
624
625 HPI_MIXER_STORE_ENABLE = 4,
626
627 HPI_MIXER_STORE_DISABLE = 5,
628
629 HPI_MIXER_STORE_SAVE_SINGLE = 6
630};
631
632
633
634
635
636
637
638
639
640
641enum HPI_SWITCH_STATES {
642 HPI_SWITCH_OFF = 0,
643 HPI_SWITCH_ON = 1
644};
645
646
647
648
649
650
651#define HPI_UNITS_PER_dB 100
652
653
654
655#define HPI_GAIN_OFF (-100 * HPI_UNITS_PER_dB)
656
657
658
659
660#define HPI_BITMASK_ALL_CHANNELS (0xFFFFFFFF)
661
662
663
664
665#define HPI_METER_MINIMUM (-150 * HPI_UNITS_PER_dB)
666
667
668
669
670enum HPI_VOLUME_AUTOFADES {
671
672 HPI_VOLUME_AUTOFADE_LOG = 2,
673
674 HPI_VOLUME_AUTOFADE_LINEAR = 3
675};
676
677
678
679
680
681
682
683enum HPI_AESEBU_FORMATS {
684
685 HPI_AESEBU_FORMAT_AESEBU = 1,
686
687 HPI_AESEBU_FORMAT_SPDIF = 2
688};
689
690
691
692
693
694
695enum HPI_AESEBU_ERRORS {
696
697 HPI_AESEBU_ERROR_NOT_LOCKED = 0x01,
698
699 HPI_AESEBU_ERROR_POOR_QUALITY = 0x02,
700
701 HPI_AESEBU_ERROR_PARITY_ERROR = 0x04,
702
703 HPI_AESEBU_ERROR_BIPHASE_VIOLATION = 0x08,
704
705 HPI_AESEBU_ERROR_VALIDITY = 0x10,
706
707 HPI_AESEBU_ERROR_CRC = 0x20
708};
709
710
711
712
713
714#define HPI_PAD_CHANNEL_NAME_LEN 16
715
716#define HPI_PAD_ARTIST_LEN 64
717
718#define HPI_PAD_TITLE_LEN 64
719
720#define HPI_PAD_COMMENT_LEN 256
721
722#define HPI_PAD_PROGRAM_TYPE_INVALID 0xffff
723
724
725
726
727
728enum eHPI_RDS_type {
729 HPI_RDS_DATATYPE_RDS = 0,
730 HPI_RDS_DATATYPE_RBDS = 1
731};
732
733
734
735
736
737
738enum HPI_TUNER_BAND {
739 HPI_TUNER_BAND_AM = 1,
740 HPI_TUNER_BAND_FM = 2,
741 HPI_TUNER_BAND_TV_NTSC_M = 3,
742 HPI_TUNER_BAND_TV = 3,
743 HPI_TUNER_BAND_FM_STEREO = 4,
744 HPI_TUNER_BAND_AUX = 5,
745 HPI_TUNER_BAND_TV_PAL_BG = 6,
746 HPI_TUNER_BAND_TV_PAL_I = 7,
747 HPI_TUNER_BAND_TV_PAL_DK = 8,
748 HPI_TUNER_BAND_TV_SECAM_L = 9,
749 HPI_TUNER_BAND_DAB = 10,
750 HPI_TUNER_BAND_LAST = 10
751};
752
753
754
755
756
757
758
759enum HPI_TUNER_MODES {
760 HPI_TUNER_MODE_RSS = 1,
761 HPI_TUNER_MODE_RDS = 2
762};
763
764
765
766
767
768
769enum HPI_TUNER_MODE_VALUES {
770
771 HPI_TUNER_MODE_RSS_DISABLE = 0,
772 HPI_TUNER_MODE_RSS_ENABLE = 1,
773
774
775 HPI_TUNER_MODE_RDS_DISABLE = 0,
776 HPI_TUNER_MODE_RDS_RDS = 1,
777 HPI_TUNER_MODE_RDS_RBDS = 2
778};
779
780
781
782
783
784
785
786enum HPI_TUNER_STATUS_BITS {
787 HPI_TUNER_VIDEO_COLOR_PRESENT = 0x0001,
788 HPI_TUNER_VIDEO_IS_60HZ = 0x0020,
789 HPI_TUNER_VIDEO_HORZ_SYNC_MISSING = 0x0040,
790 HPI_TUNER_VIDEO_STATUS_VALID = 0x0100,
791 HPI_TUNER_DIGITAL = 0x0200,
792 HPI_TUNER_MULTIPROGRAM = 0x0400,
793 HPI_TUNER_PLL_LOCKED = 0x1000,
794 HPI_TUNER_FM_STEREO = 0x2000
795};
796
797
798
799
800
801enum HPI_CHANNEL_MODES {
802
803 HPI_CHANNEL_MODE_NORMAL = 1,
804
805 HPI_CHANNEL_MODE_SWAP = 2,
806
807 HPI_CHANNEL_MODE_LEFT_TO_STEREO = 3,
808
809 HPI_CHANNEL_MODE_RIGHT_TO_STEREO = 4,
810
811
812 HPI_CHANNEL_MODE_STEREO_TO_LEFT = 5,
813
814
815 HPI_CHANNEL_MODE_STEREO_TO_RIGHT = 6,
816 HPI_CHANNEL_MODE_LAST = 6
817};
818
819
820
821
822enum HPI_SAMPLECLOCK_SOURCES {
823
824
825 HPI_SAMPLECLOCK_SOURCE_LOCAL = 1,
826
827 HPI_SAMPLECLOCK_SOURCE_AESEBU_SYNC = 2,
828
829 HPI_SAMPLECLOCK_SOURCE_WORD = 3,
830
831 HPI_SAMPLECLOCK_SOURCE_WORD_HEADER = 4,
832
833 HPI_SAMPLECLOCK_SOURCE_SMPTE = 5,
834
835 HPI_SAMPLECLOCK_SOURCE_AESEBU_INPUT = 6,
836
837 HPI_SAMPLECLOCK_SOURCE_NETWORK = 8,
838
839 HPI_SAMPLECLOCK_SOURCE_PREV_MODULE = 10,
840
841 HPI_SAMPLECLOCK_SOURCE_BLULINK = 11,
842
843 HPI_SAMPLECLOCK_SOURCE_LAST = 11
844};
845
846
847
848
849enum HPI_FILTER_TYPE {
850 HPI_FILTER_TYPE_BYPASS = 0,
851
852 HPI_FILTER_TYPE_LOWSHELF = 1,
853 HPI_FILTER_TYPE_HIGHSHELF = 2,
854 HPI_FILTER_TYPE_EQ_BAND = 3,
855
856 HPI_FILTER_TYPE_LOWPASS = 4,
857 HPI_FILTER_TYPE_HIGHPASS = 5,
858 HPI_FILTER_TYPE_BANDPASS = 6,
859 HPI_FILTER_TYPE_BANDSTOP = 7
860};
861
862
863
864
865enum ASYNC_EVENT_SOURCES {
866 HPI_ASYNC_EVENT_GPIO = 1,
867 HPI_ASYNC_EVENT_SILENCE = 2,
868 HPI_ASYNC_EVENT_TONE = 3
869};
870
871
872
873
874
875
876
877
878
879
880
881
882enum HPI_ERROR_CODES {
883
884 HPI_ERROR_INVALID_TYPE = 100,
885
886 HPI_ERROR_INVALID_OBJ = 101,
887
888 HPI_ERROR_INVALID_FUNC = 102,
889
890 HPI_ERROR_INVALID_OBJ_INDEX = 103,
891
892 HPI_ERROR_OBJ_NOT_OPEN = 104,
893
894 HPI_ERROR_OBJ_ALREADY_OPEN = 105,
895
896 HPI_ERROR_INVALID_RESOURCE = 106,
897
898
899 HPI_ERROR_INVALID_RESPONSE = 108,
900
901
902 HPI_ERROR_PROCESSING_MESSAGE = 109,
903
904 HPI_ERROR_NETWORK_TIMEOUT = 110,
905
906 HPI_ERROR_INVALID_HANDLE = 111,
907
908 HPI_ERROR_UNIMPLEMENTED = 112,
909
910
911 HPI_ERROR_NETWORK_TOO_MANY_CLIENTS = 113,
912
913
914
915
916 HPI_ERROR_RESPONSE_BUFFER_TOO_SMALL = 114,
917
918 HPI_ERROR_RESPONSE_MISMATCH = 115,
919
920 HPI_ERROR_CONTROL_CACHING = 116,
921
922
923
924
925 HPI_ERROR_MESSAGE_BUFFER_TOO_SMALL = 117,
926
927
928
929 HPI_ERROR_BAD_ADAPTER = 201,
930
931 HPI_ERROR_BAD_ADAPTER_NUMBER = 202,
932
933 HPI_ERROR_DUPLICATE_ADAPTER_NUMBER = 203,
934
935 HPI_ERROR_DSP_BOOTLOAD = 204,
936
937 HPI_ERROR_DSP_FILE_NOT_FOUND = 206,
938
939 HPI_ERROR_DSP_HARDWARE = 207,
940
941 HPI_ERROR_MEMORY_ALLOC = 208,
942
943 HPI_ERROR_PLD_LOAD = 209,
944
945 HPI_ERROR_DSP_FILE_FORMAT = 210,
946
947
948 HPI_ERROR_DSP_FILE_ACCESS_DENIED = 211,
949
950 HPI_ERROR_DSP_FILE_NO_HEADER = 212,
951
952
953 HPI_ERROR_DSP_SECTION_NOT_FOUND = 214,
954
955 HPI_ERROR_DSP_FILE_OTHER_ERROR = 215,
956
957 HPI_ERROR_DSP_FILE_SHARING_VIOLATION = 216,
958
959 HPI_ERROR_DSP_FILE_NULL_HEADER = 217,
960
961
962
963
964 HPI_ERROR_BAD_CHECKSUM = 221,
965 HPI_ERROR_BAD_SEQUENCE = 222,
966 HPI_ERROR_FLASH_ERASE = 223,
967 HPI_ERROR_FLASH_PROGRAM = 224,
968 HPI_ERROR_FLASH_VERIFY = 225,
969 HPI_ERROR_FLASH_TYPE = 226,
970 HPI_ERROR_FLASH_START = 227,
971 HPI_ERROR_FLASH_READ = 228,
972 HPI_ERROR_FLASH_READ_NO_FILE = 229,
973 HPI_ERROR_FLASH_SIZE = 230,
974
975
976 HPI_ERROR_RESERVED_1 = 290,
977
978
979
980 HPI_ERROR_INVALID_FORMAT = 301,
981
982 HPI_ERROR_INVALID_SAMPLERATE = 302,
983
984 HPI_ERROR_INVALID_CHANNELS = 303,
985
986 HPI_ERROR_INVALID_BITRATE = 304,
987
988 HPI_ERROR_INVALID_DATASIZE = 305,
989
990
991
992 HPI_ERROR_INVALID_DATA_POINTER = 308,
993
994 HPI_ERROR_INVALID_PACKET_ORDER = 309,
995
996
997
998 HPI_ERROR_INVALID_OPERATION = 310,
999
1000
1001
1002 HPI_ERROR_INCOMPATIBLE_SAMPLERATE = 311,
1003
1004 HPI_ERROR_BAD_ADAPTER_MODE = 312,
1005
1006
1007
1008
1009 HPI_ERROR_TOO_MANY_CAPABILITY_CHANGE_ATTEMPTS = 313,
1010
1011 HPI_ERROR_NO_INTERADAPTER_GROUPS = 314,
1012
1013 HPI_ERROR_NO_INTERDSP_GROUPS = 315,
1014
1015 HPI_ERROR_WAIT_CANCELLED = 316,
1016
1017 HPI_ERROR_INVALID_STRING = 317,
1018
1019
1020 HPI_ERROR_INVALID_NODE = 400,
1021
1022 HPI_ERROR_INVALID_CONTROL = 401,
1023
1024 HPI_ERROR_INVALID_CONTROL_VALUE = 402,
1025
1026 HPI_ERROR_INVALID_CONTROL_ATTRIBUTE = 403,
1027
1028 HPI_ERROR_CONTROL_DISABLED = 404,
1029
1030 HPI_ERROR_CONTROL_I2C_MISSING_ACK = 405,
1031 HPI_ERROR_I2C_MISSING_ACK = 405,
1032
1033
1034 HPI_ERROR_CONTROL_NOT_READY = 407,
1035
1036
1037 HPI_ERROR_NVMEM_BUSY = 450,
1038 HPI_ERROR_NVMEM_FULL = 451,
1039 HPI_ERROR_NVMEM_FAIL = 452,
1040
1041
1042 HPI_ERROR_I2C_BAD_ADR = 460,
1043
1044
1045 HPI_ERROR_ENTITY_TYPE_MISMATCH = 470,
1046
1047 HPI_ERROR_ENTITY_ITEM_COUNT = 471,
1048
1049 HPI_ERROR_ENTITY_TYPE_INVALID = 472,
1050
1051 HPI_ERROR_ENTITY_ROLE_INVALID = 473,
1052
1053 HPI_ERROR_ENTITY_SIZE_MISMATCH = 474,
1054
1055
1056
1057
1058 HPI_ERROR_CUSTOM = 600,
1059
1060
1061 HPI_ERROR_MUTEX_TIMEOUT = 700,
1062
1063
1064
1065
1066 HPI_ERROR_BACKEND_BASE = 900,
1067
1068
1069 HPI_ERROR_DSP_COMMUNICATION = 900
1070
1071
1072
1073
1074
1075};
1076
1077
1078
1079
1080
1081#define HPI_MAX_ADAPTERS 20
1082
1083#define HPI_MAX_STREAMS 16
1084#define HPI_MAX_CHANNELS 2
1085#define HPI_MAX_NODES 8
1086#define HPI_MAX_CONTROLS 4
1087
1088#define HPI_MAX_ANC_BYTES_PER_FRAME (64)
1089#define HPI_STRING_LEN 16
1090
1091
1092#define HPI_MIN_NETWORK_ADAPTER_IDX 100
1093
1094
1095#define HPI_OSTREAM_VELOCITY_UNITS 4096
1096
1097#define HPI_OSTREAM_TIMESCALE_UNITS 10000
1098
1099#define HPI_OSTREAM_TIMESCALE_PASSTHROUGH 99999
1100
1101
1102
1103
1104
1105#ifndef DISABLE_PRAGMA_PACK1
1106#pragma pack(push, 1)
1107#endif
1108
1109
1110
1111
1112struct hpi_format {
1113 u32 sample_rate;
1114
1115 u32 bit_rate;
1116 u32 attributes;
1117
1118 u16 mode_legacy;
1119
1120 u16 unused;
1121 u16 channels;
1122 u16 format;
1123};
1124
1125struct hpi_anc_frame {
1126 u32 valid_bits_in_this_frame;
1127 u8 b_data[HPI_MAX_ANC_BYTES_PER_FRAME];
1128};
1129
1130
1131
1132struct hpi_async_event {
1133 u16 event_type;
1134 u16 sequence;
1135 u32 state;
1136 u32 h_object;
1137 union {
1138 struct {
1139 u16 index;
1140 } gpio;
1141 struct {
1142 u16 node_index;
1143 u16 node_type;
1144 } control;
1145 } u;
1146};
1147
1148#ifndef DISABLE_PRAGMA_PACK1
1149#pragma pack(pop)
1150#endif
1151
1152
1153
1154
1155
1156
1157u16 hpi_stream_estimate_buffer_size(struct hpi_format *pF,
1158 u32 host_polling_rate_in_milli_seconds, u32 *recommended_buffer_size);
1159
1160
1161
1162
1163
1164u16 hpi_subsys_get_version_ex(u32 *pversion_ex);
1165
1166u16 hpi_subsys_get_num_adapters(int *pn_num_adapters);
1167
1168u16 hpi_subsys_get_adapter(int iterator, u32 *padapter_index,
1169 u16 *pw_adapter_type);
1170
1171
1172
1173
1174
1175u16 hpi_adapter_open(u16 adapter_index);
1176
1177u16 hpi_adapter_close(u16 adapter_index);
1178
1179u16 hpi_adapter_get_info(u16 adapter_index, u16 *pw_num_outstreams,
1180 u16 *pw_num_instreams, u16 *pw_version, u32 *pserial_number,
1181 u16 *pw_adapter_type);
1182
1183u16 hpi_adapter_get_module_by_index(u16 adapter_index, u16 module_index,
1184 u16 *pw_num_outputs, u16 *pw_num_inputs, u16 *pw_version,
1185 u32 *pserial_number, u16 *pw_module_type, u32 *ph_module);
1186
1187u16 hpi_adapter_set_mode(u16 adapter_index, u32 adapter_mode);
1188
1189u16 hpi_adapter_set_mode_ex(u16 adapter_index, u32 adapter_mode,
1190 u16 query_or_set);
1191
1192u16 hpi_adapter_get_mode(u16 adapter_index, u32 *padapter_mode);
1193
1194u16 hpi_adapter_get_assert2(u16 adapter_index, u16 *p_assert_count,
1195 char *psz_assert, u32 *p_param1, u32 *p_param2,
1196 u32 *p_dsp_string_addr, u16 *p_processor_id);
1197
1198u16 hpi_adapter_test_assert(u16 adapter_index, u16 assert_id);
1199
1200u16 hpi_adapter_enable_capability(u16 adapter_index, u16 capability, u32 key);
1201
1202u16 hpi_adapter_self_test(u16 adapter_index);
1203
1204u16 hpi_adapter_debug_read(u16 adapter_index, u32 dsp_address, char *p_bytes,
1205 int *count_bytes);
1206
1207u16 hpi_adapter_set_property(u16 adapter_index, u16 property, u16 paramter1,
1208 u16 paramter2);
1209
1210u16 hpi_adapter_get_property(u16 adapter_index, u16 property,
1211 u16 *pw_paramter1, u16 *pw_paramter2);
1212
1213u16 hpi_adapter_enumerate_property(u16 adapter_index, u16 index,
1214 u16 what_to_enumerate, u16 property_index, u32 *psetting);
1215
1216
1217
1218u16 hpi_outstream_open(u16 adapter_index, u16 outstream_index,
1219 u32 *ph_outstream);
1220
1221u16 hpi_outstream_close(u32 h_outstream);
1222
1223u16 hpi_outstream_get_info_ex(u32 h_outstream, u16 *pw_state,
1224 u32 *pbuffer_size, u32 *pdata_to_play, u32 *psamples_played,
1225 u32 *pauxiliary_data_to_play);
1226
1227u16 hpi_outstream_write_buf(u32 h_outstream, const u8 *pb_write_buf,
1228 u32 bytes_to_write, const struct hpi_format *p_format);
1229
1230u16 hpi_outstream_start(u32 h_outstream);
1231
1232u16 hpi_outstream_wait_start(u32 h_outstream);
1233
1234u16 hpi_outstream_stop(u32 h_outstream);
1235
1236u16 hpi_outstream_sinegen(u32 h_outstream);
1237
1238u16 hpi_outstream_reset(u32 h_outstream);
1239
1240u16 hpi_outstream_query_format(u32 h_outstream, struct hpi_format *p_format);
1241
1242u16 hpi_outstream_set_format(u32 h_outstream, struct hpi_format *p_format);
1243
1244u16 hpi_outstream_set_punch_in_out(u32 h_outstream, u32 punch_in_sample,
1245 u32 punch_out_sample);
1246
1247u16 hpi_outstream_set_velocity(u32 h_outstream, short velocity);
1248
1249u16 hpi_outstream_ancillary_reset(u32 h_outstream, u16 mode);
1250
1251u16 hpi_outstream_ancillary_get_info(u32 h_outstream, u32 *pframes_available);
1252
1253u16 hpi_outstream_ancillary_read(u32 h_outstream,
1254 struct hpi_anc_frame *p_anc_frame_buffer,
1255 u32 anc_frame_buffer_size_in_bytes,
1256 u32 number_of_ancillary_frames_to_read);
1257
1258u16 hpi_outstream_set_time_scale(u32 h_outstream, u32 time_scaleX10000);
1259
1260u16 hpi_outstream_host_buffer_allocate(u32 h_outstream, u32 size_in_bytes);
1261
1262u16 hpi_outstream_host_buffer_free(u32 h_outstream);
1263
1264u16 hpi_outstream_group_add(u32 h_outstream, u32 h_stream);
1265
1266u16 hpi_outstream_group_get_map(u32 h_outstream, u32 *poutstream_map,
1267 u32 *pinstream_map);
1268
1269u16 hpi_outstream_group_reset(u32 h_outstream);
1270
1271
1272
1273
1274u16 hpi_instream_open(u16 adapter_index, u16 instream_index,
1275 u32 *ph_instream);
1276
1277u16 hpi_instream_close(u32 h_instream);
1278
1279u16 hpi_instream_query_format(u32 h_instream,
1280 const struct hpi_format *p_format);
1281
1282u16 hpi_instream_set_format(u32 h_instream,
1283 const struct hpi_format *p_format);
1284
1285u16 hpi_instream_read_buf(u32 h_instream, u8 *pb_read_buf, u32 bytes_to_read);
1286
1287u16 hpi_instream_start(u32 h_instream);
1288
1289u16 hpi_instream_wait_start(u32 h_instream);
1290
1291u16 hpi_instream_stop(u32 h_instream);
1292
1293u16 hpi_instream_reset(u32 h_instream);
1294
1295u16 hpi_instream_get_info_ex(u32 h_instream, u16 *pw_state, u32 *pbuffer_size,
1296 u32 *pdata_recorded, u32 *psamples_recorded,
1297 u32 *pauxiliary_data_recorded);
1298
1299u16 hpi_instream_ancillary_reset(u32 h_instream, u16 bytes_per_frame,
1300 u16 mode, u16 alignment, u16 idle_bit);
1301
1302u16 hpi_instream_ancillary_get_info(u32 h_instream, u32 *pframe_space);
1303
1304u16 hpi_instream_ancillary_write(u32 h_instream,
1305 const struct hpi_anc_frame *p_anc_frame_buffer,
1306 u32 anc_frame_buffer_size_in_bytes,
1307 u32 number_of_ancillary_frames_to_write);
1308
1309u16 hpi_instream_host_buffer_allocate(u32 h_instream, u32 size_in_bytes);
1310
1311u16 hpi_instream_host_buffer_free(u32 h_instream);
1312
1313u16 hpi_instream_group_add(u32 h_instream, u32 h_stream);
1314
1315u16 hpi_instream_group_get_map(u32 h_instream, u32 *poutstream_map,
1316 u32 *pinstream_map);
1317
1318u16 hpi_instream_group_reset(u32 h_instream);
1319
1320
1321
1322
1323u16 hpi_mixer_open(u16 adapter_index, u32 *ph_mixer);
1324
1325u16 hpi_mixer_close(u32 h_mixer);
1326
1327u16 hpi_mixer_get_control(u32 h_mixer, u16 src_node_type,
1328 u16 src_node_type_index, u16 dst_node_type, u16 dst_node_type_index,
1329 u16 control_type, u32 *ph_control);
1330
1331u16 hpi_mixer_get_control_by_index(u32 h_mixer, u16 control_index,
1332 u16 *pw_src_node_type, u16 *pw_src_node_index, u16 *pw_dst_node_type,
1333 u16 *pw_dst_node_index, u16 *pw_control_type, u32 *ph_control);
1334
1335u16 hpi_mixer_store(u32 h_mixer, enum HPI_MIXER_STORE_COMMAND command,
1336 u16 index);
1337
1338
1339
1340
1341
1342
1343u16 hpi_volume_set_gain(u32 h_control, short an_gain0_01dB[HPI_MAX_CHANNELS]
1344 );
1345
1346u16 hpi_volume_get_gain(u32 h_control,
1347 short an_gain0_01dB_out[HPI_MAX_CHANNELS]
1348 );
1349
1350u16 hpi_volume_set_mute(u32 h_control, u32 mute);
1351
1352u16 hpi_volume_get_mute(u32 h_control, u32 *mute);
1353
1354#define hpi_volume_get_range hpi_volume_query_range
1355u16 hpi_volume_query_range(u32 h_control, short *min_gain_01dB,
1356 short *max_gain_01dB, short *step_gain_01dB);
1357
1358u16 hpi_volume_query_channels(const u32 h_control, u32 *p_channels);
1359
1360u16 hpi_volume_auto_fade(u32 h_control,
1361 short an_stop_gain0_01dB[HPI_MAX_CHANNELS], u32 duration_ms);
1362
1363u16 hpi_volume_auto_fade_profile(u32 h_control,
1364 short an_stop_gain0_01dB[HPI_MAX_CHANNELS], u32 duration_ms,
1365 u16 profile);
1366
1367u16 hpi_volume_query_auto_fade_profile(const u32 h_control, const u32 i,
1368 u16 *profile);
1369
1370
1371
1372
1373u16 hpi_level_query_range(u32 h_control, short *min_gain_01dB,
1374 short *max_gain_01dB, short *step_gain_01dB);
1375
1376u16 hpi_level_set_gain(u32 h_control, short an_gain0_01dB[HPI_MAX_CHANNELS]
1377 );
1378
1379u16 hpi_level_get_gain(u32 h_control,
1380 short an_gain0_01dB_out[HPI_MAX_CHANNELS]
1381 );
1382
1383
1384
1385
1386u16 hpi_meter_query_channels(const u32 h_meter, u32 *p_channels);
1387
1388u16 hpi_meter_get_peak(u32 h_control,
1389 short an_peak0_01dB_out[HPI_MAX_CHANNELS]
1390 );
1391
1392u16 hpi_meter_get_rms(u32 h_control, short an_peak0_01dB_out[HPI_MAX_CHANNELS]
1393 );
1394
1395u16 hpi_meter_set_peak_ballistics(u32 h_control, u16 attack, u16 decay);
1396
1397u16 hpi_meter_set_rms_ballistics(u32 h_control, u16 attack, u16 decay);
1398
1399u16 hpi_meter_get_peak_ballistics(u32 h_control, u16 *attack, u16 *decay);
1400
1401u16 hpi_meter_get_rms_ballistics(u32 h_control, u16 *attack, u16 *decay);
1402
1403
1404
1405
1406u16 hpi_channel_mode_query_mode(const u32 h_mode, const u32 index,
1407 u16 *pw_mode);
1408
1409u16 hpi_channel_mode_set(u32 h_control, u16 mode);
1410
1411u16 hpi_channel_mode_get(u32 h_control, u16 *mode);
1412
1413
1414
1415
1416u16 hpi_tuner_query_band(const u32 h_tuner, const u32 index, u16 *pw_band);
1417
1418u16 hpi_tuner_set_band(u32 h_control, u16 band);
1419
1420u16 hpi_tuner_get_band(u32 h_control, u16 *pw_band);
1421
1422u16 hpi_tuner_query_frequency(const u32 h_tuner, const u32 index,
1423 const u16 band, u32 *pfreq);
1424
1425u16 hpi_tuner_set_frequency(u32 h_control, u32 freq_ink_hz);
1426
1427u16 hpi_tuner_get_frequency(u32 h_control, u32 *pw_freq_ink_hz);
1428
1429u16 hpi_tuner_get_rf_level(u32 h_control, short *pw_level);
1430
1431u16 hpi_tuner_get_raw_rf_level(u32 h_control, short *pw_level);
1432
1433u16 hpi_tuner_query_gain(const u32 h_tuner, const u32 index, u16 *pw_gain);
1434
1435u16 hpi_tuner_set_gain(u32 h_control, short gain);
1436
1437u16 hpi_tuner_get_gain(u32 h_control, short *pn_gain);
1438
1439u16 hpi_tuner_get_status(u32 h_control, u16 *pw_status_mask, u16 *pw_status);
1440
1441u16 hpi_tuner_set_mode(u32 h_control, u32 mode, u32 value);
1442
1443u16 hpi_tuner_get_mode(u32 h_control, u32 mode, u32 *pn_value);
1444
1445u16 hpi_tuner_get_rds(u32 h_control, char *p_rds_data);
1446
1447u16 hpi_tuner_query_deemphasis(const u32 h_tuner, const u32 index,
1448 const u16 band, u32 *pdeemphasis);
1449
1450u16 hpi_tuner_set_deemphasis(u32 h_control, u32 deemphasis);
1451u16 hpi_tuner_get_deemphasis(u32 h_control, u32 *pdeemphasis);
1452
1453u16 hpi_tuner_query_program(const u32 h_tuner, u32 *pbitmap_program);
1454
1455u16 hpi_tuner_set_program(u32 h_control, u32 program);
1456
1457u16 hpi_tuner_get_program(u32 h_control, u32 *pprogram);
1458
1459u16 hpi_tuner_get_hd_radio_dsp_version(u32 h_control, char *psz_dsp_version,
1460 const u32 string_size);
1461
1462u16 hpi_tuner_get_hd_radio_sdk_version(u32 h_control, char *psz_sdk_version,
1463 const u32 string_size);
1464
1465u16 hpi_tuner_get_hd_radio_signal_quality(u32 h_control, u32 *pquality);
1466
1467u16 hpi_tuner_get_hd_radio_signal_blend(u32 h_control, u32 *pblend);
1468
1469u16 hpi_tuner_set_hd_radio_signal_blend(u32 h_control, const u32 blend);
1470
1471
1472
1473
1474
1475u16 hpi_pad_get_channel_name(u32 h_control, char *psz_string,
1476 const u32 string_length);
1477
1478u16 hpi_pad_get_artist(u32 h_control, char *psz_string,
1479 const u32 string_length);
1480
1481u16 hpi_pad_get_title(u32 h_control, char *psz_string,
1482 const u32 string_length);
1483
1484u16 hpi_pad_get_comment(u32 h_control, char *psz_string,
1485 const u32 string_length);
1486
1487u16 hpi_pad_get_program_type(u32 h_control, u32 *ppTY);
1488
1489u16 hpi_pad_get_rdsPI(u32 h_control, u32 *ppI);
1490
1491u16 hpi_pad_get_program_type_string(u32 h_control, const u32 data_type,
1492 const u32 pTY, char *psz_string, const u32 string_length);
1493
1494
1495
1496
1497u16 hpi_aesebu_receiver_query_format(const u32 h_aes_rx, const u32 index,
1498 u16 *pw_format);
1499
1500u16 hpi_aesebu_receiver_set_format(u32 h_control, u16 source);
1501
1502u16 hpi_aesebu_receiver_get_format(u32 h_control, u16 *pw_source);
1503
1504u16 hpi_aesebu_receiver_get_sample_rate(u32 h_control, u32 *psample_rate);
1505
1506u16 hpi_aesebu_receiver_get_user_data(u32 h_control, u16 index, u16 *pw_data);
1507
1508u16 hpi_aesebu_receiver_get_channel_status(u32 h_control, u16 index,
1509 u16 *pw_data);
1510
1511u16 hpi_aesebu_receiver_get_error_status(u32 h_control, u16 *pw_error_data);
1512
1513
1514
1515
1516u16 hpi_aesebu_transmitter_set_sample_rate(u32 h_control, u32 sample_rate);
1517
1518u16 hpi_aesebu_transmitter_set_user_data(u32 h_control, u16 index, u16 data);
1519
1520u16 hpi_aesebu_transmitter_set_channel_status(u32 h_control, u16 index,
1521 u16 data);
1522
1523u16 hpi_aesebu_transmitter_get_channel_status(u32 h_control, u16 index,
1524 u16 *pw_data);
1525
1526u16 hpi_aesebu_transmitter_query_format(const u32 h_aes_tx, const u32 index,
1527 u16 *pw_format);
1528
1529u16 hpi_aesebu_transmitter_set_format(u32 h_control, u16 output_format);
1530
1531u16 hpi_aesebu_transmitter_get_format(u32 h_control, u16 *pw_output_format);
1532
1533
1534
1535
1536u16 hpi_multiplexer_set_source(u32 h_control, u16 source_node_type,
1537 u16 source_node_index);
1538
1539u16 hpi_multiplexer_get_source(u32 h_control, u16 *source_node_type,
1540 u16 *source_node_index);
1541
1542u16 hpi_multiplexer_query_source(u32 h_control, u16 index,
1543 u16 *source_node_type, u16 *source_node_index);
1544
1545
1546
1547
1548u16 hpi_vox_set_threshold(u32 h_control, short an_gain0_01dB);
1549
1550u16 hpi_vox_get_threshold(u32 h_control, short *an_gain0_01dB);
1551
1552
1553
1554
1555u16 hpi_bitstream_set_clock_edge(u32 h_control, u16 edge_type);
1556
1557u16 hpi_bitstream_set_data_polarity(u32 h_control, u16 polarity);
1558
1559u16 hpi_bitstream_get_activity(u32 h_control, u16 *pw_clk_activity,
1560 u16 *pw_data_activity);
1561
1562
1563
1564
1565
1566u16 hpi_sample_clock_query_source(const u32 h_clock, const u32 index,
1567 u16 *pw_source);
1568
1569u16 hpi_sample_clock_set_source(u32 h_control, u16 source);
1570
1571u16 hpi_sample_clock_get_source(u32 h_control, u16 *pw_source);
1572
1573u16 hpi_sample_clock_query_source_index(const u32 h_clock, const u32 index,
1574 const u32 source, u16 *pw_source_index);
1575
1576u16 hpi_sample_clock_set_source_index(u32 h_control, u16 source_index);
1577
1578u16 hpi_sample_clock_get_source_index(u32 h_control, u16 *pw_source_index);
1579
1580u16 hpi_sample_clock_get_sample_rate(u32 h_control, u32 *psample_rate);
1581
1582u16 hpi_sample_clock_query_local_rate(const u32 h_clock, const u32 index,
1583 u32 *psource);
1584
1585u16 hpi_sample_clock_set_local_rate(u32 h_control, u32 sample_rate);
1586
1587u16 hpi_sample_clock_get_local_rate(u32 h_control, u32 *psample_rate);
1588
1589u16 hpi_sample_clock_set_auto(u32 h_control, u32 enable);
1590
1591u16 hpi_sample_clock_get_auto(u32 h_control, u32 *penable);
1592
1593u16 hpi_sample_clock_set_local_rate_lock(u32 h_control, u32 lock);
1594
1595u16 hpi_sample_clock_get_local_rate_lock(u32 h_control, u32 *plock);
1596
1597
1598
1599
1600u16 hpi_microphone_set_phantom_power(u32 h_control, u16 on_off);
1601
1602u16 hpi_microphone_get_phantom_power(u32 h_control, u16 *pw_on_off);
1603
1604
1605
1606
1607u16 hpi_parametric_eq_get_info(u32 h_control, u16 *pw_number_of_bands,
1608 u16 *pw_enabled);
1609
1610u16 hpi_parametric_eq_set_state(u32 h_control, u16 on_off);
1611
1612u16 hpi_parametric_eq_set_band(u32 h_control, u16 index, u16 type,
1613 u32 frequency_hz, short q100, short gain0_01dB);
1614
1615u16 hpi_parametric_eq_get_band(u32 h_control, u16 index, u16 *pn_type,
1616 u32 *pfrequency_hz, short *pnQ100, short *pn_gain0_01dB);
1617
1618u16 hpi_parametric_eq_get_coeffs(u32 h_control, u16 index, short coeffs[5]
1619 );
1620
1621
1622
1623
1624
1625u16 hpi_compander_set_enable(u32 h_control, u32 on);
1626
1627u16 hpi_compander_get_enable(u32 h_control, u32 *pon);
1628
1629u16 hpi_compander_set_makeup_gain(u32 h_control, short makeup_gain0_01dB);
1630
1631u16 hpi_compander_get_makeup_gain(u32 h_control, short *pn_makeup_gain0_01dB);
1632
1633u16 hpi_compander_set_attack_time_constant(u32 h_control, u32 index,
1634 u32 attack);
1635
1636u16 hpi_compander_get_attack_time_constant(u32 h_control, u32 index,
1637 u32 *pw_attack);
1638
1639u16 hpi_compander_set_decay_time_constant(u32 h_control, u32 index,
1640 u32 decay);
1641
1642u16 hpi_compander_get_decay_time_constant(u32 h_control, u32 index,
1643 u32 *pw_decay);
1644
1645u16 hpi_compander_set_threshold(u32 h_control, u32 index,
1646 short threshold0_01dB);
1647
1648u16 hpi_compander_get_threshold(u32 h_control, u32 index,
1649 short *pn_threshold0_01dB);
1650
1651u16 hpi_compander_set_ratio(u32 h_control, u32 index, u32 ratio100);
1652
1653u16 hpi_compander_get_ratio(u32 h_control, u32 index, u32 *pw_ratio100);
1654
1655
1656
1657
1658u16 hpi_cobranet_hmi_write(u32 h_control, u32 hmi_address, u32 byte_count,
1659 u8 *pb_data);
1660
1661u16 hpi_cobranet_hmi_read(u32 h_control, u32 hmi_address, u32 max_byte_count,
1662 u32 *pbyte_count, u8 *pb_data);
1663
1664u16 hpi_cobranet_hmi_get_status(u32 h_control, u32 *pstatus,
1665 u32 *preadable_size, u32 *pwriteable_size);
1666
1667u16 hpi_cobranet_get_ip_address(u32 h_control, u32 *pdw_ip_address);
1668
1669u16 hpi_cobranet_set_ip_address(u32 h_control, u32 dw_ip_address);
1670
1671u16 hpi_cobranet_get_static_ip_address(u32 h_control, u32 *pdw_ip_address);
1672
1673u16 hpi_cobranet_set_static_ip_address(u32 h_control, u32 dw_ip_address);
1674
1675u16 hpi_cobranet_get_macaddress(u32 h_control, u32 *p_mac_msbs,
1676 u32 *p_mac_lsbs);
1677
1678
1679
1680
1681u16 hpi_tone_detector_get_state(u32 hC, u32 *state);
1682
1683u16 hpi_tone_detector_set_enable(u32 hC, u32 enable);
1684
1685u16 hpi_tone_detector_get_enable(u32 hC, u32 *enable);
1686
1687u16 hpi_tone_detector_set_event_enable(u32 hC, u32 event_enable);
1688
1689u16 hpi_tone_detector_get_event_enable(u32 hC, u32 *event_enable);
1690
1691u16 hpi_tone_detector_set_threshold(u32 hC, int threshold);
1692
1693u16 hpi_tone_detector_get_threshold(u32 hC, int *threshold);
1694
1695u16 hpi_tone_detector_get_frequency(u32 hC, u32 index, u32 *frequency);
1696
1697
1698
1699
1700u16 hpi_silence_detector_get_state(u32 hC, u32 *state);
1701
1702u16 hpi_silence_detector_set_enable(u32 hC, u32 enable);
1703
1704u16 hpi_silence_detector_get_enable(u32 hC, u32 *enable);
1705
1706u16 hpi_silence_detector_set_event_enable(u32 hC, u32 event_enable);
1707
1708u16 hpi_silence_detector_get_event_enable(u32 hC, u32 *event_enable);
1709
1710u16 hpi_silence_detector_set_delay(u32 hC, u32 delay);
1711
1712u16 hpi_silence_detector_get_delay(u32 hC, u32 *delay);
1713
1714u16 hpi_silence_detector_set_threshold(u32 hC, int threshold);
1715
1716u16 hpi_silence_detector_get_threshold(u32 hC, int *threshold);
1717
1718
1719
1720
1721u16 hpi_format_create(struct hpi_format *p_format, u16 channels, u16 format,
1722 u32 sample_rate, u32 bit_rate, u32 attributes);
1723
1724#endif
1725