public GUdev.Device GudevDeviceFromGioVolume(GLib.Volume volume) { GUdev.Device device = null; if (volume == null) { return(null); } var s = volume.GetIdentifier("unix-device"); if (!String.IsNullOrEmpty(s)) { device = client.QueryByDeviceFile(s); } if (device == null) { s = volume.Uuid; foreach (GUdev.Device d in client.QueryBySubsystem("usb")) { if (s == d.GetSysfsAttr("serial")) { device = d; break; } } } return(device); }
void VolumeRemoved(GLib.Volume volume) { var h = DeviceRemoved; if (h != null) { GUdev.Device device; if (!volume_device_map.TryGetValue(volume.Handle, out device)) { Hyena.Log.Debug(string.Format("Tried to unmount {0}/{1} with no matching udev device", volume.Name, volume.Uuid)); return; } var v = new RawVolume(volume, this, new GioVolumeMetadataSource(volume), new UdevMetadataSource(device)); h(this, new MountArgs(new Device(v))); } }
public RawVolume(GLib.Volume volume, Manager manager, GioVolumeMetadataSource gioMetadata, UdevMetadataSource udevMetadata) : base(manager, gioMetadata, udevMetadata) { Volume = volume; }