master ohmu/fastfetch-openbsd / src / detection / bluetoothradio / bluetoothradio.c
ohmu  ·  2026-10-15
  1#include "bluetoothradio.h"
  2
  3// https://github.com/ziglang/zig/blob/a84951465b409495095a9598db0cae745f34fa7b/lib/libc/include/any-windows-any/bthdef.h#L187-L236
  4
  5#define BTH_MFG_ERICSSON 0
  6#define BTH_MFG_NOKIA 1
  7#define BTH_MFG_INTEL 2
  8#define BTH_MFG_IBM 3
  9#define BTH_MFG_TOSHIBA 4
 10#define BTH_MFG_3COM 5
 11#define BTH_MFG_MICROSOFT 6
 12#define BTH_MFG_LUCENT 7
 13#define BTH_MFG_MOTOROLA 8
 14#define BTH_MFG_INFINEON 9
 15#define BTH_MFG_CSR 10
 16#define BTH_MFG_SILICONWAVE 11
 17#define BTH_MFG_DIGIANSWER 12
 18#define BTH_MFG_TI 13
 19#define BTH_MFG_PARTHUS 14
 20#define BTH_MFG_BROADCOM 15
 21#define BTH_MFG_MITEL 16
 22#define BTH_MFG_WIDCOMM 17
 23#define BTH_MFG_ZEEVO 18
 24#define BTH_MFG_ATMEL 19
 25#define BTH_MFG_MITSIBUSHI 20
 26#define BTH_MFG_RTX_TELECOM 21
 27#define BTH_MFG_KC_TECHNOLOGY 22
 28#define BTH_MFG_NEWLOGIC 23
 29#define BTH_MFG_TRANSILICA 24
 30#define BTH_MFG_ROHDE_SCHWARZ 25
 31#define BTH_MFG_TTPCOM 26
 32#define BTH_MFG_SIGNIA 27
 33#define BTH_MFG_CONEXANT 28
 34#define BTH_MFG_QUALCOMM 29
 35#define BTH_MFG_INVENTEL 30
 36#define BTH_MFG_AVM_BERLIN 31
 37#define BTH_MFG_BANDSPEED 32
 38#define BTH_MFG_MANSELLA 33
 39#define BTH_MFG_NEC 34
 40#define BTH_MFG_WAVEPLUS_TECHNOLOGY_CO 35
 41#define BTH_MFG_ALCATEL 36
 42#define BTH_MFG_PHILIPS_SEMICONDUCTOR 37
 43#define BTH_MFG_C_TECHNOLOGIES 38
 44#define BTH_MFG_OPEN_INTERFACE 39
 45#define BTH_MFG_RF_MICRO_DEVICES 40
 46#define BTH_MFG_HITACHI 41
 47#define BTH_MFG_SYMBOL_TECHNOLOGIES 42
 48#define BTH_MFG_TENOVIS 43
 49#define BTH_MFG_MACRONIX_INTERNATIONAL 44
 50#define BTH_MFG_MARVELL 72
 51#define BTH_MFG_APPLE 76
 52#define BTH_MFG_NORDIC_SEMICONDUCTORS_ASA 89
 53#define BTH_MFG_ARUBA_NETWORKS 283
 54#define BTH_MFG_INTERNAL_USE 65535
 55
 56const char* ffBluetoothRadioGetVendor(uint32_t manufacturerId) {
 57    switch (manufacturerId) {
 58        case BTH_MFG_ERICSSON:
 59            return "Ericsson";
 60        case BTH_MFG_NOKIA:
 61            return "Nokia";
 62        case BTH_MFG_INTEL:
 63            return "Intel";
 64        case BTH_MFG_IBM:
 65            return "IBM";
 66        case BTH_MFG_TOSHIBA:
 67            return "Toshiba";
 68        case BTH_MFG_3COM:
 69            return "3Com";
 70        case BTH_MFG_MICROSOFT:
 71            return "Microsoft";
 72        case BTH_MFG_LUCENT:
 73            return "Lucent";
 74        case BTH_MFG_MOTOROLA:
 75            return "Motorola";
 76        case BTH_MFG_INFINEON:
 77            return "Infineon";
 78        case BTH_MFG_CSR:
 79            return "CSR";
 80        case BTH_MFG_SILICONWAVE:
 81            return "Silicon-Wave";
 82        case BTH_MFG_DIGIANSWER:
 83            return "Digi-Answer";
 84        case BTH_MFG_TI:
 85            return "Ti";
 86        case BTH_MFG_PARTHUS:
 87            return "Parthus";
 88        case BTH_MFG_BROADCOM:
 89            return "Broadcom";
 90        case BTH_MFG_MITEL:
 91            return "Mitel";
 92        case BTH_MFG_WIDCOMM:
 93            return "Widcomm";
 94        case BTH_MFG_ZEEVO:
 95            return "Zeevo";
 96        case BTH_MFG_ATMEL:
 97            return "Atmel";
 98        case BTH_MFG_MITSIBUSHI:
 99            return "Mitsubishi";
100        case BTH_MFG_RTX_TELECOM:
101            return "RTX Telecom";
102        case BTH_MFG_KC_TECHNOLOGY:
103            return "KC Technology";
104        case BTH_MFG_NEWLOGIC:
105            return "Newlogic";
106        case BTH_MFG_TRANSILICA:
107            return "Transilica";
108        case BTH_MFG_ROHDE_SCHWARZ:
109            return "Rohde-Schwarz";
110        case BTH_MFG_TTPCOM:
111            return "TTPCom";
112        case BTH_MFG_SIGNIA:
113            return "Signia";
114        case BTH_MFG_CONEXANT:
115            return "Conexant";
116        case BTH_MFG_QUALCOMM:
117            return "Qualcomm";
118        case BTH_MFG_INVENTEL:
119            return "Inventel";
120        case BTH_MFG_AVM_BERLIN:
121            return "AVM Berlin";
122        case BTH_MFG_BANDSPEED:
123            return "Bandspeed";
124        case BTH_MFG_MANSELLA:
125            return "Mansella";
126        case BTH_MFG_NEC:
127            return "NEC";
128        case BTH_MFG_WAVEPLUS_TECHNOLOGY_CO:
129            return "Waveplus";
130        case BTH_MFG_ALCATEL:
131            return "Alcatel";
132        case BTH_MFG_PHILIPS_SEMICONDUCTOR:
133            return "Philips Semiconductors";
134        case BTH_MFG_C_TECHNOLOGIES:
135            return "C Technologies";
136        case BTH_MFG_OPEN_INTERFACE:
137            return "Open Interface";
138        case BTH_MFG_RF_MICRO_DEVICES:
139            return "RF Micro Devices";
140        case BTH_MFG_HITACHI:
141            return "Hitachi";
142        case BTH_MFG_SYMBOL_TECHNOLOGIES:
143            return "Symbol Technologies";
144        case BTH_MFG_TENOVIS:
145            return "Tenovis";
146        case BTH_MFG_MACRONIX_INTERNATIONAL:
147            return "Macronix International";
148        case BTH_MFG_MARVELL:
149            return "Marvell";
150        case BTH_MFG_APPLE:
151            return "Apple";
152        case BTH_MFG_NORDIC_SEMICONDUCTORS_ASA:
153            return "Nordic Semiconductor ASA";
154        case BTH_MFG_ARUBA_NETWORKS:
155            return "Aruba Networks";
156        case BTH_MFG_INTERNAL_USE:
157            return "Internal Use";
158        default:
159            return "Unknown";
160    }
161}