aboutsummaryrefslogtreecommitdiff
path: root/nimbluez/msbt/ms_bthsdpdef.nim
blob: 051fc44a681c383104ec42e9098d93192c983290 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
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
#
#    Copyright (C) Microsoft.  All rights reserved.
#

import winlean

type
  WCHAR* = uint16
  LPWSTR* = ptr WCHAR
  LPCWSTR* = ptr WCHAR
  PWSTR* = LPWSTR
#   GUID* {.final, pure.} = object
#     D1*: int32
#     D2*: int16
#     D3*: int16
#     D4*: array [0..7, int8]
  BOOL* = int32
  CHAR* = char
  UCHAR* = uint8
  BYTE* = byte
#   ULONG* = int32
#   DWORD* = int32
  LPSTR* = cstring
  LPDWORD* = ptr DWORD
  ULONGLONG* = uint64
  LONGLONG* = int64
  USHORT* = uint16
  SHORT* = int16
#   HANDLE* = int32
  SYSTEMTIME* {.final, pure.} = object
    wYear*: int16
    wMonth*: int16
    wDayOfWeek*: int16
    wDay*: int16
    wHour*: int16
    wMinute*: int16
    wSecond*: int16
    wMilliseconds*: int16
  LPVOID* = pointer
  PVOID* = pointer
  HWND* = HANDLE
  LPBYTE* = ptr int8


type
  SDP_LARGE_INTEGER_16* = object
    LowPart*: ULONGLONG
    HighPart*: LONGLONG

  SDP_ULARGE_INTEGER_16* = object
    LowPart*: ULONGLONG
    HighPart*: ULONGLONG

  PSDP_ULARGE_INTEGER_16* = ptr SDP_ULARGE_INTEGER_16
  LPSDP_ULARGE_INTEGER_16* = ptr SDP_ULARGE_INTEGER_16
  PSDP_LARGE_INTEGER_16* = ptr SDP_LARGE_INTEGER_16
  LPSDP_LARGE_INTEGER_16* = ptr SDP_LARGE_INTEGER_16

  NodeContainerType* = enum
    NodeContainerTypeSequence, NodeContainerTypeAlternative

  SDP_ERROR* = USHORT
  PSDP_ERROR* = ptr USHORT

  SDP_TYPE* = enum
    SDP_TYPE_NIL = 0x00000000, SDP_TYPE_UINT = 0x00000001,
    SDP_TYPE_INT = 0x00000002, SDP_TYPE_UUID = 0x00000003,
    SDP_TYPE_STRING = 0x00000004, SDP_TYPE_BOOLEAN = 0x00000005,
    SDP_TYPE_SEQUENCE = 0x00000006, SDP_TYPE_ALTERNATIVE = 0x00000007,
    SDP_TYPE_URL = 0x00000008, SDP_TYPE_CONTAINER = 0x00000020
#  9 - 31 are reserved
# allow for a little easier type checking / sizing for integers and UUIDs
# ((SDP_ST_XXX & 0xF0) >> 4) == SDP_TYPE_XXX
# size of the data (in bytes) is encoded as ((SDP_ST_XXX & 0xF0) >> 8)

  SDP_SPECIFICTYPE* = enum
    SDP_ST_NONE = 0x00000000, SDP_ST_UINT8 = 0x00000010,
    SDP_ST_INT8 = 0x00000020, SDP_ST_UINT16 = 0x00000110,
    SDP_ST_INT16 = 0x00000120, SDP_ST_UUID16 = 0x00000130,
    SDP_ST_UINT32 = 0x00000210, SDP_ST_INT32 = 0x00000220,
    SDP_ST_UINT64 = 0x00000310, SDP_ST_INT64 = 0x00000320,
    SDP_ST_UINT128 = 0x00000410, SDP_ST_INT128 = 0x00000420,
    SDP_ST_UUID128 = 0x00000430
const
  SDP_ST_UUID32* = SDP_ST_INT32
type
  SdpAttributeRange* = object
    minAttribute*: USHORT
    maxAttribute*: USHORT

  SdpQueryUuidUnion* = object  {.union.}
    uuid128*: GUID
    uuid32*: ULONG
    uuid16*: USHORT

  SdpQueryUuid* = object
    u*: SdpQueryUuidUnion
    uuidType*: USHORT