Changeset 182
- Timestamp:
- 03/31/07 11:31:02 (1 year ago)
- Files:
-
- dmp/trunk/client/wpfclient/main_window.xaml.cs (modified) (5 diffs)
- dmp/trunk/client/wpfclient/wpfclient.csproj (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
dmp/trunk/client/wpfclient/main_window.xaml.cs
r178 r182 212 212 213 213 Queue<ServerStatus> statusQueue = new Queue<ServerStatus>(); 214 private void ServerStatusChanged(object o, ServerStatusEventArgs args){// string serverName, bool connected){ 215 lock(statusQueue){ 216 statusQueue.Enqueue(new ServerStatus(args.ServerName, args.ServerIsConnected)); 217 } 214 private void ServerStatusChanged(object o, ServerStatusEventArgs args){ 215 ServerStatus server = new ServerStatus(args.ServerName, args.ServerIsConnected); 216 218 217 Console.WriteLine("ServerStatusChanged called"); 219 218 serverStack.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, 220 new ServerUpdateDelegate( ChangeServerStatus));219 new ServerUpdateDelegate(delegate {ChangeServerStatus(server);})); 221 220 } 222 221 223 222 //Will change a server button status to connected or disconnected regardless of earlier state 224 void ChangeServerStatus() { 225 ServerStatus server; 226 lock(statusQueue){ 227 server = statusQueue.Dequeue(); 228 } 229 223 void ChangeServerStatus(ServerStatus server) { 230 224 Canvas serverCanvas = displayedServers[server.ServerName]; 231 //BitmapImage bitmap = (BitmapImage)((Image)mainPanel.Children[0]).Source;232 225 BitmapImage bitmap = new BitmapImage(); 233 226 bitmap.BeginInit(); … … 237 230 Image connectionStatus = (Image)serverCanvas.Children[0]; 238 231 connectionStatus.Source = (ImageSource)bitmap; 239 /*bitmap.BeginInit(); 240 bitmap.UriSource = GetServerStatus(server.Second); 241 bitmap.EndInit(); 242 */ 232 243 233 Button controlButton = (Button)serverCanvas.Children[2]; 244 234 controlButton.Template = GetButtonTemplate(server.Connected); 245 235 controlButton.Content = server; 246 }247 248 Queue<DataTable> datatableQueue = new Queue<DataTable>(); 236 controlButton.Visibility = Visibility.Visible; //Temporary code 237 } 238 249 239 private void DataTableChanged(object o, SongListChangedEventArgs args){ 250 lock(datatableQueue){251 datatableQueue.Enqueue(args.NewTable);252 }253 254 240 serverStack.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, 255 new ServerUpdateDelegate(ChangeDataTable)); 256 } 257 258 void ChangeDataTable(){ 259 DataTable newDT; 260 lock(datatableQueue){ 261 newDT = datatableQueue.Dequeue(); 262 } 241 new ServerUpdateDelegate(delegate {ChangeDataTable(args.NewTable);})); 242 } 243 244 void ChangeDataTable(DataTable newDT){ 263 245 Console.WriteLine("Changing data table"); 264 246 … … 272 254 songView.SongDT = newDT; 273 255 } 274 275 Queue<ServerStatus> serverAddQueue = new Queue<ServerStatus>(); 256 257 //Event when the user clicks on the add or remove server button 258 //TODO: need to change the button so that it has an adding animation 276 259 private void OnServerClick(object sender, MouseButtonEventArgs args){ 277 260 Button source = (Button)sender; 278 //(string)source.Content;279 261 ServerStatus status = ((ServerStatus)source.Content); 280 lock(serverAddQueue){281 serverAddQueue.Enqueue(new ServerStatus(status.ServerName, status.Connected));282 }283 //Thread newThread = new Thread(TServerClick);284 //newThread.Start();285 286 TServerClick();287 }288 289 void TServerClick(){290 ServerStatus status;291 262 292 lock(serverAddQueue){ 293 status = serverAddQueue.Dequeue(); 294 } 295 296 if(status.Connected) 297 myBridge.RemoveServerConnection(status.ServerName); 263 source.Visibility = Visibility.Hidden; 264 265 new Thread(new ThreadStart(delegate { TServerClick(status.ServerName, status.Connected); })).Start(); 266 } 267 268 void TServerClick(string serverName, bool connected){ 269 if(connected) 270 myBridge.RemoveServerConnection(serverName); 298 271 else 299 myBridge.AddServerConnection(s tatus.ServerName);272 myBridge.AddServerConnection(serverName); 300 273 } 301 274 … … 303 276 304 277 void PlayButtonOnClick(object sender, RoutedEventArgs args) { 305 if(songView.HighlightedRow.SongId == playingId){ 306 if(VLControl.IsPlaying){ 307 VLControl.Pause(); 308 PlayButton.Template = (ControlTemplate)this.FindResource("PlayIcon"); 309 310 } 311 else if(VLControl.IsPaused){ 312 VLControl.UnPause(); 313 314 PlayButton.Template = (ControlTemplate)this.FindResource("PauseIcon"); 315 } 278 if(VLControl.IsPlaying){ 279 VLControl.Pause(); 280 PlayButton.Template = (ControlTemplate)this.FindResource("PlayIcon"); 281 282 } 283 else if(VLControl.IsPaused){ 284 VLControl.UnPause(); 285 286 PlayButton.Template = (ControlTemplate)this.FindResource("PauseIcon"); 316 287 } 317 288 else { … … 319 290 string songURL = myBridge.getSongURL(songId); 320 291 321 //VLControl.AddSongToPlaylist(songId, songURL, songURL);322 292 Console.WriteLine("Playing song number {0} as {1}", songId, songURL); 323 293 VLControl.PlaySong(songId); 324 294 playingId = songId; 325 //VLControl.AddAndPlay(songURL, "");326 327 295 328 296 PlayButton.Template = (ControlTemplate)this.FindResource("PauseIcon"); dmp/trunk/client/wpfclient/wpfclient.csproj
r172 r182 13 13 <StartupObject> 14 14 </StartupObject> 15 <ApplicationIcon>icon64.ico</ApplicationIcon> 15 16 </PropertyGroup> 16 17 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> … … 90 91 <Resource Include="resources\Server_green.png" /> 91 92 </ItemGroup> 93 <ItemGroup> 94 <Resource Include="icon32.ico" /> 95 </ItemGroup> 96 <ItemGroup> 97 <Resource Include="icon64.ico" /> 98 </ItemGroup> 99 <ItemGroup> 100 <Resource Include="resources\icon32.ico" /> 101 </ItemGroup> 92 102 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 93 103 <Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
