Inheritance: System.EventArgs
        public bool AddTrack(TrackInfo ti, PodcastInfo pi, bool raiseUpdate)
        {
            bool ret = false;

            if (ti == null)
            {
                throw new ArgumentNullException ("ti");
            }
            else if (pi == null)
            {
                throw new ArgumentNullException ("pi");
            }

            if (ti.Album == null || ti.Album == String.Empty)
            {
                ti.Album = pi.Feed.Title;
            }
            else if (ti.Artist == null || ti.Artist == String.Empty)
            {
                ti.Artist = pi.Feed.Title;
            }
            else if (ti.Title == null || ti.Title == String.Empty)
            {
                ti.Title = pi.Title;
            }

            lock (TrackSync)
            {
                if (!tracks_keyed.ContainsKey (ti))
                {
                    tracks_keyed.Add (ti, pi);
                    ret = true;
                }
            }

            if (ret && raiseUpdate)
            {
                TrackEventArgs args = new TrackEventArgs ();
                args.Track = ti;

                EmitTrackAdded (args);
            }

            return ret;
        }
 private void OnTracksAdded (Source sender, TrackEventArgs args)
 {
     FetchCoverArt ();
 }
 private void OnTracksAdded(Source sender, TrackEventArgs args)
 {
     StartWriterJob ();
 }
 private void OnLibraryTracksAdded(object o, TrackEventArgs args)
 {
     ScanLibrary ();
 }
Beispiel #5
0
 protected override void HandleTracksChanged(Source sender, TrackEventArgs args)
 {
     if (args.When > last_updated) {
         last_updated = args.When;
         // Playlists do not need to reload if only certain columns are changed
         if (NeedsReloadWhenFieldsChanged (args.ChangedFields)) {
             // TODO Optimization: playlists only need to reload if one of their tracks was updated
             //if (ServiceManager.DbConnection.Query<int> (count_updated_command, last_updated) > 0) {
                 Reload ();
             //}
         } else {
             InvalidateCaches ();
         }
     }
 }
Beispiel #6
0
 private void OnDapChanged(Source sender, TrackEventArgs args)
 {
     if (!AutoSync && dap_loaded && !Syncing) {
         lock (library_syncs_mutex) {
             foreach (DapLibrarySync lib_sync in library_syncs) {
                 lib_sync.CalculateSync ();
             }
         }
     }
 }
 private void HandleTracksDeleted(Source sender, TrackEventArgs args)
 {
     SelectAllTracks ();
 }
        /// <summary>
        /// Handles the tracks added event when the user adds new files to the music library.
        /// </summary>
        /// <param name='sender'>
        /// Sender.
        /// </param>
        /// <param name='args'>
        /// Arguments.
        /// </param>
        private void HandleTracksAdded (Source sender, TrackEventArgs args)
        {
            Hyena.Log.Debug ("NoNoise/BLA - tracks added");

            try {
                if (analyzing_lib) {
                    // check for missed files after the scan finished...
                    Hyena.Log.Debug ("NoNoise/BLA - Checking for missed tracks after scan");
                    lock (scan_synch) {
                        added_while_scanning = true;
                    }
    
                    return;
                }
    
                CheckLibScanned ();
    
                if (!CheckDataUpToDate ()) {
                    new Thread (new ThreadStart (PcaForMusicLibrary)).Start ();
                    new Thread (new ThreadStart (WriteTrackInfosToDB)).Start ();
                }
            } catch (Exception e) {
                Hyena.Log.Exception ("NoNoise/BLA - tracks added handler exception", e);
            }
        }
 private void OnTracksAdded(Source sender, TrackEventArgs args)
 {
     FetchArtistImages ();
 }
        private void OnLibraryChanged(object o, TrackEventArgs args)
        {
            if (args.ChangedFields == null) {
                OnCollectionChanged ();
                return;
            }

            foreach (Hyena.Query.QueryField field in args.ChangedFields) {
                if (field != Banshee.Query.BansheeQuery.LastPlayedField &&
                    field != Banshee.Query.BansheeQuery.LastSkippedField &&
                    field != Banshee.Query.BansheeQuery.PlayCountField &&
                    field != Banshee.Query.BansheeQuery.SkipCountField) {
                    OnCollectionChanged ();
                    return;
                }
            }
        }
 private void OnTracksChangedOrAdded(Source sender, TrackEventArgs args)
 {
     TriggerDetectorJob ();
 }
        private void EmitTrackRemoved(TrackEventArgs args)
        {
            TrackEventHandler handler = TrackRemoved;

            if (handler != null)
            {
                handler (this, args);
            }
        }
        public bool RemoveTrack(TrackInfo ti, bool raiseUpdate)
        {
            if (ti == null)
            {
                throw new ArgumentNullException ("ti");
            }

            bool ret = false;

            if (BadTrackHash (ti))
            {
                return ret;
            }

            lock (TrackSync)
            {
                if (tracks_keyed.ContainsKey (ti)) {
                    try
                    {
                        tracks_keyed.Remove (ti);
                        ret = true;
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine (e.Message);
                        return ret;
                    }
                }
            }

            if (raiseUpdate)
            {
                TrackEventArgs args = new TrackEventArgs ();
                args.Track = ti;

                EmitTrackRemoved (args);
            }

            return ret;
        }
 private void OnTracksChanged (Source sender, TrackEventArgs args)
 {
     if (args.ChangedFields == null) {
         FetchCoverArt ();
     } else {
         foreach (Hyena.Query.QueryField field in args.ChangedFields) {
             if (field == Banshee.Query.BansheeQuery.AlbumField ||
                 field == Banshee.Query.BansheeQuery.ArtistField) {
                 FetchCoverArt ();
                 break;
             }
         }
     }
 }
Beispiel #15
0
 private void OnTracksDeleted(Source sender, TrackEventArgs args)
 {
     ServiceManager.DbConnection.Execute (delete_query);
 }
Beispiel #16
0
        private void OnLibraryChanged(Source sender, TrackEventArgs args)
        {
            if (!Enabled) {
                return;
            }

            foreach (DapLibrarySync lib_sync in library_syncs) {
                if (lib_sync.Library == sender) {
                    if (AutoSync && lib_sync.Enabled) {
                        Sync ();
                    } else {
                        lib_sync.CalculateSync ();
                        OnUpdated ();
                    }
                    break;
                }
            }
        }
Beispiel #17
0
 private void OnTracksAdded(Source sender, TrackEventArgs args)
 {
     Detect ();
 }
Beispiel #18
0
        /// <summary>
        /// Handles the tracks deleted event when the user removes files from the music library.
        /// </summary>
        /// <param name='sender'>
        /// Sender.
        /// </param>
        /// <param name='args'>
        /// Arguments.
        /// </param>
        private void HandleTracksDeleted (Source sender, TrackEventArgs args)
        {
            Hyena.Log.Debug ("NoNoise/BLA - tracks deleted");

            if (!CheckDataUpToDate () && !updating_db) {
                try {
                    RemoveDeletedTracks ();
                    PcaForMusicLibrary ();
//                    GetPcaData ();
//                    Hyena.ThreadAssist.ProxyToMain (sc.PcaCoordinatesUpdated);
                } catch (Exception e) {
                    Hyena.Log.Exception ("NoNoise/BLA - tracks deleted handler exception", e);
                }
            }
        }
Beispiel #19
0
 private void OnTracksImported(Source sender, TrackEventArgs args)
 {
     if (Count > 0) {
         // Imported tracks might have come from the FSQ, so refresh it
         Reload ();
     }
 }
Beispiel #20
0
 protected override void HandleTracksDeleted(Source sender, TrackEventArgs args)
 {
     if (args.When > last_removed) {
         last_removed = args.When;
         Reload ();
         /*if (ServiceManager.DbConnection.Query<int> (count_removed_command, last_removed) > 0) {
             //ServiceManager.DbConnection.Execute ("DELETE FROM CoreCache WHERE ModelID = ? AND ItemID IN (SELECT EntryID FROM CorePlaylistEntries WHERE PlaylistID = ? AND TrackID IN (TrackID FROM CoreRemovedTracks))");
             ServiceManager.DbConnection.Execute ("DELETE FROM CorePlaylistEntries WHERE TrackID IN (SELECT TrackID FROM CoreRemovedTracks)");
             //track_model.UpdateAggregates ();
             //OnUpdated ();
         }*/
     }
 }
Beispiel #21
0
 protected virtual void HandleTracksDeleted (Source sender, TrackEventArgs args)
 {
 }
Beispiel #22
0
        private void OnLibraryChanged(Source sender, TrackEventArgs args)
        {
            if (!Enabled) {
                return;
            }

            DapLibrarySync lib_to_sync = null;
            lock (library_syncs_mutex) {
                lib_to_sync = library_syncs.FirstOrDefault (lib_sync => lib_sync.Library == sender);
            }
            if (lib_to_sync != null) {
                if (AutoSync && lib_to_sync.Enabled) {
                    Sync ();
                } else {
                    lib_to_sync.CalculateSync ();
                    OnUpdated ();
                }
            }
        }
 private void OnTracksChanged (Source sender, TrackEventArgs args)
 {
     Save ();
 }
Beispiel #24
0
 protected virtual void HandleTracksDeleted(Source sender, TrackEventArgs args)
 {
 }
 private void OnTracksAdded(Source sender, TrackEventArgs args)
 {
     /*do not force all lyrics to be refreshed.*/
     FetchAllLyrics (false);
 }
 private void OnLibraryTracksDeleted(object o, TrackEventArgs args)
 {
     TrackAnalysis.Provider.Delete (
         "TrackID NOT IN (SELECT TrackID from CoreTracks WHERE PrimarySourceID = ?)",
         ServiceManager.SourceManager.MusicLibrary.DbId
     );
 }
 private void OnLibraryTrackRemoved(object sender, TrackEventArgs args)
 {
     ThreadAssist.ProxyToMain ( delegate {
                                    if (args.Track != null)
                                {
                                    OnTrackRemoved (args.Track)
                                        ;
                                        OnUpdated ();
                                    }
                                    else if (args.Tracks != null)
                                {
                                    foreach (TrackInfo ti in args.Tracks)
                                        {
                                            OnTrackRemoved (ti);
                                        }
                                        OnUpdated ();
                                    }
                                });
 }