Bluetooth: Added device class to settings, in case it can't be retrieved from the dongle.
Signed-off-by: Matt Madia <[email protected]>
This commit is contained in:
@@ -24,6 +24,7 @@ void
|
|||||||
BluetoothSettings::Defaults()
|
BluetoothSettings::Defaults()
|
||||||
{
|
{
|
||||||
Data.PickedDevice = bdaddrUtils::NullAddress();
|
Data.PickedDevice = bdaddrUtils::NullAddress();
|
||||||
|
Data.LocalDeviceClass = DeviceClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ class BluetoothSettings
|
|||||||
public:
|
public:
|
||||||
struct {
|
struct {
|
||||||
bdaddr_t PickedDevice;
|
bdaddr_t PickedDevice;
|
||||||
|
DeviceClass LocalDeviceClass;
|
||||||
} Data;
|
} Data;
|
||||||
|
|
||||||
BluetoothSettings();
|
BluetoothSettings();
|
||||||
|
|||||||
@@ -83,6 +83,11 @@ BluetoothSettingsView::BluetoothSettingsView(const char* name)
|
|||||||
if (ActiveLocalDevice != NULL) {
|
if (ActiveLocalDevice != NULL) {
|
||||||
fExtDeviceView->SetLocalDevice(ActiveLocalDevice);
|
fExtDeviceView->SetLocalDevice(ActiveLocalDevice);
|
||||||
fExtDeviceView->SetEnabled(true);
|
fExtDeviceView->SetEnabled(true);
|
||||||
|
|
||||||
|
DeviceClass rememberedClass = ActiveLocalDevice->GetDeviceClass();
|
||||||
|
|
||||||
|
if (!rememberedClass.IsUnknownDeviceClass())
|
||||||
|
fSettings.Data.LocalDeviceClass = rememberedClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
// hinting menu
|
// hinting menu
|
||||||
@@ -200,10 +205,10 @@ BluetoothSettingsView::_SetDeviceClass(uint8 major, uint8 minor,
|
|||||||
{
|
{
|
||||||
bool haveRun = true;
|
bool haveRun = true;
|
||||||
|
|
||||||
DeviceClass devClass(major, minor, service);
|
fSettings.Data.LocalDeviceClass.SetRecord(major, minor, service);
|
||||||
|
|
||||||
if (ActiveLocalDevice != NULL)
|
if (ActiveLocalDevice != NULL)
|
||||||
ActiveLocalDevice->SetDeviceClass(devClass);
|
ActiveLocalDevice->SetDeviceClass(fSettings.Data.LocalDeviceClass);
|
||||||
else
|
else
|
||||||
haveRun = false;
|
haveRun = false;
|
||||||
|
|
||||||
@@ -240,11 +245,6 @@ BluetoothSettingsView::_BuildClassMenu()
|
|||||||
{
|
{
|
||||||
BMessage* message = NULL;
|
BMessage* message = NULL;
|
||||||
BMenuItem* item = NULL;
|
BMenuItem* item = NULL;
|
||||||
DeviceClass devClass;
|
|
||||||
|
|
||||||
if (ActiveLocalDevice != NULL) {
|
|
||||||
devClass = ActiveLocalDevice->GetDeviceClass();
|
|
||||||
}
|
|
||||||
|
|
||||||
fClassMenu = new BPopUpMenu(B_TRANSLATE("Identify us as..."));
|
fClassMenu = new BPopUpMenu(B_TRANSLATE("Identify us as..."));
|
||||||
|
|
||||||
@@ -253,8 +253,8 @@ BluetoothSettingsView::_BuildClassMenu()
|
|||||||
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kDesktopLabel), message);
|
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kDesktopLabel), message);
|
||||||
fClassMenu->AddItem(item);
|
fClassMenu->AddItem(item);
|
||||||
|
|
||||||
if (devClass.MajorDeviceClass() == 1 &&
|
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
|
||||||
devClass.MinorDeviceClass() == 1)
|
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 1)
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
|
|
||||||
message = new BMessage(kMsgSetDeviceClass);
|
message = new BMessage(kMsgSetDeviceClass);
|
||||||
@@ -262,8 +262,8 @@ BluetoothSettingsView::_BuildClassMenu()
|
|||||||
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kServerLabel), message);
|
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kServerLabel), message);
|
||||||
fClassMenu->AddItem(item);
|
fClassMenu->AddItem(item);
|
||||||
|
|
||||||
if (devClass.MajorDeviceClass() == 1 &&
|
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
|
||||||
devClass.MinorDeviceClass() == 2)
|
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 2)
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
|
|
||||||
message = new BMessage(kMsgSetDeviceClass);
|
message = new BMessage(kMsgSetDeviceClass);
|
||||||
@@ -271,8 +271,8 @@ BluetoothSettingsView::_BuildClassMenu()
|
|||||||
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kLaptopLabel), message);
|
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kLaptopLabel), message);
|
||||||
fClassMenu->AddItem(item);
|
fClassMenu->AddItem(item);
|
||||||
|
|
||||||
if (devClass.MajorDeviceClass() == 1 &&
|
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
|
||||||
devClass.MinorDeviceClass() == 3)
|
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 3)
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
|
|
||||||
message = new BMessage(kMsgSetDeviceClass);
|
message = new BMessage(kMsgSetDeviceClass);
|
||||||
@@ -280,8 +280,8 @@ BluetoothSettingsView::_BuildClassMenu()
|
|||||||
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kHandheldLabel), message);
|
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kHandheldLabel), message);
|
||||||
fClassMenu->AddItem(item);
|
fClassMenu->AddItem(item);
|
||||||
|
|
||||||
if (devClass.MajorDeviceClass() == 1 &&
|
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
|
||||||
devClass.MinorDeviceClass() == 4)
|
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 4)
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
|
|
||||||
message = new BMessage(kMsgSetDeviceClass);
|
message = new BMessage(kMsgSetDeviceClass);
|
||||||
@@ -289,8 +289,8 @@ BluetoothSettingsView::_BuildClassMenu()
|
|||||||
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kPhoneLabel), message);
|
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kPhoneLabel), message);
|
||||||
fClassMenu->AddItem(item);
|
fClassMenu->AddItem(item);
|
||||||
|
|
||||||
if (devClass.MajorDeviceClass() == 2 &&
|
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 2 &&
|
||||||
devClass.MinorDeviceClass() == 3)
|
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 3)
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user