Bluetooth: Added device class to settings, in case it can't be retrieved from the dongle.

Signed-off-by: Matt Madia <mattmadia@gmail.com>
This commit is contained in:
Tri-Edge AI 2012-12-16 19:18:19 +02:00 committed by Matt Madia
parent e381b02559
commit be7b42ea99
3 changed files with 19 additions and 17 deletions

View File

@ -24,6 +24,7 @@ void
BluetoothSettings::Defaults()
{
Data.PickedDevice = bdaddrUtils::NullAddress();
Data.LocalDeviceClass = DeviceClass();
}

View File

@ -20,6 +20,7 @@ class BluetoothSettings
public:
struct {
bdaddr_t PickedDevice;
DeviceClass LocalDeviceClass;
} Data;
BluetoothSettings();

View File

@ -83,6 +83,11 @@ BluetoothSettingsView::BluetoothSettingsView(const char* name)
if (ActiveLocalDevice != NULL) {
fExtDeviceView->SetLocalDevice(ActiveLocalDevice);
fExtDeviceView->SetEnabled(true);
DeviceClass rememberedClass = ActiveLocalDevice->GetDeviceClass();
if (!rememberedClass.IsUnknownDeviceClass())
fSettings.Data.LocalDeviceClass = rememberedClass;
}
// hinting menu
@ -200,10 +205,10 @@ BluetoothSettingsView::_SetDeviceClass(uint8 major, uint8 minor,
{
bool haveRun = true;
DeviceClass devClass(major, minor, service);
fSettings.Data.LocalDeviceClass.SetRecord(major, minor, service);
if (ActiveLocalDevice != NULL)
ActiveLocalDevice->SetDeviceClass(devClass);
ActiveLocalDevice->SetDeviceClass(fSettings.Data.LocalDeviceClass);
else
haveRun = false;
@ -240,11 +245,6 @@ BluetoothSettingsView::_BuildClassMenu()
{
BMessage* message = NULL;
BMenuItem* item = NULL;
DeviceClass devClass;
if (ActiveLocalDevice != NULL) {
devClass = ActiveLocalDevice->GetDeviceClass();
}
fClassMenu = new BPopUpMenu(B_TRANSLATE("Identify us as..."));
@ -253,8 +253,8 @@ BluetoothSettingsView::_BuildClassMenu()
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kDesktopLabel), message);
fClassMenu->AddItem(item);
if (devClass.MajorDeviceClass() == 1 &&
devClass.MinorDeviceClass() == 1)
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 1)
item->SetMarked(true);
message = new BMessage(kMsgSetDeviceClass);
@ -262,8 +262,8 @@ BluetoothSettingsView::_BuildClassMenu()
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kServerLabel), message);
fClassMenu->AddItem(item);
if (devClass.MajorDeviceClass() == 1 &&
devClass.MinorDeviceClass() == 2)
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 2)
item->SetMarked(true);
message = new BMessage(kMsgSetDeviceClass);
@ -271,8 +271,8 @@ BluetoothSettingsView::_BuildClassMenu()
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kLaptopLabel), message);
fClassMenu->AddItem(item);
if (devClass.MajorDeviceClass() == 1 &&
devClass.MinorDeviceClass() == 3)
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 3)
item->SetMarked(true);
message = new BMessage(kMsgSetDeviceClass);
@ -280,8 +280,8 @@ BluetoothSettingsView::_BuildClassMenu()
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kHandheldLabel), message);
fClassMenu->AddItem(item);
if (devClass.MajorDeviceClass() == 1 &&
devClass.MinorDeviceClass() == 4)
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 1 &&
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 4)
item->SetMarked(true);
message = new BMessage(kMsgSetDeviceClass);
@ -289,8 +289,8 @@ BluetoothSettingsView::_BuildClassMenu()
item = new BMenuItem(B_TRANSLATE_NOCOLLECT(kPhoneLabel), message);
fClassMenu->AddItem(item);
if (devClass.MajorDeviceClass() == 2 &&
devClass.MinorDeviceClass() == 3)
if (fSettings.Data.LocalDeviceClass.MajorDeviceClass() == 2 &&
fSettings.Data.LocalDeviceClass.MinorDeviceClass() == 3)
item->SetMarked(true);
}