private Dictionary<int, AppleDeviceTrackInfo> tracks_map = new Dictionary<int, AppleDeviceTrackInfo> (); // FIXME: EPIC FAIL #region Device Setup/Dispose public override void DeviceInitialize (IDevice device) { Volume = device as IVolume; if (Volume == null) { throw new InvalidDeviceException (); } if (!Volume.IsMounted && device.MediaCapabilities != null && device.MediaCapabilities.IsType ("ipod")) { Hyena.Log.Information ("Found potential unmounted iDevice, trying to mount it now"); Volume.Mount (); } if (!Volume.IsMounted) { Hyena.Log.Information ("AppleDeviceSource is ignoring unmounted volume " + Volume.Name); throw new InvalidDeviceException (); } Device = new GPod.Device (Volume.MountPoint); if (GPod.ITDB.GetControlPath (Device) == null) { throw new InvalidDeviceException (); } base.DeviceInitialize (device); Name = Volume.Name; SupportsPlaylists = true; SupportsPodcasts = Device.SupportsPodcast; SupportsVideo = Device.SupportsVideo; Initialize (); GPod.ITDB.InitIpod (Volume.MountPoint, Device.IpodInfo == null ? null : Device.IpodInfo.ModelNumber, Name); // HACK: ensure that m4a, and mp3 are set as accepted by the device; bgo#633552 AcceptableMimeTypes = (AcceptableMimeTypes ?? new string [0]).Union (new string [] { "taglib/m4a", "taglib/mp3" }).ToArray (); // FIXME: Properly parse the device, color and generation and don't use the fallback strings // IpodInfo is null on Macos formated ipods. I don't think we can really do anything with them // but they get loaded as UMS devices if we throw an NRE here. if (Device.IpodInfo != null) { AddDapProperty (Catalog.GetString ("Device"), Device.IpodInfo.ModelString); AddDapProperty (Catalog.GetString ("Generation"), Device.IpodInfo.GenerationString); } // FIXME //AddDapProperty (Catalog.GetString ("Color"), "black"); AddDapProperty (Catalog.GetString ("Capacity"), string.Format ("{0:0.00}GB", BytesCapacity / 1024.0 / 1024.0 / 1024.0)); AddDapProperty (Catalog.GetString ("Available"), string.Format ("{0:0.00}GB", BytesAvailable / 1024.0 / 1024.0 / 1024.0)); AddDapProperty (Catalog.GetString ("Serial number"), Volume.Serial); //AddDapProperty (Catalog.GetString ("Produced on"), ipod_device.ProductionInfo.DisplayDate); //AddDapProperty (Catalog.GetString ("Firmware"), ipod_device.FirmwareVersion); //string [] capabilities = new string [ipod_device.ModelInfo.Capabilities.Count]; //ipod_device.ModelInfo.Capabilities.CopyTo (capabilities, 0); //AddDapProperty (Catalog.GetString ("Capabilities"), String.Join (", ", capabilities)); AddYesNoDapProperty (Catalog.GetString ("Supports cover art"), Device.SupportsArtwork); AddYesNoDapProperty (Catalog.GetString ("Supports photos"), Device.SupportsPhoto); }
private Dictionary<int, AppleDeviceTrackInfo> tracks_map = new Dictionary<int, AppleDeviceTrackInfo> (); // FIXME: EPIC FAIL #region Device Setup/Dispose public override void DeviceInitialize (IDevice device) { Volume = device as IVolume; if (Volume == null) { throw new InvalidDeviceException (); } Device = new GPod.Device (Volume.MountPoint); if (GPod.ITDB.GetControlPath (Device) == null) { throw new InvalidDeviceException (); } base.DeviceInitialize (device); Name = Volume.Name; SupportsPlaylists = true; SupportsPodcasts = Device.SupportsPodcast; SupportsVideo = Device.SupportsVideo; Initialize (); // FIXME: Properly parse the device, color and generation and don't use the fallback strings // IpodInfo is null on Macos formated ipods. I don't think we can really do anything with them // but they get loaded as UMS devices if we throw an NRE here. if (Device.IpodInfo != null) { AddDapProperty (Catalog.GetString ("Device"), Device.IpodInfo.ModelString); AddDapProperty (Catalog.GetString ("Generation"), Device.IpodInfo.GenerationString); } // FIXME //AddDapProperty (Catalog.GetString ("Color"), "black"); AddDapProperty (Catalog.GetString ("Capacity"), string.Format ("{0:0.00}GB", BytesCapacity)); AddDapProperty (Catalog.GetString ("Available"), string.Format ("{0:0.00}GB", BytesAvailable)); AddDapProperty (Catalog.GetString ("Serial number"), Volume.Serial); //AddDapProperty (Catalog.GetString ("Produced on"), ipod_device.ProductionInfo.DisplayDate); //AddDapProperty (Catalog.GetString ("Firmware"), ipod_device.FirmwareVersion); //string [] capabilities = new string [ipod_device.ModelInfo.Capabilities.Count]; //ipod_device.ModelInfo.Capabilities.CopyTo (capabilities, 0); //AddDapProperty (Catalog.GetString ("Capabilities"), String.Join (", ", capabilities)); AddYesNoDapProperty (Catalog.GetString ("Supports cover art"), Device.SupportsArtwork); AddYesNoDapProperty (Catalog.GetString ("Supports photos"), Device.SupportsPhoto); }
public override void DeviceInitialize(IDevice device) { Volume = device as IVolume; if (Volume == null) { throw new InvalidDeviceException(); } if (!Volume.IsMounted && device.MediaCapabilities != null && device.MediaCapabilities.IsType("ipod")) { Hyena.Log.Information("Found potential unmounted iDevice, trying to mount it now"); Volume.Mount(); } if (!Volume.IsMounted) { Hyena.Log.Information("AppleDeviceSource is ignoring unmounted volume " + Volume.Name); throw new InvalidDeviceException(); } Device = new GPod.Device(Volume.MountPoint); if (GPod.ITDB.GetControlPath(Device) == null) { throw new InvalidDeviceException(); } base.DeviceInitialize(device); Name = Volume.Name; SupportsPlaylists = true; SupportsPodcasts = Device.SupportsPodcast; SupportsVideo = Device.SupportsVideo; Initialize(); GPod.ITDB.InitIpod(Volume.MountPoint, Device.IpodInfo == null ? null : Device.IpodInfo.ModelNumber, Name); // HACK: ensure that m4a, and mp3 are set as accepted by the device; bgo#633552 AcceptableMimeTypes = (AcceptableMimeTypes ?? new string [0]).Union(new string [] { "taglib/m4a", "taglib/mp3" }).ToArray(); // FIXME: Properly parse the device, color and generation and don't use the fallback strings // IpodInfo is null on Macos formated ipods. I don't think we can really do anything with them // but they get loaded as UMS devices if we throw an NRE here. if (Device.IpodInfo != null) { AddDapProperty(Catalog.GetString("Device"), Device.IpodInfo.ModelString); AddDapProperty(Catalog.GetString("Generation"), Device.IpodInfo.GenerationString); } // FIXME //AddDapProperty (Catalog.GetString ("Color"), "black"); AddDapProperty(Catalog.GetString("Capacity"), string.Format("{0:0.00}GB", BytesCapacity / 1024.0 / 1024.0 / 1024.0)); AddDapProperty(Catalog.GetString("Available"), string.Format("{0:0.00}GB", BytesAvailable / 1024.0 / 1024.0 / 1024.0)); AddDapProperty(Catalog.GetString("Serial number"), Volume.Serial); //AddDapProperty (Catalog.GetString ("Produced on"), ipod_device.ProductionInfo.DisplayDate); //AddDapProperty (Catalog.GetString ("Firmware"), ipod_device.FirmwareVersion); //string [] capabilities = new string [ipod_device.ModelInfo.Capabilities.Count]; //ipod_device.ModelInfo.Capabilities.CopyTo (capabilities, 0); //AddDapProperty (Catalog.GetString ("Capabilities"), String.Join (", ", capabilities)); AddYesNoDapProperty(Catalog.GetString("Supports cover art"), Device.SupportsArtwork); AddYesNoDapProperty(Catalog.GetString("Supports photos"), Device.SupportsPhoto); }