Example #1
0
 private void DeleteFromDatabase(GUIListItem item)
 {
     // delete from database
     if (Util.Utils.IsPicture(item.Path))
     {
         //Remove from picture database
         PictureDatabase.DeletePicture(item.Path);
     }
     else if (Util.Utils.IsVideo(item.Path))
     {
         //Remove from video database
         VideoDatabase.DeleteMovie(item.Path);
     }
     else if (Util.Utils.IsAudio(item.Path))
     {
         //Remove from music database
         if (dbMusic == null)
         {
             dbMusic = MusicDatabase.Instance;
         }
         if (dbMusic != null)
         {
             dbMusic.DeleteSong(item.Path, true);
         }
     }
 }
Example #2
0
        private void ProcessEvents(object sender, ElapsedEventArgs e)
        {
            // Allow only one Timer event to be executed.
            if (Monitor.TryEnter(m_EnterThread))
            {
                // Only one thread at a time is processing the events
                try
                {
                    // Lock the Collection, while processing the Events
                    lock (m_Events.SyncRoot)
                    {
                        MusicShareWatcherEvent currentEvent = null;
                        for (int i = 0; i < m_Events.Count; i++)
                        {
                            currentEvent = m_Events[i] as MusicShareWatcherEvent;
                            switch (currentEvent.Type)
                            {
                            case MusicShareWatcherEvent.EventType.Create:
                            case MusicShareWatcherEvent.EventType.Change:
                                AddUpdateSong(currentEvent.FileName);
                                break;

                            case MusicShareWatcherEvent.EventType.Delete:
                                musicDB.DeleteSong(currentEvent.FileName, true);
                                Log.Info(LogType.MusicShareWatcher, "Deleted Song: {0}", currentEvent.FileName);
                                break;

                            case MusicShareWatcherEvent.EventType.DeleteDirectory:
                                musicDB.DeleteSongDirectory(currentEvent.FileName);
                                Log.Info(LogType.MusicShareWatcher, "Deleted Directory: {0}", currentEvent.FileName);
                                break;

                            case MusicShareWatcherEvent.EventType.Rename:
                                if (musicDB.RenameSong(currentEvent.OldFileName, currentEvent.FileName))
                                {
                                    Log.Info(LogType.MusicShareWatcher, "Song / Directory {0} renamed to {1]", currentEvent.OldFileName,
                                             currentEvent.FileName);
                                }
                                else
                                {
                                    Log.Info(LogType.MusicShareWatcher, "Song / Directory rename failed: {0}", currentEvent.FileName);
                                }
                                break;
                            }
                            m_Events.RemoveAt(i);
                            i--; // Don't skip next event
                        }
                    }
                }
                finally
                {
                    Monitor.Exit(m_EnterThread);
                }
            }
        }