Changeset 182

Show
Ignore:
Timestamp:
03/31/07 11:31:02 (1 year ago)
Author:
bsmith7
Message:

Cleaned up the wpf code a bit

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dmp/trunk/client/wpfclient/main_window.xaml.cs

    r178 r182  
    212212                 
    213213                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 
    218217                        Console.WriteLine("ServerStatusChanged called"); 
    219218                        serverStack.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal,  
    220                                         new ServerUpdateDelegate(ChangeServerStatus)); 
     219                                        new ServerUpdateDelegate(delegate {ChangeServerStatus(server);})); 
    221220                } 
    222221 
    223222                //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) {   
    230224                        Canvas serverCanvas = displayedServers[server.ServerName]; 
    231                         //BitmapImage bitmap = (BitmapImage)((Image)mainPanel.Children[0]).Source; 
    232225                        BitmapImage bitmap = new BitmapImage(); 
    233226                        bitmap.BeginInit(); 
     
    237230                        Image connectionStatus = (Image)serverCanvas.Children[0]; 
    238231                        connectionStatus.Source = (ImageSource)bitmap; 
    239                         /*bitmap.BeginInit(); 
    240                         bitmap.UriSource = GetServerStatus(server.Second); 
    241                         bitmap.EndInit(); 
    242                         */ 
     232 
    243233                        Button controlButton = (Button)serverCanvas.Children[2]; 
    244234                        controlButton.Template = GetButtonTemplate(server.Connected); 
    245235                        controlButton.Content = server; 
    246                 } 
    247  
    248                 Queue<DataTable> datatableQueue = new Queue<DataTable>(); 
     236                       controlButton.Visibility = Visibility.Visible;  //Temporary code 
     237                } 
     238 
    249239                private void DataTableChanged(object o, SongListChangedEventArgs args){ 
    250                         lock(datatableQueue){ 
    251                                 datatableQueue.Enqueue(args.NewTable); 
    252                         } 
    253  
    254240                        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){ 
    263245                        Console.WriteLine("Changing data table"); 
    264246                         
     
    272254                        songView.SongDT = newDT; 
    273255                } 
    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 
    276259                private void OnServerClick(object sender, MouseButtonEventArgs args){ 
    277260                        Button source = (Button)sender; 
    278                         //(string)source.Content; 
    279261                        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; 
    291262                         
    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); 
    298271                        else 
    299                                 myBridge.AddServerConnection(status.ServerName); 
     272                                myBridge.AddServerConnection(serverName); 
    300273                } 
    301274 
     
    303276 
    304277                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"); 
    316287                        } 
    317288                        else { 
     
    319290                                string songURL = myBridge.getSongURL(songId); 
    320291                                 
    321                                 //VLControl.AddSongToPlaylist(songId, songURL, songURL); 
    322292                                Console.WriteLine("Playing song number {0} as {1}", songId, songURL); 
    323293                                VLControl.PlaySong(songId); 
    324294                                playingId = songId; 
    325                                 //VLControl.AddAndPlay(songURL, ""); 
    326  
    327295 
    328296                                PlayButton.Template = (ControlTemplate)this.FindResource("PauseIcon"); 
  • dmp/trunk/client/wpfclient/wpfclient.csproj

    r172 r182  
    1313    <StartupObject> 
    1414    </StartupObject> 
     15    <ApplicationIcon>icon64.ico</ApplicationIcon> 
    1516  </PropertyGroup> 
    1617  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
     
    9091    <Resource Include="resources\Server_green.png" /> 
    9192  </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> 
    92102  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
    93103  <Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />