--- a/bluetoothengine/btui/btuimodel/btdevicedata.cpp Fri Jun 11 13:48:51 2010 +0300
+++ b/bluetoothengine/btui/btuimodel/btdevicedata.cpp Wed Jun 23 18:23:52 2010 +0300
@@ -19,46 +19,9 @@
#include <QDateTime>
#include <btservices/advancedevdiscoverer.h>
#include "btuiutil.h"
+#include "btuidevtypemap.h"
#include "btqtconstants.h"
-class DevTypeIconMapping {
-public:
- int majorDevClass; // major device class value from CoD
- int minorDevClass; // minor device class value from CoD
- int majorProperty; // one of major properties defined in BtDeviceModel
- int minorProperty; // one of minor properties defined in BtDeviceModel
- char* connectedIcon; // the icon name for connected device
- char* unconnectedIcon; // the icon name for not connected device.
-};
-
-// mapping table from major and minor Device Classes to device types and icons
-// which are specifically defined in btapplication namespace.
-// (Note audio device mapping is not in this table due to its complex logic)
-static const DevTypeIconMapping DeviceTypeIconMappingTable[] =
-{
-{EMajorDeviceComputer, 0, BtDeviceModel::Computer, 0,
- ":/icons/qgn_prop_bt_computer_connect.svg", ":/icons/qgn_prop_bt_computer.svg" },
-{EMajorDevicePhone, 0, BtDeviceModel::Phone, 0,
- ":/icons/qgn_prop_bt_phone_connect.svg", ":/icons/qgn_prop_bt_phone.svg"},
-{EMajorDeviceLanAccessPoint, 0, BtDeviceModel::LANAccessDev, 0,
- ":/icons/qgn_prop_bt_misc.svg", ":/icons/qgn_prop_bt_misc.svg" },
-{EMajorDevicePeripheral, EMinorDevicePeripheralKeyboard,
- BtDeviceModel::Peripheral, BtDeviceModel::Keyboard,
- ":/icons/qgn_prop_bt_keyboard_connect.svg", ":/icons/qgn_prop_bt_keyboard.svg"},
-{EMajorDevicePeripheral, EMinorDevicePeripheralPointer,
- BtDeviceModel::Peripheral, BtDeviceModel::Mouse,
- ":/icons/qgn_prop_bt_mouse_connect.svg", ":/icons/qgn_prop_bt_mouse.svg"},
-{EMajorDeviceImaging, 0, BtDeviceModel::ImagingDev, 0,
- ":/icons/qgn_prop_bt_printer_connect.svg", ":/icons/qgn_prop_bt_printer.svg"},
-{EMajorDeviceWearable, 0, BtDeviceModel::WearableDev, 0,
- ":/icons/qgn_prop_bt_misc.svg", ":/icons/qgn_prop_bt_misc.svg"},
-{EMajorDeviceToy, 0, BtDeviceModel::Toy, 0,
- ":/icons/qgn_prop_bt_misc.svg", ":/icons/qgn_prop_bt_misc.svg"},
-};
-
-static const int DeviceTypeIconMappingTableSize =
- sizeof( DeviceTypeIconMappingTable ) / sizeof( DevTypeIconMapping );
-
/*!
Constructor.
*/
@@ -124,7 +87,7 @@
\param val contains the value at return.
\param row the row number which the value is from
\param col the column number which the value is from
- \param role the role idenfier of the value.
+ \param role the role identifier of the value.
*/
void BtDeviceData::data(QVariant& val, int row, int col, int role ) const
{
@@ -195,7 +158,7 @@
if(isDeviceInRegistry(qtdev)) {
// we cannot remove this device as it is in registry.
// remove it in-range property.
- setMajorProperty(mData[i], BtDeviceModel::InRange, false);
+ setMajorProperty(mData[i], BtuiDevProperty::InRange, false);
updateRssi(mData[i], RssiInvalid);
mModel.emitDataChanged( i, 0, this );
}
@@ -232,7 +195,7 @@
// remore it from model now.
// clear-registry related properties, so that
// we get a chance to clean it after device searching later.
- setMajorProperty(mData[i], BtDeviceModel::RegistryProperties, false);
+ setMajorProperty(mData[i], BtuiDevProperty::RegistryProperties, false);
mModel.emitDataChanged( i, 0, this );
}
else {
@@ -268,7 +231,7 @@
updateRssi(devData, RssiInvalid);
}
// add device-in-registry property:
- setMajorProperty(devData, BtDeviceModel::InRegistry, true);
+ setMajorProperty(devData, BtuiDevProperty::InRegistry, true);
updateDeviceProperty(devData, dev, 0 );
mModel.beginInsertRows( QModelIndex(), mData.count(), mData.count() );
mData.append( devData );
@@ -276,7 +239,7 @@
}
else {
updateDeviceProperty(mData[i], dev, similarity );
- setMajorProperty(mData[i], BtDeviceModel::InRegistry, true);
+ setMajorProperty(mData[i], BtuiDevProperty::InRegistry, true);
mModel.emitDataChanged( i, 0, this );
}
}
@@ -290,13 +253,13 @@
{
int i = indexOf( dev.Addr() );
if ( i > -1 ) {
- int preconn = BtDeviceModel::Connected
+ int preconn = BtuiDevProperty::Connected
& mData[i][BtDeviceModel::MajorPropertyRole].toInt();
// we only update and signal if connection status is really
// changed:
if ( ( preconn != 0 && !connected )
|| ( preconn == 0 && connected ) ) {
- setMajorProperty(mData[i], BtDeviceModel::Connected, connected );
+ setMajorProperty(mData[i], BtuiDevProperty::Connected, connected );
mModel.emitDataChanged( i, 0, this );
}
}
@@ -323,7 +286,7 @@
if ( pos == -1 ) {
BtuiModelDataItem devData;
- setMajorProperty(devData, BtDeviceModel::InRange, true);
+ setMajorProperty(devData, BtuiDevProperty::InRange, true);
updateRssi(devData, rssi);
CBtDevExtension* devExt(NULL);
TRAP_IGNORE( {
@@ -336,7 +299,7 @@
mModel.endInsertRows();
}
else {
- setMajorProperty(mData[pos], BtDeviceModel::InRange, true);
+ setMajorProperty(mData[pos], BtuiDevProperty::InRange, true);
updateRssi(mData[pos], rssi);
mModel.emitDataChanged( pos, 0, this );
}
@@ -360,7 +323,7 @@
// If the device store is not empty, we clear
// registry property from these devices first.
for (int i = 0; i < mData.count(); ++i) {
- setMajorProperty(mData[i], BtDeviceModel::RegistryProperties, false);
+ setMajorProperty(mData[i], BtuiDevProperty::RegistryProperties, false);
}
if ( mData.count() ) {
// need to update view because we have changed device properties.
@@ -374,14 +337,14 @@
int pos = indexOf( devs[i]->Addr() );
if ( pos > -1 ) {
// add device-in-registry property:
- setMajorProperty(mData[pos], BtDeviceModel::InRegistry, true);
+ setMajorProperty(mData[pos], BtuiDevProperty::InRegistry, true);
updateDeviceProperty(mData[pos], *(devs[i]), 0);
mModel.emitDataChanged( pos, 0, this );
}
else {
BtuiModelDataItem devData;
// add device-in-registry property:
- setMajorProperty(devData, BtDeviceModel::InRegistry, true);
+ setMajorProperty(devData, BtuiDevProperty::InRegistry, true);
updateDeviceProperty(devData, *( devs[i] ), 0 );
mModel.beginInsertRows(QModelIndex(), mData.count(), mData.count() );
mData.append( devData );
@@ -416,65 +379,28 @@
qtdev[BtDeviceModel::LastUsedTimeRole] = QVariant(qdt);
// set paired status:
- setMajorProperty(qtdev, BtDeviceModel::Bonded, isBonded( dev.Device() ));
+ setMajorProperty(qtdev, BtuiDevProperty::Bonded, isBonded( dev.Device() ));
// set blocked status:
- setMajorProperty(qtdev, BtDeviceModel::Blocked,
+ setMajorProperty(qtdev, BtuiDevProperty::Blocked,
dev.Device().GlobalSecurity().Banned() );
// set trusted status:
- setMajorProperty(qtdev, BtDeviceModel::Trusted,
+ setMajorProperty(qtdev, BtuiDevProperty::Trusted,
dev.Device().GlobalSecurity().NoAuthorise() );
//CoDRole
//MinorPropertyRole
int cod = static_cast<int>( dev.Device().DeviceClass().DeviceClass() );
qtdev[BtDeviceModel::CoDRole] = QVariant(cod);
-
- // Initially, clear CoD related properties:
- int majorProperty = qtdev[BtDeviceModel::MajorPropertyRole].toInt() &
- ~BtDeviceModel::CodProperties;
-
- int minorProperty = BtDeviceModel::NullProperty;
-
- // device type must be mapped according to CoD:
- int majorDevCls = dev.Device().DeviceClass().MajorDeviceClass();
- int minorDevCls = dev.Device().DeviceClass().MinorDeviceClass();
- int i;
- for (i = 0; i < DeviceTypeIconMappingTableSize; ++i ) {
- if ( DeviceTypeIconMappingTable[i].majorDevClass == majorDevCls &&
- ( DeviceTypeIconMappingTable[i].minorDevClass == 0 ||
- DeviceTypeIconMappingTable[i].minorDevClass == minorDevCls ) ) {
- // device classes match a item in table, get the mapping:
- majorProperty |= DeviceTypeIconMappingTable[i].majorProperty;
- minorProperty |= DeviceTypeIconMappingTable[i].minorProperty;
- break;
- }
- }
-
- // AV device mapping are not defined in the table, do mapping here if no device
- // type mapped so far:
- if ( i == DeviceTypeIconMappingTableSize) {
- // audio device, carkit, headset or speaker:
- if( ( majorDevCls == EMajorDeviceAV)
- || (dev.Device().DeviceClass().MajorServiceClass() == EMajorServiceRendering
- && majorDevCls != EMajorDeviceImaging) ) {
-
- majorProperty |= BtDeviceModel::AVDev;
-
- if( minorDevCls == EMinorDeviceAVCarAudio ) {
- // carkit:
- minorProperty |= BtDeviceModel::Carkit;
- }
- else {
- // headset:
- minorProperty |= BtDeviceModel::Headset;
- }
- }
- }
-
- qtdev[BtDeviceModel::MajorPropertyRole] = QVariant( majorProperty );
- qtdev[BtDeviceModel::MinorPropertyRole] = QVariant( minorProperty );
+ int majorDeviceType;
+ int minorDeviceType;
+ // device type is mapped according to CoD:
+ BtuiDevProperty::mapDeiveType(majorDeviceType, minorDeviceType, cod);
+
+ qtdev[BtDeviceModel::MajorPropertyRole] =
+ QVariant( qtdev[BtDeviceModel::MajorPropertyRole].toInt() | majorDeviceType );
+ qtdev[BtDeviceModel::MinorPropertyRole] = QVariant( minorDeviceType );
}
int BtDeviceData::indexOf( const TBTDevAddr& addr ) const
@@ -514,10 +440,10 @@
bool BtDeviceData::isDeviceInRange( const BtuiModelDataItem& qtdev )
{
- return BtDeviceModel::InRange & qtdev[BtDeviceModel::MajorPropertyRole].toInt();
+ return BtuiDevProperty::InRange & qtdev[BtDeviceModel::MajorPropertyRole].toInt();
}
bool BtDeviceData::isDeviceInRegistry( const BtuiModelDataItem& qtdev )
{
- return BtDeviceModel::InRegistry & qtdev[BtDeviceModel::MajorPropertyRole].toInt();
+ return BtuiDevProperty::InRegistry & qtdev[BtDeviceModel::MajorPropertyRole].toInt();
}