* Quick fix to send notifications on mount/unmount/initialize.
* This closes #2081. +alphabranch git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32891 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
a2bb341447
commit
7945b22962
@ -15,6 +15,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <DiskDeviceRoster.h>
|
||||||
#include <Drivers.h>
|
#include <Drivers.h>
|
||||||
#include <Errors.h>
|
#include <Errors.h>
|
||||||
#include <fs_volume.h>
|
#include <fs_volume.h>
|
||||||
@ -692,14 +693,28 @@ KPartition::GetPath(KPath* path) const
|
|||||||
void
|
void
|
||||||
KPartition::SetVolumeID(dev_t volumeID)
|
KPartition::SetVolumeID(dev_t volumeID)
|
||||||
{
|
{
|
||||||
if (fPartitionData.volume != volumeID) {
|
if (fPartitionData.volume == volumeID)
|
||||||
fPartitionData.volume = volumeID;
|
return;
|
||||||
FireVolumeIDChanged(volumeID);
|
|
||||||
if (VolumeID() >= 0)
|
fPartitionData.volume = volumeID;
|
||||||
AddFlags(B_PARTITION_MOUNTED);
|
FireVolumeIDChanged(volumeID);
|
||||||
else
|
if (VolumeID() >= 0)
|
||||||
ClearFlags(B_PARTITION_MOUNTED);
|
AddFlags(B_PARTITION_MOUNTED);
|
||||||
}
|
else
|
||||||
|
ClearFlags(B_PARTITION_MOUNTED);
|
||||||
|
|
||||||
|
KDiskDeviceManager* manager = KDiskDeviceManager::Default();
|
||||||
|
|
||||||
|
char messageBuffer[512];
|
||||||
|
KMessage message;
|
||||||
|
message.SetTo(messageBuffer, sizeof(messageBuffer), B_DEVICE_UPDATE);
|
||||||
|
message.AddInt32("event", volumeID >= 0
|
||||||
|
? B_DEVICE_PARTITION_MOUNTED : B_DEVICE_PARTITION_UNMOUNTED);
|
||||||
|
message.AddInt32("id", ID());
|
||||||
|
if (volumeID >= 0)
|
||||||
|
message.AddInt32("volume", volumeID);
|
||||||
|
|
||||||
|
manager->Notify(message, B_DEVICE_REQUEST_MOUNTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -996,6 +1011,16 @@ KPartition::SetDiskSystem(KDiskSystem* diskSystem, float priority)
|
|||||||
}
|
}
|
||||||
// notify listeners
|
// notify listeners
|
||||||
FireDiskSystemChanged(fDiskSystem);
|
FireDiskSystemChanged(fDiskSystem);
|
||||||
|
|
||||||
|
KDiskDeviceManager* manager = KDiskDeviceManager::Default();
|
||||||
|
|
||||||
|
char messageBuffer[512];
|
||||||
|
KMessage message;
|
||||||
|
message.SetTo(messageBuffer, sizeof(messageBuffer), B_DEVICE_UPDATE);
|
||||||
|
message.AddInt32("event", B_DEVICE_PARTITION_INITIALIZED);
|
||||||
|
message.AddInt32("id", ID());
|
||||||
|
|
||||||
|
manager->Notify(message, B_DEVICE_REQUEST_PARTITION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user