GNOME Bugzilla – Bug 341030
banshee crashes when connecting a Nomad Jukebox 1
Last modified: 2010-02-04 04:00:42 UTC
Please describe the problem: On my Nomad Jukebox 1, the "Year" and "PlayOnly" fields are marked as strings. But njb-sharp wants them to be ushort, so trying to use banshee with my Nomad causes a crash : System.ApplicationException: Frame data is not uint16 in <0x00051> Njb.SongFrame:get_DataShort () in <0x00025> Njb.Song:GetFrameShort (System.String label) in <0x00010> Njb.Song:get_IsProtected () in <0x0028a> Banshee.Dap.Njb.NjbDapTrackInfo:LoadFromNjbSong (Banshee.Dap.DapDevice dap) in <0x0001f> Banshee.Dap.Njb.NjbDapTrackInfo:.ctor (Njb.Song song, Banshee.Dap.DapDevice dap) in <0x0008c> Banshee.Dap.Njb.NjbDap:ReloadDatabase () in <0x00598> Banshee.Dap.Njb.NjbDap:Initialize (Hal.Device halDevice) in <0x0004c> Banshee.Dap.DapCore:AddDevice (Hal.Device device, System.Type type) Steps to reproduce: 1. Start banshee 2. Connect a Nomad Jukebox 1 3. Click on the Nomad source to view the track list Actual results: Banshee crashes. Expected results: Does this happen every time? Yes Other information:
Created attachment 65026 [details] [review] Patch against njb-sharp to fix the issue
Created attachment 65029 [details] [review] Updated frame type conversion To prevent possible other frame data type problems, I added the convert routine to each type data method. Also slightly revised the original conversion method.
Bertrand: would you test my updated patch to make sure your issue is still solved? I obviously do not have this issue on my NJB device so I can't confirm it.
After a few tests, I confirmed that the updated patch still solves my issue. Doing the conversion for the string and int data types isn't necessary for my NJB library, but better err on the side of caution. Thanks !