@ SuppressWarnings ( "WeakerAccess" ) public synchronized void stop ( ) { if ( isRunning ( ) ) { MetadataFinder . getInstance ( ) . removeTrackMetadataListener ( metadataListener ) ; running . set ( false ) ; pendingUpdates . clear ( ) ; queueHandler . interrupt ( ) ; queueHandler = null ; // Report the loss of our previews, on the proper thread, and outside our lock. final Set < DeckReference > dyingCache = new HashSet < DeckReference > ( hotCache . keySet ( ) ) ; SwingUtilities . invokeLater ( new Runnable ( ) { @ Override public void run ( ) { for ( DeckReference deck : dyingCache ) { if ( deck . hotCue == 0 ) { deliverBeatGridUpdate ( deck . player , null ) ; } } } } ) ; hotCache . clear ( ) ; deliverLifecycleAnnouncement ( logger , false ) ; } }
Stop finding beat grids for all active players .