Example #1
0
        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);
        }
Example #2
0
        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)));
            }
        }
Example #3
0
 public RawVolume(GLib.Volume volume, Manager manager, GioVolumeMetadataSource gioMetadata, UdevMetadataSource udevMetadata)
     : base(manager, gioMetadata, udevMetadata)
 {
     Volume = volume;
 }