1 /*
2  * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_DAUDIO_AUDIO_EVENT_H
17 #define OHOS_DAUDIO_AUDIO_EVENT_H
18 
19 #include <string>
20 
21 namespace OHOS {
22 namespace DistributedHardware {
23 typedef enum {
24     EVENT_UNKNOWN = 0,
25     OPEN_CTRL = 1,
26     CLOSE_CTRL = 2,
27     CTRL_OPENED = 3,
28     CTRL_CLOSED = 4,
29     NOTIFY_OPEN_CTRL_RESULT = 5,
30     NOTIFY_CLOSE_CTRL_RESULT = 6,
31     DATA_OPENED = 7,
32     DATA_CLOSED = 8,
33 
34     OPEN_SPEAKER = 11,
35     CLOSE_SPEAKER = 12,
36     SPEAKER_OPENED = 13,
37     SPEAKER_CLOSED = 14,
38     NOTIFY_OPEN_SPEAKER_RESULT = 15,
39     NOTIFY_CLOSE_SPEAKER_RESULT = 16,
40     NOTIFY_HDF_SPK_DUMP = 17,
41     NOTIFY_HDF_MIC_DUMP = 18,
42 
43     OPEN_MIC = 21,
44     CLOSE_MIC = 22,
45     MIC_OPENED = 23,
46     MIC_CLOSED = 24,
47     NOTIFY_OPEN_MIC_RESULT = 25,
48     NOTIFY_CLOSE_MIC_RESULT = 26,
49     DISABLE_DEVICE = 27,
50 
51     VOLUME_SET = 31,
52     VOLUME_GET = 32,
53     VOLUME_CHANGE = 33,
54     VOLUME_MIN_GET = 34,
55     VOLUME_MAX_GET = 35,
56     VOLUME_MUTE_SET = 36,
57 
58     AUDIO_FOCUS_CHANGE = 41,
59     AUDIO_RENDER_STATE_CHANGE = 42,
60 
61     SET_PARAM = 51,
62     SEND_PARAM = 52,
63 
64     AUDIO_ENCODER_ERR = 61,
65     AUDIO_DECODER_ERR = 62,
66 
67     CHANGE_PLAY_STATUS = 71,
68 
69     MMAP_SPK_START = 81,
70     MMAP_SPK_STOP = 82,
71     MMAP_MIC_START = 83,
72     MMAP_MIC_STOP = 84,
73     AUDIO_START = 85,
74     AUDIO_STOP = 86,
75 } AudioEventType;
76 
77 typedef enum {
78     AUDIO_EVENT_UNKNOWN = 0,
79     AUDIO_EVENT_VOLUME_SET = 1,
80     AUDIO_EVENT_VOLUME_GET = 2,
81     AUDIO_EVENT_VOLUME_CHANGE = 3,
82     AUDIO_EVENT_OPEN_SPK_RESULT = 4,
83     AUDIO_EVENT_CLOSE_SPK_RESULT = 5,
84     AUDIO_EVENT_OPEN_MIC_RESULT = 6,
85     AUDIO_EVENT_CLOSE_MIC_RESULT = 7,
86     AUDIO_EVENT_SPK_CLOSED = 8,
87     AUDIO_EVENT_MIC_CLOSED = 9,
88     AUDIO_EVENT_FOCUS_CHANGE = 10,
89     AUDIO_EVENT_RENDER_STATE_CHANGE = 11,
90     AUDIO_EVENT_MUTE_SET = 12,
91     AUDIO_EVENT_CHANGE_PLAY_STATUS = 13,
92     AUDIO_EVENT_MMAP_START_SPK = 14,
93     AUDIO_EVENT_MMAP_STOP_SPK = 15,
94     AUDIO_EVENT_MMAP_START_MIC = 16,
95     AUDIO_EVENT_MMAP_STOP_MIC = 17,
96     AUDIO_EVENT_START = 18,
97     AUDIO_EVENT_STOP = 19,
98     AUDIO_EVENT_SPK_DUMP = 20,
99     AUDIO_EVENT_MIC_DUMP = 21,
100 } AudioEventHDF;
101 class AudioEvent {
102 public:
103     AudioEvent() = default;
AudioEvent(const AudioEventType t,const std::string & c)104     AudioEvent(const AudioEventType t, const std::string &c) : type(t), content(c) {};
AudioEvent(const int32_t t,const std::string & c)105     AudioEvent(const int32_t t, const std::string &c) : type(static_cast<AudioEventType>(t)), content(c) {};
106     ~AudioEvent() = default;
107     AudioEventType type = EVENT_UNKNOWN;
108     std::string content;
109 };
110 } // namespace DistributedHardware
111 } // namespace OHOS
112 #endif // OHOS_DAUDIO_AUDIO_EVENT_H
113