Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Network.Bluetooth / Tizen.Network.Bluetooth / BluetoothEnumerations.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using Tizen.Internals.Errors;
19
20 namespace Tizen.Network.Bluetooth
21 {
22     /// <summary>
23     /// Enumeration for the Bluetooth states.
24     /// </summary>
25     public enum BluetoothState
26     {
27         /// <summary>
28         /// The disabled state.
29         /// </summary>
30         Disabled = 0,
31         /// <summary>
32         /// The enabled state.
33         /// </summary>
34         Enabled
35     }
36
37     /// <summary>
38     /// Enumeration for the Bluetooth errors.
39     /// </summary>
40     public enum BluetoothError
41     {
42         /// <summary>
43         /// Successful.
44         /// </summary>
45         None = ErrorCode.None,
46         /// <summary>
47         /// Operation canceled.
48         /// </summary>
49         Cancelled = ErrorCode.Canceled,
50         /// <summary>
51         /// Invalid parameter.
52         /// </summary>
53         InvalidParameter = ErrorCode.InvalidParameter,
54         /// <summary>
55         /// Out of memory.
56         /// </summary>
57         OutOfMemory = ErrorCode.OutOfMemory,
58         /// <summary>
59         /// Device or resource busy.
60         /// </summary>
61         ResourceBusy = ErrorCode.ResourceBusy,
62         /// <summary>
63         /// Timeout error.
64         /// </summary>
65         TimedOut = ErrorCode.TimedOut,
66         /// <summary>
67         /// Operation now in progress.
68         /// </summary>
69         NowInProgress = ErrorCode.NowInProgress,
70         /// <summary>
71         /// Bluetooth is not supported.
72         /// </summary>
73         NotSupported = ErrorCode.NotSupported,
74         /// <summary>
75         /// Permission denied.
76         /// </summary>
77         PermissionDenied = ErrorCode.PermissionDenied,
78         /// <summary>
79         /// Quota exceeded.
80         /// </summary>
81         QuotaExceeded = ErrorCode.QuotaExceeded,
82         /// <summary>
83         /// No data available.
84         /// </summary>
85         NoData = ErrorCode.NoData,
86         /// <summary>
87         /// Local adapter not initialized.
88         /// </summary>
89         NotInitialized = -0x01C00000 | 0x0101,
90         /// <summary>
91         /// Local adapter not enabled.
92         /// </summary>
93         NotEnabled = -0x01C00000 | 0x0102,
94         /// <summary>
95         /// Operation already done.
96         /// </summary>
97         AlreadyDone = -0x01C00000 | 0x0103,
98         /// <summary>
99         /// Operation failed.
100         /// </summary>
101         OperationFailed = -0x01C00000 | 0x0104,
102         /// <summary>
103         /// Operation not in progress.
104         /// </summary>
105         NotInProgress = -0x01C00000 | 0x0105,
106         /// <summary>
107         /// Remote device not bonded.
108         /// </summary>
109         RemoteDeviceNotBonded = -0x01C00000 | 0x0106,
110         /// <summary>
111         /// Authentication rejected.
112         /// </summary>
113         AuthRejected = -0x01C00000 | 0x0107,
114         /// <summary>
115         /// Authentication failed.
116         /// </summary>
117         AuthFailed = -0x01C00000 | 0x0108,
118         /// <summary>
119         /// Remote device not found.
120         /// </summary>
121         RemoteDeviceNotFound = -0x01C00000 | 0x0109,
122         /// <summary>
123         /// Service search failed.
124         /// </summary>
125         ServiceSearchFailed = -0x01C00000 | 0x010A,
126         /// <summary>
127         /// Remote device is not connected.
128         /// </summary>
129         RemoteDeviceNotConnected = -0x01C00000 | 0x010B,
130         /// <summary>
131         /// Resource temporarily unavailable.
132         /// </summary>
133         ResourceUnavailable = -0x01C00000 | 0x010C,
134         /// <summary>
135         /// Service Not Found.
136         /// </summary>
137         ServiceNotFound = -0x01C00000 | 0x010D
138     }
139
140     /// <summary>
141     /// Enumeration for the Bluetooth visibility modes.
142     /// </summary>
143     public enum VisibilityMode
144     {
145         /// <summary>
146         /// The non-discoverable mode.
147         /// </summary>
148         NonDiscoverable = 0,
149         /// <summary>
150         /// The discoverable mode.
151         /// </summary>
152         Discoverable = 1,
153         /// <summary>
154         /// The discoverable mode with limited time.
155         /// </summary>
156         TimeLimitedDiscoverable = 2
157     }
158
159     /// <summary>
160     /// Enumeration for the Bluetooth major device class types.
161     /// </summary>
162     public enum BluetoothMajorDeviceClassType
163     {
164         /// <summary>
165         /// The miscellaneous major class type.
166         /// </summary>
167         Misc = 0x00,
168         /// <summary>
169         /// The computer major class type.
170         /// </summary>
171         Computer = 0x01,
172         /// <summary>
173         /// The phone major class type.
174         /// </summary>
175         Phone = 0x02,
176         /// <summary>
177         /// The LAN/Network access point major class type.
178         /// </summary>
179         LanNetworkAccessPoint = 0x03,
180         /// <summary>
181         /// The audio/video major class type.
182         /// </summary>
183         AudioVideo = 0x04,
184         /// <summary>
185         /// The peripheral major class type.
186         /// </summary>
187         Peripheral = 0x05,
188         /// <summary>
189         /// The imaging major class type.
190         /// </summary>
191         Imaging = 0x06,
192         /// <summary>
193         /// The wearable major class type.
194         /// </summary>
195         Wearable = 0x07,
196         /// <summary>
197         /// The toy major class type.
198         /// </summary>
199         Toy = 0x08,
200         /// <summary>
201         /// The health major class type.
202         /// </summary>
203         Health = 0x09,
204         /// <summary>
205         /// The uncategorized major class type.
206         /// </summary>
207         Uncategorized = 0x1F
208     }
209
210     /// <summary>
211     /// Enumeration for the Bluetooth minor device class types.
212     /// </summary>
213     public enum BluetoothMinorDeviceClassType
214     {
215         /// <summary>
216         /// The uncategorized computer minor class type.
217         /// </summary>
218         ComputerUncategorized = 0x00,
219         /// <summary>
220         /// The desktop workstation computer minor class type.
221         /// </summary>
222         ComputerDesktopWorkstation = 0x04,
223         /// <summary>
224         /// The server computer minor class type.
225         /// </summary>
226         ComputerServer = 0x08,
227         /// <summary>
228         /// The laptop computer minor class type.
229         /// </summary>
230         ComputerLaptop = 0x0C,
231         /// <summary>
232         /// The handheld PC/PDA computer minor class type.
233         /// </summary>
234         ComputerHandheldPcOrPda = 0x10,
235         /// <summary>
236         /// The palm sized PC/PDA computer minor class type.
237         /// </summary>
238         ComputerPalmSizedPcOrPda = 0x14,
239         /// <summary>
240         /// The wearable computer minor class type.
241         /// </summary>
242         ComputerWearableComputer = 0x18,
243
244         /// <summary>
245         /// The unclassified phone minor class type.
246         /// </summary>
247         PhoneUncategorized = 0x00,
248         /// <summary>
249         /// The cellular phone minor class type.
250         /// </summary>
251         PhoneCellular = 0x04,
252         /// <summary>
253         /// The cordless phone minor class type.
254         /// </summary>
255         PhoneCordless = 0x08,
256         /// <summary>
257         /// The smartphone phone minor class type.
258         /// </summary>
259         PhoneSmartPhone = 0x0C,
260         /// <summary>
261         /// The wired modem or voice gateway phone minor class type.
262         /// </summary>
263         PhoneWiredModemOrVoiceGateway = 0x10,
264         /// <summary>
265         /// The ISDN phone minor class type.
266         /// </summary>
267         PhoneCommonIsdnAccess = 0x14,
268
269         /// <summary>
270         /// Fully available LAN/Network access point minor class type.
271         /// </summary>
272         LanNetworkAccessPointFullyAvailable = 0x04,
273         /// <summary>
274         /// 1-17% utilized LAN/Network access point minor class type.
275         /// </summary>
276         LanNetworkAccessPoint1To17PercentUtilized = 0x20,
277         /// <summary>
278         /// 17-33% utilized LAN/Network access point minor class type.
279         /// </summary>
280         LanNetworkAccessPoint17To33PercentUtilized = 0x40,
281         /// <summary>
282         /// 33-50% utilized LAN/Network access point minor class type.
283         /// </summary>
284         LanNetworkAccessPoint33To50PercentUtilized = 0x60,
285         /// <summary>
286         /// 50-67% utilized LAN/Network access point minor class type.
287         /// </summary>
288         LanNetworkAccessPoint50To67PercentUtilized = 0x80,
289         /// <summary>
290         /// 67-83% utilized LAN/Network access point minor class type.
291         /// </summary>
292         LanNetworkAccessPoint67To83PercentUtilized = 0xA0,
293         /// <summary>
294         /// 83-99% utilized LAN/Network access point minor class type.
295         /// </summary>
296         LanNetworkAccessPoint83To99PercentUtilized = 0xC0,
297         /// <summary>
298         /// No service available LAN/Network access point minor class type.
299         /// </summary>
300         LanNetworkAccessPointNoServiceAvailable = 0xE0,
301
302         /// <summary>
303         /// The uncategorized audio/video minor class type.
304         /// </summary>
305         AudioVideoUncategorized = 0x00,
306         /// <summary>
307         /// The wearable headset audio/video minor class type.
308         /// </summary>
309         AudioVideoWearableHeadset = 0x04,
310         /// <summary>
311         /// The hands free audio/video minor class type.
312         /// </summary>
313         AudioVideoHandsFree = 0x08,
314         /// <summary>
315         /// The microphone audio/video minor class type.
316         /// </summary>
317         AudioVideoMicrophone = 0x10,
318         /// <summary>
319         /// The loudspeaker audio/video minor class type.
320         /// </summary>
321         AudioVideoLoudspeaker = 0x14,
322         /// <summary>
323         /// The headphones audio/video minor class type.
324         /// </summary>
325         AudioVideoHeadphones = 0x18,
326         /// <summary>
327         /// The portable audio audio/video minor class type.
328         /// </summary>
329         AudioVideoPortableAudio = 0x1C,
330         /// <summary>
331         /// The car audio audio/video minor class type.
332         /// </summary>
333         AudioVideoCarAudio = 0x20,
334         /// <summary>
335         /// The SetTopbox audio/video minor class type.
336         /// </summary>
337         AudioVideoSetTopBox = 0x24,
338         /// <summary>
339         /// The Hi-Fi audio/video minor class type.
340         /// </summary>
341         AudioVideoHifiAudioDevice = 0x28,
342         /// <summary>
343         /// The VCR audio/video minor class type.
344         /// </summary>
345         AudioVideoVcr = 0x2C,
346         /// <summary>
347         /// The video camera audio/video minor class type.
348         /// </summary>
349         AudioVideoVideoCamera = 0x30,
350         /// <summary>
351         /// Camcorder audio/video minor class type.
352         /// </summary>
353         AudioVideoCamcorder = 0x34,
354         /// <summary>
355         /// The video monitor audio/video minor class type.
356         /// </summary>
357         AudioVideoVideoMonitor = 0x38,
358         /// <summary>
359         /// The video display and loudspeaker audio/video minor class type.
360         /// </summary>
361         AudioVideoVideoDisplayLoudspeaker = 0x3C,
362         /// <summary>
363         /// The video conferencing audio/video minor class type.
364         /// </summary>
365         AudioVideoVideoConferencing = 0x40,
366         /// <summary>
367         /// The gaming/toy audio/video minor class type.
368         /// </summary>
369         AudioVideoGamingToy = 0x48,
370
371         /// <summary>
372         /// The uncategorized peripheral minor class type.
373         /// </summary>
374         PeripheralUncategorized = 0x00,
375         /// <summary>
376         /// The keyboard peripheral minor class type.
377         /// </summary>
378         PeripheralKeyBoard = 0x40,
379         /// <summary>
380         /// The pointing device peripheral minor class type.
381         /// </summary>
382         PeripheralPointingDevice = 0x80,
383         /// <summary>
384         /// The combo keyboard peripheral minor class type.
385         /// </summary>
386         PeripheralComboKeyboardPointingDevice = 0xC0,
387         /// <summary>
388         /// The joystick peripheral minor class type.
389         /// </summary>
390         PeripheralJoystick = 0x04,
391         /// <summary>
392         /// The game pad peripheral minor class type.
393         /// </summary>
394         PeripheralGamePad = 0x08,
395         /// <summary>
396         /// The remote control peripheral minor class type.
397         /// </summary>
398         PeripheralRemoteControl = 0x0C,
399         /// <summary>
400         /// The sensing device peripheral minor class type.
401         /// </summary>
402         PeripheralSensingDevice = 0x10,
403         /// <summary>
404         /// The digitizer peripheral minor class type.
405         /// </summary>
406         PeripheralDigitizerTablet = 0x14,
407         /// <summary>
408         /// The card reader peripheral minor class type.
409         /// </summary>
410         PeripheralCardReader = 0x18,
411         /// <summary>
412         /// The digital pen peripheral minor class type.
413         /// </summary>
414         PeripheralDigitalPen = 0x1C,
415         /// <summary>
416         /// The handheld scanner peripheral minor class type.
417         /// </summary>
418         PeripheralHandheldScanner = 0x20,
419         /// <summary>
420         /// The handheld gestural input computer minor class type.
421         /// </summary>
422         PeripheralHandheldGesturalInputDevice = 0x24,
423
424         /// <summary>
425         /// The display imaging minor class type.
426         /// </summary>
427         ImagingDisplay = 0x10,
428         /// <summary>
429         /// The camera imaging minor class type.
430         /// </summary>
431         ImagingCamera = 0x20,
432         /// <summary>
433         /// The scanner imaging minor class type.
434         /// </summary>
435         ImagingScanner = 0x40,
436         /// <summary>
437         /// The printer imaging minor class type.
438         /// </summary>
439         ImagingPrinter = 0x80,
440
441         /// <summary>
442         /// The wrist watch wearable minor class type.
443         /// </summary>
444         WearableWristWatch = 0x04,
445         /// <summary>
446         /// The pager wearable minor class type.
447         /// </summary>
448         WearablePager = 0x08,
449         /// <summary>
450         /// The jacket wearable minor class type.
451         /// </summary>
452         WearableJacket = 0x0C,
453         /// <summary>
454         /// The helmet wearable minor class type.
455         /// </summary>
456         WearableHelmet = 0x10,
457         /// <summary>
458         /// The glasses wearable minor class type.
459         /// </summary>
460         WearableGlasses = 0x14,
461
462         /// <summary>
463         /// The robot toy minor class type.
464         /// </summary>
465         ToyRobot = 0x04,
466         /// <summary>
467         /// The vehicle toy minor class type.
468         /// </summary>
469         ToyVehicle = 0x08,
470         /// <summary>
471         /// The doll toy minor class type.
472         /// </summary>
473         ToyDollAction = 0x0C,
474         /// <summary>
475         /// The controller toy minor class type.
476         /// </summary>
477         ToyController = 0x10,
478         /// <summary>
479         /// The game toy minor class type.
480         /// </summary>
481         ToyGame = 0x14,
482
483         /// <summary>
484         /// The uncategorized health minor class type.
485         /// </summary>
486         HealthUncategorized = 0x00,
487         /// <summary>
488         /// The BP monitor health minor class type.
489         /// </summary>
490         HealthBloodPressureMonitor = 0x04,
491         /// <summary>
492         /// The thermometer health minor class type.
493         /// </summary>
494         HealthThermometer = 0x08,
495         /// <summary>
496         /// The scale health minor class type.
497         /// </summary>
498         HealthWeighingScale = 0x0C,
499         /// <summary>
500         /// The glucose meter health minor class type.
501         /// </summary>
502         HealthGlucoseMeter= 0x10,
503         /// <summary>
504         /// The pulse oximeter health minor class type.
505         /// </summary>
506         HealthPulseOximeter = 0x14,
507         /// <summary>
508         /// The heart/pulse rate monitor health minor class type.
509         /// </summary>
510         HealthHeartPulseRateMonitor = 0x18,
511         /// <summary>
512         /// The display health minor class type.
513         /// </summary>
514         HealthDataDisplay = 0x1C,
515         /// <summary>
516         /// The step counter health minor class type.
517         /// </summary>
518         HealthStepCounter = 0x20,
519         /// <summary>
520         /// The body composition analyzer health minor class type.
521         /// </summary>
522         HealthBodyCompositionAnalyzer = 0x24,
523         /// <summary>
524         /// The peak flow monitor health minor class type.
525         /// </summary>
526         HealthPeakFlowMonitor = 0x28,
527         /// <summary>
528         /// The medication monitor health minor class type.
529         /// </summary>
530         HealthMedicationMonitor = 0x2C,
531         /// <summary>
532         /// The knee prosthesis health minor class type.
533         /// </summary>
534         HealthKneeProsthesis = 0x30,
535         /// <summary>
536         /// The ankle prosthesis health minor class type.
537         /// </summary>
538         HealthAnkleProsthesis = 0x34
539     }
540
541     /// <summary>
542     /// Enumeration for the Bluetooth device discovery states.
543     /// </summary>
544     public enum BluetoothDeviceDiscoveryState
545     {
546         /// <summary>
547         /// The device discovery is started.
548         /// </summary>
549         Started = 0,
550         /// <summary>
551         /// The device discovery is finished.
552         /// </summary>
553         Finished,
554         /// <summary>
555         /// The remote device is found.
556         /// </summary>
557         Found
558     }
559
560     /// <summary>
561     /// Enumeration for the Bluetooth appearance types.
562     /// </summary>
563     public enum BluetoothAppearanceType
564     {
565         /// <summary>
566         /// Unknown.
567         /// </summary>
568         Unknown = 0,
569         /// <summary>
570         /// Generic phone.
571         /// </summary>
572         GenericPhone = 1,
573         /// <summary>
574         /// Generic computer.
575         /// </summary>
576         GenericComputer = 2,
577         /// <summary>
578         /// Generic watch.
579         /// </summary>
580         GenericWatch = 3
581     }
582
583     /// <summary>
584     /// Enumeration for the Bluetooth audio profile types.
585     /// </summary>
586     public enum BluetoothAudioProfileType
587     {
588         /// <summary>
589         /// All supported profiles of audio.
590         /// </summary>
591         All = 0,
592         /// <summary>
593         /// The Headset and Hands-Free profile.
594         /// </summary>
595         HspHfp,
596         /// <summary>
597         /// The Advanced Audio Distribution profile.
598         /// </summary>
599         AdvancedAudioDistribution,
600         /// <summary>
601         /// The Audio Gateway profile.
602         /// </summary>
603         AudioGateway,
604         /// <summary>
605         /// The Advanced Audio Distribution profile sink role.
606         /// </summary>
607         AdvancedAudioDistributionSink
608     }
609
610     /// <summary>
611     /// Enumeration for the Bluetooth service class types.
612     /// </summary>
613     public enum BluetoothServiceClassType
614     {
615         /// <summary>
616         /// No service class.
617         /// </summary>
618         None = 0,
619         /// <summary>
620         /// The RES service class.
621         /// </summary>
622         Res = 0x00000001,
623         /// <summary>
624         /// The SPP service class.
625         /// </summary>
626         Spp = 0x00000002,
627         /// <summary>
628         /// The DUN service class.
629         /// </summary>
630         Dun = 0x00000004,
631         /// <summary>
632         /// The FAX service class.
633         /// </summary>
634         Fax = 0x00000008,
635         /// <summary>
636         /// The LAP service class.
637         /// </summary>
638         Lap = 0x00000010,
639         /// <summary>
640         /// The HSP service class.
641         /// </summary>
642         Hsp = 0x00000020,
643         /// <summary>
644         /// The HFPservice class.
645         /// </summary>
646         Hfp = 0x00000040,
647         /// <summary>
648         /// The OPP service class.
649         /// </summary>
650         Opp = 0x00000080,
651         /// <summary>
652         /// The FTP service class.
653         /// </summary>
654         Ftp = 0x00000100,
655         /// <summary>
656         /// The CTP service class.
657         /// </summary>
658         Ctp = 0x00000200,
659         /// <summary>
660         /// The ICP service class.
661         /// </summary>
662         Icp = 0x00000400,
663         /// <summary>
664         /// The Sync service class.
665         /// </summary>
666         Sync = 0x00000800,
667         /// <summary>
668         /// The BPP service class.
669         /// </summary>
670         Bpp = 0x00001000,
671         /// <summary>
672         /// The BIP service class.
673         /// </summary>
674         Bip = 0x00002000,
675         /// <summary>
676         /// The PANU service class.
677         /// </summary>
678         Panu = 0x00004000,
679         /// <summary>
680         /// The NAP service class.
681         /// </summary>
682         Nap = 0x00008000,
683         /// <summary>
684         /// The GN service class.
685         /// </summary>
686         Gn = 0x00010000,
687         /// <summary>
688         /// The SAP service class.
689         /// </summary>
690         Sap = 0x00020000,
691         /// <summary>
692         /// The A2DP service class.
693         /// </summary>
694         A2dp = 0x00040000,
695         /// <summary>
696         /// The AVRCP service class.
697         /// </summary>
698         Avrcp = 0x00080000,
699         /// <summary>
700         /// The PBAP service class.
701         /// </summary>
702         Pbap = 0x00100000,
703         /// <summary>
704         /// The HID service class.
705         /// </summary>
706         Hid = 0x00200000,
707         /// <summary>
708         /// The A2DP Source service class.
709         /// </summary>
710         A2dpSource = 0x00400000,
711         /// <summary>
712         /// All service class.
713         /// </summary>
714         All = 0x00FFFFFF,
715         /// <summary>
716         /// The Max service class.
717         /// </summary>
718         Max
719     }
720
721     /// <summary>
722     /// Enumeration for the Bluetooth profile types.
723     /// </summary>
724     public enum BluetoothProfileType
725     {
726         /// <summary>
727         /// The RFCOMM profile.
728         /// </summary>
729         Rfcomm = 0,
730         /// <summary>
731         /// The Advanced Audio Distribution Profile Source role.
732         /// </summary>
733         AdvancedAudioDistribution,
734         /// <summary>
735         /// The Headset profile.
736         /// </summary>
737         Headset,
738         /// <summary>
739         /// The Human Interface Device profile.
740         /// </summary>
741         HumanInterfaceDevice,
742         /// <summary>
743         /// The Network Access Point profile.
744         /// </summary>
745         NetworkAccessPoint,
746         /// <summary>
747         /// The Audio Gateway profile.
748         /// </summary>
749         AudioGateway,
750         /// <summary>
751         /// The Generic Attribute profile.
752         /// </summary>
753         GenericAttribute,
754         /// <summary>
755         /// The NAP Server profile.
756         /// </summary>
757         NapServer,
758         /// <summary>
759         /// The advanced Audio Distribution profile sink role.
760         /// </summary>
761         AdvancedAudioDistributionSink
762     }
763
764     /// <summary>
765     /// Enumeration for the Bluetooth authorization types.
766     /// </summary>
767     public enum BluetoothAuthorizationType
768     {
769         /// <summary>
770         /// The authorized type.
771         /// </summary>
772         Authorized = 0,
773         /// <summary>
774         /// The unauthorized type.
775         /// </summary>
776         Unauthorized
777     }
778
779     /// <summary>
780     /// Enumeration for the Bluetooth connection link types.
781     /// </summary>
782     public enum BluetoothConnectionLinkType
783     {
784         /// <summary>
785         /// The BR/EDR link.
786         /// </summary>
787         BrEdr = 0,
788         /// <summary>
789         /// The LE link.
790         /// </summary>
791         Le,
792         /// <summary>
793         /// The default connection type.
794         /// </summary>
795         Default
796     }
797
798     /// <summary>
799     /// Enumeration for the Bluetooth disconnect reason.
800     /// </summary>
801     public enum BluetoothDisconnectReason
802     {
803         /// <summary>
804         /// The disconnected by unknown reason.
805         /// </summary>
806         Unknown = 0,
807         /// <summary>
808         /// The disconnected by timeout.
809         /// </summary>
810         Timeout,
811         /// <summary>
812         /// The disconnected by local host.
813         /// </summary>
814         LocalHost,
815         /// <summary>
816         /// The disconnected by remote.
817         /// </summary>
818         Remote
819     }
820
821     /// <summary>
822     /// Enumeration for the connected Bluetooth device event roles.
823     /// </summary>
824     public enum BluetoothSocketRole
825     {
826         /// <summary>
827         /// Unknown role.
828         /// </summary>
829         Unknown,
830         /// <summary>
831         /// The server role.
832         /// </summary>
833         Server,
834         /// <summary>
835         /// The client role.
836         /// </summary>
837         Client
838     }
839
840     /// <summary>
841     /// Enumeration for the Bluetooth socket connection states.
842     /// </summary>
843     public enum BluetoothSocketState
844     {
845         /// <summary>
846         /// The RFCOMM is connected.
847         /// </summary>
848         Connected,
849         /// <summary>
850         /// The RFCOMM is disconnected.
851         /// </summary>
852         Disconnected
853     }
854
855     /// <summary>
856     /// Enumeration for the equalizer states.
857     /// </summary>
858     public enum EqualizerState
859     {
860         /// <summary>
861         /// Equalizer Off.
862         /// </summary>
863         Off = 0,
864         /// <summary>
865         /// Equalizer On.
866         /// </summary>
867         On
868     }
869
870     /// <summary>
871     /// Enumeration for the repeat modes.
872     /// </summary>
873     public enum RepeatMode
874     {
875         /// <summary>
876         /// Repeat off.
877         /// </summary>
878         Off = 0,
879         /// <summary>
880         /// Single track repeat.
881         /// </summary>
882         SingleTrack,
883         /// <summary>
884         /// All track repeat.
885         /// </summary>
886         AllTrack,
887         /// <summary>
888         /// Group repeat.
889         /// </summary>
890         Group
891     }
892
893     /// <summary>
894     /// Enumeration for the shuffle modes.
895     /// </summary>
896     public enum ShuffleMode
897     {
898         /// <summary>
899         /// Shuffle off.
900         /// </summary>
901         Off = 0,
902         /// <summary>
903         /// All tracks shuffle.
904         /// </summary>
905         AllTrack,
906         /// <summary>
907         /// Group shuffle.
908         /// </summary>
909         Group
910     }
911
912     /// <summary>
913     /// Enumeration for the scan modes.
914     /// </summary>
915     public enum ScanMode
916     {
917         /// <summary>
918         /// Scan off.
919         /// </summary>
920         Off = 0,
921         /// <summary>
922         /// All tracks scan.
923         /// </summary>
924         AllTrack,
925         /// <summary>
926         /// Group scan.
927         /// </summary>
928         Group
929     }
930
931     /// <summary>
932     /// Enumeration for the player states.
933     /// </summary>
934     public enum PlayerState
935     {
936         /// <summary>
937         /// The stopped state.
938         /// </summary>
939         Stopped = 0,
940         /// <summary>
941         /// The playing state.
942         /// </summary>
943         Playing,
944         /// <summary>
945         /// The paused state.
946         /// </summary>
947         Paused,
948         /// <summary>
949         /// The seek forward state.
950         /// </summary>
951         SeekForward,
952         /// <summary>
953         /// The seek rewind state.
954         /// </summary>
955         SeekRewind
956     }
957
958     /// <summary>
959     /// Enumeration for the Bluetooth LE device address types.
960     /// </summary>
961     public enum BluetoothLeDeviceAddressType
962     {
963         /// <summary>
964         /// The Buetooth LE public address.
965         /// </summary>
966         BluetoothLePublicAddress,
967         /// <summary>
968         /// The Bluetooth LE private address.
969         /// </summary>
970         BluetoothLePrivateAddress
971     }
972
973     /// <summary>
974     /// Enumeration for the Bluetooth LePacket types.
975     /// </summary>
976     public enum BluetoothLePacketType
977     {
978         /// <summary>
979         /// The Bluetooth LE advertising packet.
980         /// </summary>
981         BluetoothLeAdvertisingPacket,
982         /// <summary>
983         /// The Bluetooth LE scan response packet.
984         /// </summary>
985         BluetoothLeScanResponsePacket
986     }
987
988     /// <summary>
989     /// Enumeration for the Bluetooth LE data types.
990     /// </summary>
991     public enum BluetoothLeDataType
992     {
993         /// <summary>
994         /// The Bluetooth LE packet data list 16 bit service uuid.
995         /// </summary>
996         BluetoothLePacketDataList16BitServiceUuid,
997         /// <summary>
998         /// The Bluetooth LE packet manufacturer data.
999         /// </summary>
1000         BluetoothLePacketManufacturerData
1001     }
1002
1003     /// <summary>
1004     /// Enumeration for the Bluetooth LE advertising mode types.
1005     /// </summary>
1006     public enum BluetoothLeAdvertisingMode
1007     {
1008         /// <summary>
1009         /// The Bluetooth LE advertising balanced mode.
1010         /// </summary>
1011         BluetoothLeAdvertisingBalancedMode,
1012         /// <summary>
1013         /// The Bluetooth LE advertising low latency mode.
1014         /// </summary>
1015         BluetoothLeAdvertisingLowLatencyMode,
1016         /// <summary>
1017         /// The Bluetooth LE advertising low energy mode.
1018         /// </summary>
1019         BluetoothLeAdvertisingLowEnergyMode
1020     }
1021
1022     /// <summary>
1023     /// Enumeration for the Bluetooth LE advertising mode type.
1024     /// </summary>
1025     public enum BluetoothLeAdvertisingState
1026     {
1027         /// <summary>
1028         /// The Bluetooth LE advertising stopped.
1029         /// </summary>
1030         BluetoothLeAdvertisingStopped,
1031         /// <summary>
1032         /// The Bluetooth LE advertising started.
1033         /// </summary>
1034         BluetoothLeAdvertisingStarted
1035     }
1036
1037     /// <summary>
1038     /// Enumeration for the integer type for GATT handle's values.
1039     /// </summary>
1040     public enum IntDataType
1041     {
1042         /// <summary>
1043         /// The 8-bit signed integer type.
1044         /// </summary>
1045         SignedInt8,
1046         /// <summary>
1047         /// The 16-bit signed integer type.
1048         /// </summary>
1049         SignedInt16,
1050         /// <summary>
1051         /// The 32-bit signed integer type.
1052         /// </summary>
1053         SignedInt32,
1054         /// <summary>
1055         /// The 8-bit unsigned integer type.
1056         /// </summary>
1057         UnsignedInt8,
1058         /// <summary>
1059         /// The 16-bit unsigned integer type.
1060         /// </summary>
1061         UnsignedInt16,
1062         /// <summary>
1063         /// The 32-bit unsigned integer type.
1064         /// </summary>
1065         UnsignedInt32
1066     }
1067
1068     /// <summary>
1069     /// Enumerations of the float type for GATT handle's values.
1070     /// </summary>
1071     public enum FloatDataType
1072     {
1073         /// <summary>
1074         /// The 32-bit float type.
1075         /// </summary>
1076         Float,
1077         /// <summary>
1078         /// The 16-bit float type.
1079         /// </summary>
1080         SFloat,
1081     }
1082
1083     /// <summary>
1084     /// Enumeration for the GATT handle's types.
1085     /// </summary>
1086     public enum GattHandleType
1087     {
1088         /// <summary>
1089         /// The GATT service type.
1090         /// </summary>
1091         Service,
1092         /// <summary>
1093         /// The GATT characteristic type.
1094         /// </summary>
1095         Characteristic,
1096         /// <summary>
1097         /// The GATT descriptor type.
1098         /// </summary>
1099         Descriptor
1100     }
1101
1102     /// <summary>
1103     /// Enumeration for the service types.
1104     /// </summary>
1105     public enum BluetoothGattServiceType
1106     {
1107         /// <summary>
1108         /// The GATT primary service type.
1109         /// </summary>
1110         Primary,
1111         /// <summary>
1112         /// The GATT secondary service type.
1113         /// </summary>
1114         Secondary
1115     }
1116
1117     /// <summary>
1118     /// Enumeration for the characteristic's property.
1119     /// </summary>
1120     [Flags]
1121     public enum BluetoothGattProperty
1122     {
1123         /// <summary>
1124         /// The broadcast property.
1125         /// </summary>
1126         Broadcast = 1,
1127         /// <summary>
1128         /// The read property.
1129         /// </summary>
1130         Read = 2,
1131         /// <summary>
1132         /// The write without response property.
1133         /// </summary>
1134         WriteWithoutResponse = 4,
1135         /// <summary>
1136         /// The write property.
1137         /// </summary>
1138         Write = 8,
1139         /// <summary>
1140         /// The notify property.
1141         /// </summary>
1142         Notify = 16,
1143         /// <summary>
1144         /// The indicate property.
1145         /// </summary>
1146         Indicate = 32,
1147         /// <summary>
1148         /// The authenticated signed writes property.
1149         /// </summary>
1150         AuthenticatedSignedWrites = 64,
1151         /// <summary>
1152         /// The extended properties.
1153         /// </summary>
1154         ExtendedProperties = 128,
1155     }
1156
1157     /// <summary>
1158     /// Enumeration for the Bluetooth GATT permission types.
1159     /// </summary>
1160     [Flags]
1161     public enum BluetoothGattPermission
1162     {
1163         /// <summary>
1164         /// Read permission.
1165         /// </summary>
1166         Read = 1,
1167         /// <summary>
1168         /// Write permission.
1169         /// </summary>
1170         Write = 2,
1171     }
1172
1173     /// <summary>
1174     /// Enumeration for the write types.
1175     /// </summary>
1176     public enum BluetoothGattWriteType
1177     {
1178         /// <summary>
1179         /// The write without response.
1180         /// </summary>
1181         NoResponse,
1182         /// <summary>
1183         /// The write with response.
1184         /// </summary>
1185         WriteWithResponse
1186     }
1187
1188     /// <summary>
1189     /// Enumeration for the remote device request types for attributes.
1190     /// </summary>
1191     public enum BluetoothGattRequestType
1192     {
1193         /// <summary>
1194         /// Read requested.
1195         /// </summary>
1196         Read = 0,
1197         /// <summary>
1198         /// Write requested.
1199         /// </summary>
1200         Write = 1,
1201     }
1202 }