public MainWindow()
{
InitializeComponent();
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(EventCurrentDomainUnhandledException);
this.DataContext = this;
iExtendedNotifyIcon = new ExtendedNotifyIcon(Properties.Resources.Icon);
iExtendedNotifyIcon.Click += EventNotifyIconClick;
iExtendedNotifyIcon.RightClick += EventNotifyIconRightClick;
System.Windows.Forms.ContextMenu menu = new System.Windows.Forms.ContextMenu();
System.Windows.Forms.MenuItem open = new System.Windows.Forms.MenuItem("Open", new EventHandler(EventContextMenuOpen));
System.Windows.Forms.MenuItem exit = new System.Windows.Forms.MenuItem("Exit", new EventHandler(EventContextMenuExit));
menu.MenuItems.Add(open);
menu.MenuItems.Add(exit);
iExtendedNotifyIcon.ContextMenu = menu;
Left = SystemParameters.WorkArea.Width - LayoutRoot.Width - 10;
Top = SystemParameters.WorkArea.Height - LayoutRoot.Height - 2;
iConfigurationWindow = new ConfigurationWindow();
iMediaPlayerWindow = new MediaPlayerWindow(iConfigurationWindow.Enabled, this);
iConfigurationWindow.Left = Left;
iConfigurationWindow.Top = Top - iConfigurationWindow.LayoutRoot.Height + 1;
iMediaPlayerWindow.Left = Left;
iMediaPlayerWindow.Top = Top - iMediaPlayerWindow.LayoutRoot.Height + 1;
// Locate these storyboards and "cache" them - we only ever want to find these once for performance reasons
iStoryBoardFadeIn = (Storyboard)this.TryFindResource("storyBoardFadeIn");
iStoryBoardFadeIn.Completed += new EventHandler(EventStoryBoardFadeInCompleted);
iStoryBoardFadeOut = (Storyboard)TryFindResource("storyBoardFadeOut");
iStoryBoardFadeOut.Completed += new EventHandler(EventStoryBoardFadeOutCompleted);
this.Closing += EventWindowClosing;
System.Drawing.Image image = OpenHome.Songcast.Properties.Resources.Icon.ToBitmap();
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] bytes = stream.ToArray();
try
{
iSongcast = new Songcast("av.openhome.org", iConfigurationWindow.Subnet, iConfigurationWindow.Channel, iConfigurationWindow.Ttl, iConfigurationWindow.Latency, iConfigurationWindow.Multicast, iConfigurationWindow.Enabled, iConfigurationWindow.Preset, iMediaPlayerWindow.ReceiverList, iConfigurationWindow.SubnetList, this, "OpenHome", "http://www.openhome.org", "http://www.openhome.org", bytes, "image/bmp");
}
catch (SongcastError e)
{
MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
App.Current.Shutdown(1);
}
iConfigurationWindow.SubnetChanged += EventSubnetChanged;
iConfigurationWindow.MulticastChanged += EventMulticastChanged;
iConfigurationWindow.ChannelChanged += EventMulticastChannelChanged;
iConfigurationWindow.TtlChanged += EventTtlChanged;
iConfigurationWindow.LatencyChanged += EventLatencyChanged;
iConfigurationWindow.PresetChanged += EventPresetChanged;
bool value = iConfigurationWindow.Enabled;
iMediaPlayerWindow.SetEnabled(value);
Settings.Click += new RoutedEventHandler(EventSettingsClick);
Receivers.Click += new RoutedEventHandler(EventReceiversClick);
this.Topmost = true;
iConfigurationWindow.Topmost = true;
iMediaPlayerWindow.Topmost = true;
}