diff --git a/headers/os/bluetooth/DeviceClass.h b/headers/os/bluetooth/DeviceClass.h new file mode 100644 index 0000000000..ebe4329416 --- /dev/null +++ b/headers/os/bluetooth/DeviceClass.h @@ -0,0 +1,47 @@ +/* + * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com + * + * All rights reserved. Distributed under the terms of the MIT License. + * + */ + +#ifndef _DEVICE_CLASS_H +#define _DEVICE_CLASS_H + +#include + +namespace Bluetooth { + + class DeviceClass { + + public: + DeviceClass(int record) { + this->record = record; + } + + int getServiceClasses() { + return (record & 0x00FFE000) >> 13; + } + + int getMajorDeviceClass() { + return (record & 0x00001F00) >> 8; + } + + void getMajorDeviceClass(BString* str) { + + } + + int getMinorDeviceClass() { + return (record & 0x000000FF) >> 2; + } + + void getMinorDeviceClass(BString* str) { + + } + + private: + int record; + }; +} + +#endif diff --git a/headers/os/bluetooth/LocalDevice.h b/headers/os/bluetooth/LocalDevice.h new file mode 100644 index 0000000000..cb4fc9b0df --- /dev/null +++ b/headers/os/bluetooth/LocalDevice.h @@ -0,0 +1,49 @@ +/* + * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com + * + * All rights reserved. Distributed under the terms of the MIT License. + * + */ + +#ifndef _LOCAL_DEVICE_H +#define _LOCAL_DEVICE_H + +#include +#include + +#include + +namespace Bluetooth { + + class DiscoveryAgent; + + class LocalDevice { + + public: + /* Possible throwing */ + static LocalDevice* getLocalDevice(); + static LocalDevice* getLocalDevice(uint8 dev); + static LocalDevice* getLocalDevice(bdaddr_t bdaddr); + + DiscoveryAgent* getDiscoveryAgent(); + BString getFriendlyName(); + DeviceClass getDeviceClass(); + /* Possible throwing */ + bool setDiscoverable(int mode); + + BString getProperty(const char* property); + void getProperty(const char* property, uint32* value); + + int getDiscoverable(); + BString getBluetoothAddress(); +/* + ServiceRecord getRecord(Connection notifier); + void updateRecord(ServiceRecord srvRecord); +*/ + private: + LocalDevice(); + }; + +} + +#endif diff --git a/headers/os/bluetooth/bdaddrUtils.h b/headers/os/bluetooth/bdaddrUtils.h new file mode 100644 index 0000000000..4913c2c03e --- /dev/null +++ b/headers/os/bluetooth/bdaddrUtils.h @@ -0,0 +1,41 @@ +/* + * Copyright 2007 Haiku. + * Distributed under the terms of the MIT License. + * + * Authors: + * Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com + */ + +#ifndef _BDADDR_UTILS_H +#define _BDADDR_UTILS_H + + +namespace Bluetooth { + + class bdaddrUtils { + + public: + static inline bdaddr_t nullAddress() { + + return ((bdaddr_t) {{0, 0, 0, 0, 0, 0}}); + } + static inline bdaddr_t localAddress() { + + return ((bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}}); + } + + static inline bdaddr_t broadcastAddress() { + + return ((bdaddr_t) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}); + } + + static const char* ToString(bdaddr_t bdaddr) { + static char str[12]; + + return str; + } + + }; +} + +#endif diff --git a/headers/os/bluetooth/bluetooth.h b/headers/os/bluetooth/bluetooth.h new file mode 100644 index 0000000000..be2ceadc74 --- /dev/null +++ b/headers/os/bluetooth/bluetooth.h @@ -0,0 +1,38 @@ +/* + * Copyright 2007 Haiku. + * Distributed under the terms of the MIT License. + * + * Authors: + * Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com + */ + +#ifndef _BLUETOOTH_H +#define _BLUETOOTH_H + +#include + +/* Bluetooth version */ +#define BLUETOOTH_1_1B 0 +#define BLUETOOTH_1_1 1 +#define BLUETOOTH_1_2 2 +#define BLUETOOTH_2_0 3 + +#define BLUETOOTH_VERSION BLUETOOTH_2_0 + + +/* Bluetooth common types */ + +/* BD Address */ +typedef struct { + uint8 b[6]; +} __attribute__((packed)) bdaddr_t; + +/* 128 integer type needed for SDP */ +struct int128 { + int8 b[16]; +}; +typedef struct int128 int128; +typedef struct int128 uint128; + + +#endif