Exemplo n.º 1
0
        private void RegisterTrackInfoChangedEvent()
        {
            _trackInfoChangedCallback = (ref TrackInfoStruct track_info, IntPtr userdata) =>
            {
                Track track = new Track();
                track.Album       = Marshal.PtrToStringAnsi(track_info.Album);
                track.Artist      = Marshal.PtrToStringAnsi(track_info.Artist);
                track.Genre       = Marshal.PtrToStringAnsi(track_info.Genre);
                track.Title       = Marshal.PtrToStringAnsi(track_info.Title);
                track.TotalTracks = track_info.total_tracks;
                track.TrackNum    = track_info.number;
                track.Duration    = track_info.duration;

                Log.Debug(Globals.LogTag, "Album: " + track.Album
                          + ", Artist: " + track.Artist
                          + ", Genre: " + track.Genre
                          + ", Title: " + track.Title
                          + ", TotalTracks: " + track.TotalTracks
                          + ", TrackNum: " + track.TrackNum
                          + ", Duration: " + track.Duration);

                _trackInfoChanged?.Invoke(null, new TrackInfoChangedEventArgs(track));
            };
            int ret = Interop.Bluetooth.SetTrackInfoChangedCallback(_trackInfoChangedCallback, IntPtr.Zero);

            if (ret != (int)BluetoothError.None)
            {
                Log.Error(Globals.LogTag, "Failed to set track info changed callback, Error - " + (BluetoothError)ret);
            }
        }
Exemplo n.º 2
0
 private void RegisterTrackInfoChangedEvent()
 {
     _trackInfoChangedCallback = (ref TrackInfoStruct track_info, IntPtr userdata) =>
     {
         _trackInfoChanged?.Invoke(null, new TrackInfoChangedEventArgs(new Track()
         {
             Album       = track_info.Album,
             Artist      = track_info.Artist,
             Genre       = track_info.Genre,
             Title       = track_info.Title,
             TotalTracks = track_info.total_tracks,
             TrackNum    = track_info.number,
             Duration    = track_info.duration
         }));
         int ret = Interop.Bluetooth.SetTrackInfoChangedCallback(_trackInfoChangedCallback, IntPtr.Zero);
         if (ret != (int)BluetoothError.None)
         {
             Log.Error(Globals.LogTag, "Failed to set track info changed callback, Error - " + (BluetoothError)ret);
         }
     };
 }