1 /* 2 * Copyright (c) 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 #ifndef AUDIO_PNP_PARAM 16 #define AUDIO_PNP_PARAM 17 18 #define AUDIO_UEVENT_USB_DEVICE_COUNT 10 19 #define ADD_DEVICE_HEADSET '1' 20 #define ADD_DEVICE_HEADSET_WITHOUT_MIC '2' 21 #define ADD_DEVICE_ADAPTER '4' 22 #define ADD_DEVICE_MIC_BLOCKED '5' 23 #define ADD_DEVICE_MIC_UN_BLOCKED '6' 24 #define AUDIO_DEVICE_ONLINE 1 25 #define AUDIO_DEVICE_WAIT_ONLINE 20 26 #define AUDIO_DEVICE_WAIT_TRY_TIME 10 27 #define AUDIO_EVENT_INFO_LEN_MAX 256 28 #define AUDIO_PNP_INFO_LEN_MAX 256 29 #define AUDIO_DEVICE_WAIT_USB_ONLINE 1000 30 #define AUDIO_DEVICE_WAIT_USB_EVENT_UPDATE 100 31 32 #define BUS_USB_DIR "bus/usb" 33 #define DEV_BUS_USB_DIR "/dev/bus/usb" 34 #define INPUT_EVT_MAX_CNT 4 35 #define MOVE_NUM 16 36 #define REMOVE_AUDIO_DEVICE '0' 37 #define SWITCH_STATE_PATH "/sys/class/switch/h2w/state" 38 #define STATE_PATH_ITEM_SIZE 1 39 40 #define USB_IF_DESC_LEN 9 41 #define USB_IF_CLASS_OFFSET 5 42 #define USB_IF_SUBCLASS_OFFSET 6 43 #define USB_AUDIO_DESC_TYPE 0x4 44 #define USB_AUDIO_CLASS 1 45 #define USB_AUDIO_SUBCLASS_CTRL 1 46 #define USB_DEV_NAME_LEN_MAX 64 47 #define USB_DES_LEN_MAX 4096 48 49 #define UEVENT_ACTION "ACTION=" 50 #define UEVENT_NAME "NAME=" 51 #define UEVENT_STATE "STATE=" 52 #define UEVENT_DEV_NAME "DEVNAME=" 53 #define UEVENT_DEVTYPE "DEVTYPE=" 54 #define UEVENT_SUBSYSTEM "SUBSYSTEM=" 55 #define UEVENT_SWITCH_NAME "SWITCH_NAME=" 56 #define UEVENT_SWITCH_STATE "SWITCH_STATE=" 57 #define UEVENT_HDI_NAME "HID_NAME=" 58 #define UEVENT_ACTION_ADD "add" 59 #define UEVENT_ACTION_REMOVE "remove" 60 #define UEVENT_ACTION_CHANGE "change" 61 #define UEVENT_TYPE_EXTCON "extcon3" 62 #define UEVENT_NAME_HEADSET "headset" 63 #define UEVENT_STATE_ANALOG_HS0 "MICROPHONE=0" 64 #define UEVENT_STATE_ANALOG_HS1 "MICROPHONE=1" 65 #define UEVENT_SUBSYSTEM_SWITCH "switch" 66 #define UEVENT_SWITCH_NAME_H2W "h2w" 67 #define UEVENT_SUBSYSTEM_USB "usb" 68 #define UEVENT_SUBSYSTEM_USB_DEVICE "usb_device" 69 #define UEVENT_SOCKET_BUFF_SIZE (64 * 1024) 70 #define UEVENT_SOCKET_GROUPS 0xffffffff 71 #define UEVENT_MSG_LEN 2048 72 #define UEVENT_ID_MODEL "ID_MODEL=" 73 #define UEVENT_USB_AUDIO "USB Audio" 74 #define UEVENT_USB_HEADSET "HEADSET" 75 #define UEVENT_ARR_SIZE 9 76 #define UEVENT_POLL_WAIT_TIME 100 77 #define WAIT_THREAD_END_TIME_MS 1 78 79 #include <string> 80 81 namespace OHOS { 82 namespace AudioStandard { 83 using namespace std; 84 85 struct UsbDevice { 86 int8_t devName[USB_DEV_NAME_LEN_MAX]; 87 uint8_t desc[USB_DES_LEN_MAX]; 88 size_t descLen; 89 }; 90 91 struct AudioPnpUevent { 92 const char *action; 93 const char *name; 94 const char *state; 95 const char *devType; 96 const char *subSystem; 97 const char *switchName; 98 const char *switchState; 99 const char *hidName; 100 const char *devName; 101 }; 102 103 struct AudioDevBusUsbDevice { 104 bool isUsed; 105 int8_t devName[USB_DEV_NAME_LEN_MAX]; 106 }; 107 108 struct AudioEvent { 109 uint32_t eventType; 110 uint32_t deviceType; 111 std::string name; 112 std::string address; 113 }; 114 } // namespace AudioStandard 115 } // namespace OHOS 116 #endif // AUDIO_PNP_PARAM