1- using Microsoft . AspNetCore . SignalR ;
1+ using ElectronNET . API . Entities ;
2+ using ElectronNET . API ;
3+ using Microsoft . AspNetCore . SignalR ;
24using Microsoft . Extensions . Configuration ;
35using Microsoft . Extensions . Hosting ;
46using Microsoft . Extensions . Logging ;
@@ -51,6 +53,8 @@ public class Sniffy : BackgroundService
5153 private Timer _timer ;
5254 private readonly DataFields _dataFields ;
5355
56+ private RestoreTrackMetadataModel RestoreTrackMetadataModel ;
57+
5458 #endregion
5559 public Sniffy ( IConfiguration configuration , IHubContext < TrackistHub > synchub , ILogger < Sniffy > logger , DataFields dataFields )
5660 {
@@ -74,8 +78,10 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
7478 await CapturePacketsInitialAsync ( ) ;
7579 }
7680
81+ RestoreTracks ( ) ;
82+
7783 _timer = new ( DoWork , null , TimeSpan . Zero , TimeSpan . FromSeconds ( 1 ) ) ;
78- await CapturePacketsAsync ( ) ;
84+ await CapturePacketsAsync ( ) ;
7985 }
8086 catch ( Exception ex )
8187 {
@@ -85,11 +91,31 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
8591 Console . WriteLine ( $ "StatusCheckerService background task is stopping.") ;
8692 }
8793
94+ private void RestoreTracks ( )
95+ {
96+ var result = GetSetRestoreTrackMetadata ( ) ;
97+
98+ if ( result . PlayersTrackMetaDataModel != null )
99+ {
100+ _dataFields . Trackartist1 = result . PlayersTrackMetaDataModel . Trackartist1 ;
101+ _dataFields . Tracktitle1 = result . PlayersTrackMetaDataModel . Tracktitle1 ;
102+ _dataFields . Trackpath = _dataFields . Tracktitle1 != null & _dataFields . Trackartist1 != null
103+ ? _dataFields . Trackartist1 + " - " + _dataFields . Tracktitle1
104+ : _dataFields . Tracktitle1 != null & _dataFields . Trackartist1 == null ? _dataFields . Tracktitle1 : "ID - ID" ;
105+
106+ _dataFields . Trackartist2 = result . PlayersTrackMetaDataModel . Trackartist2 ;
107+ _dataFields . Tracktitle2 = result . PlayersTrackMetaDataModel . Tracktitle2 ;
108+ _dataFields . Trackpath2 = _dataFields . Tracktitle2 != null & _dataFields . Trackartist2 != null
109+ ? _dataFields . Trackartist2 + " - " + _dataFields . Tracktitle2
110+ : _dataFields . Tracktitle2 != null & _dataFields . Trackartist2 == null ? _dataFields . Tracktitle2 : "ID - ID" ;
111+ }
112+ }
113+
88114 private void DoWork ( object state )
89115 {
90116 OverlayChangeObserver overlayObserver = new ( _dataFields ) ;
91117 overlayObserver . MixStatusChanged += MixStatusChanged ;
92- overlayObserver . Start ( ) ;
118+ overlayObserver . Start ( ) ;
93119 }
94120
95121 private async Task CapturePacketsInitialAsync ( )
@@ -497,6 +523,10 @@ private void Player1(string result)
497523 _tracklisthubContext . Clients . All . SendAsync ( "PlayerOne" , 10 , _dataFields . Genre1 ) ;
498524
499525 trackloaded_player1 = true ;
526+
527+ RestoreTrackMetadata restoreTrackMetadata = new ( _dataFields ) ;
528+ restoreTrackMetadata . SetMainSettings ( _dataFields ) ;
529+ RestoreTrackMetadataModel = restoreTrackMetadata . GetSettings ( _dataFields . RestoreTrackspath ) ;
500530 }
501531 }
502532 }
@@ -555,6 +585,11 @@ private void Player2(string result)
555585 _tracklisthubContext . Clients . All . SendAsync ( "PlayerTwo" , 10 , _dataFields . Genre2 ) ;
556586
557587 trackloaded_player2 = true ;
588+
589+ RestoreTrackMetadata restoreTrackMetadata = new ( _dataFields ) ;
590+
591+ restoreTrackMetadata . SetMainSettings ( _dataFields ) ;
592+ RestoreTrackMetadataModel = restoreTrackMetadata . GetSettings ( _dataFields . RestoreTrackspath ) ;
558593 }
559594 }
560595 }
@@ -701,12 +736,12 @@ private void MixStatusChanged(object sender, OverlayChangeObserver.MixStatusChan
701736 {
702737 if ( e . Player1 )
703738 {
704- _tracklisthubContext . Clients . All . SendAsync ( "NowPlaying" , _dataFields . Trackartist1 , _dataFields . Tracktitle1 , _dataFields . Albumartid1 ) ;
739+ _tracklisthubContext . Clients . All . SendAsync ( "NowPlaying" , _dataFields . Trackartist1 , _dataFields . Tracktitle1 , _dataFields . Albumartid1 , _dataFields . ShowArtwork ) ;
705740 TrackHistory ( _dataFields . Trackpath ) ;
706741 }
707742 if ( e . Player2 )
708743 {
709- _tracklisthubContext . Clients . All . SendAsync ( "NowPlaying" , _dataFields . Trackartist2 , _dataFields . Tracktitle2 , _dataFields . Albumartid2 ) ;
744+ _tracklisthubContext . Clients . All . SendAsync ( "NowPlaying" , _dataFields . Trackartist2 , _dataFields . Tracktitle2 , _dataFields . Albumartid2 , _dataFields . ShowArtwork ) ;
710745 TrackHistory ( _dataFields . Trackpath2 ) ;
711746 }
712747 }
@@ -741,5 +776,23 @@ public static string GetAssemblyVersion()
741776 return infoVersion . InformationalVersion ;
742777 }
743778 }
779+
780+ private RestoreTrackMetadataModel GetSetRestoreTrackMetadata ( )
781+ {
782+ RestoreTrackMetadata restoreTrackMetadata = new ( _dataFields ) ;
783+
784+ if ( HybridSupport . IsElectronActive )
785+ {
786+ string path = Electron . App . GetPathAsync ( PathName . UserData ) . Result ;
787+ _dataFields . RestoreTrackspath = path + @"\TrackMetadata.json" ;
788+ return restoreTrackMetadata . GetSettings ( _dataFields . RestoreTrackspath ) ;
789+ }
790+ else
791+ {
792+ var appDataPath = Environment . GetFolderPath ( Environment . SpecialFolder . ApplicationData ) ;
793+ _dataFields . RestoreTrackspath = appDataPath + @"\Electron\TrackMetadata.json" ;
794+ return restoreTrackMetadata . GetSettings ( _dataFields . RestoreTrackspath ) ;
795+ }
796+ }
744797 }
745798}
0 commit comments