void CUDisksProvider::DeviceAdded(const char *object, IStorageEventsCallback *callback) { CLog::Log(LOGDEBUG, "UDisks: DeviceAdded (%s)", object); if (m_AvailableDevices[object]) { CLog::Log(LOGWARNING, "UDisks: Inconsistency found! DeviceAdded on an indexed disk"); delete m_AvailableDevices[object]; } CUDiskDevice *device = NULL; device = new CUDiskDevice(object); m_AvailableDevices[object] = device; if (g_advancedSettings.m_handleMounting) device->Mount(); CLog::Log(LOGDEBUG, "UDisks: DeviceAdded - %s", device->toString().c_str()); if (device->m_isMounted && device->IsApproved()) { CLog::Log(LOGNOTICE, "UDisks: Added %s", device->m_MountPath.c_str()); if (callback) callback->OnStorageAdded(device->m_Label, device->m_MountPath); } }
void CUDisksProvider::GetDisks(VECSOURCES& devices, bool EnumerateRemovable) { DeviceMap::iterator itr; for (itr = m_AvailableDevices.begin(); itr != m_AvailableDevices.end(); ++itr) { CUDiskDevice *device = itr->second; if (device && device->IsApproved() && device->m_isSystemInternal != EnumerateRemovable) devices.push_back(device->ToMediaShare()); } }