diff --git a/MPfm/MPfm.Android/Resources/drawable/button_selector.xml b/MPfm/MPfm.Android/Resources/drawable/button_selector.xml deleted file mode 100644 index 0823544b..00000000 --- a/MPfm/MPfm.Android/Resources/drawable/button_selector.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/MPfm/MPfm.Android/Resources/drawable/list_selector.xml b/MPfm/MPfm.Android/Resources/drawable/list_selector.xml deleted file mode 100644 index 53a3d945..00000000 --- a/MPfm/MPfm.Android/Resources/drawable/list_selector.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/MPfm/MPfm.MVP/MPfm.MVP.csproj b/MPfm/MPfm.MVP/MPfm.MVP.csproj index eb388edf..f0137d0d 100644 --- a/MPfm/MPfm.MVP/MPfm.MVP.csproj +++ b/MPfm/MPfm.MVP/MPfm.MVP.csproj @@ -230,5 +230,6 @@ + \ No newline at end of file diff --git a/MPfm/MPfm.MVP/Navigation/NavigationManager.cs b/MPfm/MPfm.MVP/Navigation/NavigationManager.cs index d1bdb1e3..f0a88e87 100644 --- a/MPfm/MPfm.MVP/Navigation/NavigationManager.cs +++ b/MPfm/MPfm.MVP/Navigation/NavigationManager.cs @@ -21,6 +21,8 @@ using TinyIoC; using MPfm.MVP.Views; using MPfm.MVP.Presenters.Interfaces; +using MPfm.Library.Objects; +using MPfm.Sound.AudioFiles; namespace MPfm.MVP.Navigation { @@ -38,10 +40,7 @@ public abstract class NavigationManager private ILibraryBrowserPresenter _libraryBrowserPresenter; private ISongBrowserPresenter _songBrowserPresenter; - private IPreferencesView _preferencesView; - private IAudioPreferencesView _audioPreferencesView; - private IGeneralPreferencesView _generalPreferencesView; - private ILibraryPreferencesView _libraryPreferencesView; + private IDesktopPreferencesView _desktopPreferencesView; private IAudioPreferencesPresenter _audioPreferencesPresenter; private IGeneralPreferencesPresenter _generalPreferencesPresenter; private ILibraryPreferencesPresenter _libraryPreferencesPresenter; @@ -51,6 +50,10 @@ public abstract class NavigationManager private ISyncView _syncView; private ISyncPresenter _syncPresenter; + private ISyncMenuView _syncMenuView; + private ISyncMenuPresenter _syncMenuPresenter; + private ISyncDownloadView _syncDownloadView; + private ISyncDownloadPresenter _syncDownloadPresenter; public virtual ISplashView CreateSplashView() { @@ -100,35 +103,34 @@ public virtual IMainView CreateMainView() return _mainView; } - public virtual IPreferencesView CreatePreferencesView() + public virtual IDesktopPreferencesView CreatePreferencesView() { // If the view is still visible, just make it the top level window - if(_preferencesView != null) + if(_desktopPreferencesView != null) { - _preferencesView.ShowView(true); - return _preferencesView; + _desktopPreferencesView.ShowView(true); + return _desktopPreferencesView; } // The view invokes the OnViewReady action when the view is ready. This means the presenter can be created and bound to the view. - Action onViewReady = (view) => - { - _audioPreferencesPresenter = Bootstrapper.GetContainer().Resolve(); - _audioPreferencesPresenter.BindView((IAudioPreferencesView)view); - _generalPreferencesPresenter = Bootstrapper.GetContainer().Resolve(); - _generalPreferencesPresenter.BindView((IGeneralPreferencesView)view); - _libraryPreferencesPresenter = Bootstrapper.GetContainer().Resolve(); - _libraryPreferencesPresenter.BindView((ILibraryPreferencesView)view); - }; + Action onViewReady = (view) => { + _audioPreferencesPresenter = Bootstrapper.GetContainer().Resolve(); + _audioPreferencesPresenter.BindView((IAudioPreferencesView)view); + _generalPreferencesPresenter = Bootstrapper.GetContainer().Resolve(); + _generalPreferencesPresenter.BindView((IGeneralPreferencesView)view); + _libraryPreferencesPresenter = Bootstrapper.GetContainer().Resolve(); + _libraryPreferencesPresenter.BindView((ILibraryPreferencesView)view); + }; // Create view and manage view destruction - _preferencesView = Bootstrapper.GetContainer().Resolve(new NamedParameterOverloads() { { "onViewReady", onViewReady } }); - _preferencesView.OnViewDestroy = (view) => { - _preferencesView = null; + _desktopPreferencesView = Bootstrapper.GetContainer().Resolve(new NamedParameterOverloads() { { "onViewReady", onViewReady } }); + _desktopPreferencesView.OnViewDestroy = (view) => { + _desktopPreferencesView = null; _audioPreferencesPresenter = null; _generalPreferencesPresenter = null; _libraryPreferencesPresenter = null; }; - return _preferencesView; + return _desktopPreferencesView; } public virtual ISyncView CreateSyncView() @@ -155,5 +157,51 @@ public virtual ISyncView CreateSyncView() }; return _syncView; } + + public virtual ISyncMenuView CreateSyncMenuView(SyncDevice device) + { + if(_syncMenuView != null) + { + _syncMenuView.ShowView(true); + return _syncMenuView; + } + + Action onViewReady = (view) => + { + _syncMenuPresenter = Bootstrapper.GetContainer().Resolve(); + _syncMenuPresenter.BindView((ISyncMenuView)view); + _syncMenuPresenter.SetSyncDevice(device); + }; + + _syncMenuView = Bootstrapper.GetContainer().Resolve(new NamedParameterOverloads() { { "onViewReady", onViewReady } }); + _syncMenuView.OnViewDestroy = (view) => { + _syncMenuView = null; + _syncMenuPresenter = null; + }; + return _syncMenuView; + } + + public virtual ISyncDownloadView CreateSyncDownloadView(SyncDevice device, IEnumerable audioFiles) + { + if(_syncDownloadView != null) + { + _syncDownloadView.ShowView(true); + return _syncDownloadView; + } + + Action onViewReady = (view) => + { + _syncDownloadPresenter = Bootstrapper.GetContainer().Resolve(); + _syncDownloadPresenter.BindView((ISyncDownloadView)view); + _syncDownloadPresenter.StartSync(device, audioFiles); + }; + + _syncDownloadView = Bootstrapper.GetContainer().Resolve(new NamedParameterOverloads() { { "onViewReady", onViewReady } }); + _syncDownloadView.OnViewDestroy = (view) => { + _syncDownloadView = null; + _syncDownloadPresenter = null; + }; + return _syncDownloadView; + } } } diff --git a/MPfm/MPfm.MVP/Presenters/LibraryPreferencesPresenter.cs b/MPfm/MPfm.MVP/Presenters/LibraryPreferencesPresenter.cs index 13992d68..3ecef668 100644 --- a/MPfm/MPfm.MVP/Presenters/LibraryPreferencesPresenter.cs +++ b/MPfm/MPfm.MVP/Presenters/LibraryPreferencesPresenter.cs @@ -15,11 +15,12 @@ // You should have received a copy of the GNU General Public License // along with MPfm. If not, see . -using MPfm.MVP.Presenters.Interfaces; -using MPfm.MVP.Views; -using MPfm.Library.Services.Interfaces; using System; +using MPfm.Library.Services.Interfaces; +using MPfm.MVP.Bootstrap; using MPfm.MVP.Navigation; +using MPfm.MVP.Presenters.Interfaces; +using MPfm.MVP.Views; namespace MPfm.MVP.Presenters { @@ -28,18 +29,24 @@ namespace MPfm.MVP.Presenters /// public class LibraryPreferencesPresenter : BasePresenter, ILibraryPreferencesPresenter { - readonly MobileNavigationManager _navigationManager; + readonly NavigationManager _navigationManager; + readonly MobileNavigationManager _mobileNavigationManager; readonly ISyncListenerService _syncListenerService; readonly ILibraryService _libraryService; readonly IAudioFileCacheService _audioFileCacheService; public LibraryPreferencesPresenter(ISyncListenerService syncListenerService, ILibraryService libraryService, - IAudioFileCacheService audioFileCacheService, MobileNavigationManager navigationManager) + IAudioFileCacheService audioFileCacheService) { _syncListenerService = syncListenerService; _libraryService = libraryService; _audioFileCacheService = audioFileCacheService; - _navigationManager = navigationManager; + +#if IOS || ANDROID + _mobileNavigationManager = Bootstrapper.GetContainer().Resolve(); +#else + _navigationManager = Bootstrapper.GetContainer().Resolve(); +#endif } public override void BindView(ILibraryPreferencesView view) @@ -75,8 +82,8 @@ private void UpdateLibrary() { try { - var view = _navigationManager.CreateUpdateLibraryView(); - _navigationManager.PushDialogView("Update Library", View, view); + var view = _mobileNavigationManager.CreateUpdateLibraryView(); + _mobileNavigationManager.PushDialogView("Update Library", View, view); } catch(Exception ex) { diff --git a/MPfm/MPfm.MVP/Presenters/SyncPresenter.cs b/MPfm/MPfm.MVP/Presenters/SyncPresenter.cs index 78ddb0f0..adbc0cf9 100644 --- a/MPfm/MPfm.MVP/Presenters/SyncPresenter.cs +++ b/MPfm/MPfm.MVP/Presenters/SyncPresenter.cs @@ -25,6 +25,7 @@ using MPfm.MVP.Views; using MPfm.Library.Services; using MPfm.MVP.Navigation; +using MPfm.MVP.Bootstrap; namespace MPfm.MVP.Presenters { @@ -34,18 +35,24 @@ namespace MPfm.MVP.Presenters public class SyncPresenter : BasePresenter, ISyncPresenter { readonly ISyncDiscoveryService _syncDiscoveryService; - readonly MobileNavigationManager _navigationManager; + readonly MobileNavigationManager _mobileNavigationManager; + readonly NavigationManager _navigationManager; readonly ISyncDeviceSpecifications _deviceSpecifications; List _devices = new List(); - public SyncPresenter(MobileNavigationManager navigationManager, ISyncDiscoveryService syncDiscoveryService, ISyncDeviceSpecifications deviceSpecifications) + public SyncPresenter(ISyncDiscoveryService syncDiscoveryService, ISyncDeviceSpecifications deviceSpecifications) { - _navigationManager = navigationManager; _deviceSpecifications = deviceSpecifications; _syncDiscoveryService = syncDiscoveryService; _syncDiscoveryService.OnDeviceFound += HandleOnDeviceFound; _syncDiscoveryService.OnDiscoveryProgress += HandleOnDiscoveryProgress; _syncDiscoveryService.OnDiscoveryEnded += HandleOnDiscoveryEnded; + +#if IOS || ANDROID + _mobileNavigationManager = Bootstrapper.GetContainer().Resolve(); +#else + _navigationManager = Bootstrapper.GetContainer().Resolve(); +#endif } public override void BindView(ISyncView view) @@ -88,7 +95,11 @@ private void HandleOnDiscoveryEnded(IEnumerable devices) private void ConnectDevice(SyncDevice device) { - _navigationManager.CreateSyncMenuView(device); +#if IOS || ANDROID + _mobileNavigationManager.CreateSyncMenuView(device); +#else + _navigationManager.CreateSyncMenuView(device); +#endif } private void ConnectDeviceManually(string url) diff --git a/MPfm/MPfm.MVP/Views/IDesktopPreferencesView.cs b/MPfm/MPfm.MVP/Views/IDesktopPreferencesView.cs new file mode 100644 index 00000000..0f0d51ea --- /dev/null +++ b/MPfm/MPfm.MVP/Views/IDesktopPreferencesView.cs @@ -0,0 +1,29 @@ +// Copyright © 2011-2013 Yanick Castonguay +// +// This file is part of MPfm. +// +// MPfm is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// MPfm is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with MPfm. If not, see . + +using System; +using System.Collections.Generic; + +namespace MPfm.MVP.Views +{ + /// + /// Preferences view interface (menu for mobile devices). + /// + public interface IDesktopPreferencesView : IAudioPreferencesView, IGeneralPreferencesView, ILibraryPreferencesView + { + } +} diff --git a/MPfm/MPfm.Mac/Classes/Delegates/AppDelegate.cs b/MPfm/MPfm.Mac/Classes/Delegates/AppDelegate.cs index 33a05b1f..412918dc 100644 --- a/MPfm/MPfm.Mac/Classes/Delegates/AppDelegate.cs +++ b/MPfm/MPfm.Mac/Classes/Delegates/AppDelegate.cs @@ -53,10 +53,12 @@ public override void FinishedLaunching(NSObject notification) Bootstrapper.GetContainer().Register().AsMultiInstance(); Bootstrapper.GetContainer().Register().AsMultiInstance(); Bootstrapper.GetContainer().Register().AsMultiInstance(); - //Bootstrapper.GetContainer().Register().AsMultiInstance(); + Bootstrapper.GetContainer().Register().AsMultiInstance(); //Bootstrapper.GetContainer().Register().AsMultiInstance(); - //Bootstrapper.GetContainer().Register().AsMultiInstance(); + Bootstrapper.GetContainer().Register().AsMultiInstance(); Bootstrapper.GetContainer().Register().AsMultiInstance(); + Bootstrapper.GetContainer().Register().AsMultiInstance(); + Bootstrapper.GetContainer().Register().AsMultiInstance(); // Create and start navigation manager _navigationManager = Bootstrapper.GetContainer().Resolve(); diff --git a/MPfm/MPfm.Mac/Classes/MacSyncDeviceSpecifications.cs b/MPfm/MPfm.Mac/Classes/MacSyncDeviceSpecifications.cs index 85b4b625..a649993d 100644 --- a/MPfm/MPfm.Mac/Classes/MacSyncDeviceSpecifications.cs +++ b/MPfm/MPfm.Mac/Classes/MacSyncDeviceSpecifications.cs @@ -17,8 +17,9 @@ using System; using MPfm.Library; -using MonoMac.Foundation; using MPfm.Library.Objects; +using MPfm.Library.Services; +using MonoMac.Foundation; namespace MPfm.Mac { @@ -27,6 +28,8 @@ namespace MPfm.Mac /// public class MacSyncDeviceSpecifications : NSObject, ISyncDeviceSpecifications { + public event NetworkStateChanged OnNetworkStateChanged; + public SyncDeviceType GetDeviceType() { return SyncDeviceType.OSX; @@ -45,5 +48,21 @@ public long GetFreeSpace() { return 0; } + + public string GetIPAddress() + { + return SyncListenerService.GetLocalIPAddress().ToString(); + } + + public string GetMusicFolderPath() + { + return Environment.GetFolderPath(Environment.SpecialFolder.MyMusic); + } + + public void ReportNetworkStateChange(NetworkState networkState) + { + if (OnNetworkStateChanged != null) + OnNetworkStateChanged(networkState); + } } } diff --git a/MPfm/MPfm.Mac/Classes/Navigation/MacNavigationManager.cs b/MPfm/MPfm.Mac/Classes/Navigation/MacNavigationManager.cs index 54b2abbf..8cbd8783 100644 --- a/MPfm/MPfm.Mac/Classes/Navigation/MacNavigationManager.cs +++ b/MPfm/MPfm.Mac/Classes/Navigation/MacNavigationManager.cs @@ -55,9 +55,9 @@ public override IMainView CreateMainView() return view; } - public override IPreferencesView CreatePreferencesView() + public override IDesktopPreferencesView CreatePreferencesView() { - IPreferencesView view = null; + IDesktopPreferencesView view = null; using (var pool = new NSAutoreleasePool()) { pool.InvokeOnMainThread(delegate { diff --git a/MPfm/MPfm.Mac/MPfm.Mac.csproj b/MPfm/MPfm.Mac/MPfm.Mac.csproj index c3613aaa..c07668f3 100644 --- a/MPfm/MPfm.Mac/MPfm.Mac.csproj +++ b/MPfm/MPfm.Mac/MPfm.Mac.csproj @@ -203,6 +203,16 @@ + + + + SyncMenuWindow.cs + + + + + SyncDownloadWindow.cs + @@ -216,6 +226,8 @@ + + diff --git a/MPfm/MPfm.Mac/Windows/Controllers/PlaylistWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/PlaylistWindowController.cs index 63b3d4d7..9018eb53 100644 --- a/MPfm/MPfm.Mac/Windows/Controllers/PlaylistWindowController.cs +++ b/MPfm/MPfm.Mac/Windows/Controllers/PlaylistWindowController.cs @@ -24,13 +24,13 @@ using MPfm.MVP.Views; using MPfm.MVP.Presenters.Interfaces; using MPfm.Mac.Classes.Objects; +using MPfm.Sound.Playlists; +using MPfm.Sound.AudioFiles; namespace MPfm.Mac { - public partial class PlaylistWindowController : BaseWindowController + public partial class PlaylistWindowController : BaseWindowController, IPlaylistView { - readonly IPlaylistPresenter playlistPresenter; - #region Constructors // Called when created from unmanaged code @@ -41,7 +41,7 @@ public PlaylistWindowController(IntPtr handle) } // Call to load from the XIB/NIB file - public PlaylistWindowController(IPlaylistPresenter playlistPresenter, Action onViewReady) + public PlaylistWindowController(Action onViewReady) : base ("PlaylistWindow", onViewReady) { Initialize(); @@ -94,5 +94,30 @@ private void LoadImages() partial void actionSaveAsPlaylist(NSObject sender) { } + + #region IPlaylistView implementation + + public Action OnChangePlaylistItemOrder { get; set; } + public Action OnSelectPlaylistItem { get; set; } + public Action OnRemovePlaylistItem { get; set; } + public Action OnNewPlaylist { get; set; } + public Action OnLoadPlaylist { get; set; } + public Action OnSavePlaylist { get; set; } + public Action OnShufflePlaylist { get; set; } + + public void PlaylistError(Exception ex) + { + } + + public void RefreshPlaylist(Playlist playlist) + { + } + + public void RefreshCurrentlyPlayingSong(int index, AudioFile audioFile) + { + } + + #endregion + } } diff --git a/MPfm/MPfm.Mac/Windows/Controllers/PreferencesWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/PreferencesWindowController.cs index e3838b13..c76a1c22 100644 --- a/MPfm/MPfm.Mac/Windows/Controllers/PreferencesWindowController.cs +++ b/MPfm/MPfm.Mac/Windows/Controllers/PreferencesWindowController.cs @@ -25,7 +25,7 @@ namespace MPfm.Mac { - public partial class PreferencesWindowController : BaseWindowController + public partial class PreferencesWindowController : BaseWindowController, IDesktopPreferencesView { #region Constructors @@ -66,5 +66,19 @@ public new PreferencesWindow Window return (PreferencesWindow)base.Window; } } + +#region ILibraryPreferencesView implementation + + public Action OnResetLibrary { get; set; } + public Action OnUpdateLibrary { get; set; } + public Action OnEnableSyncListener { get; set; } + public Action OnSetSyncListenerPort { get; set; } + + public void LibraryPreferencesError(Exception ex) + { + } + +#endregion + } } diff --git a/MPfm/MPfm.Mac/Windows/Controllers/SplashWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/SplashWindowController.cs index 726775bb..d5eb4205 100644 --- a/MPfm/MPfm.Mac/Windows/Controllers/SplashWindowController.cs +++ b/MPfm/MPfm.Mac/Windows/Controllers/SplashWindowController.cs @@ -121,7 +121,7 @@ public void RefreshStatus(string message) { } - public void InitDone() + public void InitDone(bool isAppFirstStart) { InvokeOnMainThread(delegate { lblMessage.StringValue = "Initialization successful!"; diff --git a/MPfm/MPfm.Mac/Windows/Controllers/SyncDownloadWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/SyncDownloadWindowController.cs new file mode 100644 index 00000000..36628767 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/Controllers/SyncDownloadWindowController.cs @@ -0,0 +1,86 @@ +// Copyright © 2011-2013 Yanick Castonguay +// +// This file is part of MPfm. +// +// MPfm is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// MPfm is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with MPfm. If not, see . + +using System; +using System.Collections.Generic; +using MPfm.MVP.Views; +using MPfm.Library.Objects; + +namespace MPfm.Mac +{ + public partial class SyncDownloadWindowController : BaseWindowController, ISyncDownloadView + { + #region Constructors + + // Called when created from unmanaged code + public SyncDownloadWindowController(IntPtr handle) + : base (handle) + { + Initialize(); + } + + // Call to load from the XIB/NIB file + public SyncDownloadWindowController(Action onViewReady) + : base ("SyncDownloadWindow", onViewReady) + { + Initialize(); + } + + // Shared initialization code + void Initialize() + { + } + + #endregion + + //strongly typed window accessor + public new SyncDownloadWindow Window + { + get + { + return (SyncDownloadWindow)base.Window; + } + } + + public override void AwakeFromNib() + { + base.AwakeFromNib(); + } + + #region ISyncDownloadView implementation + + public Action OnCancelDownload { get; set; } + + public void SyncDownloadError(Exception ex) + { + } + + public void RefreshDevice(SyncDevice device) + { + } + + public void RefreshStatus(SyncClientDownloadAudioFileProgressEntity entity) + { + } + + public void SyncCompleted() + { + } + + #endregion + } +} diff --git a/MPfm/MPfm.Mac/Windows/Controllers/SyncMenuWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/SyncMenuWindowController.cs new file mode 100644 index 00000000..6a92ee7d --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/Controllers/SyncMenuWindowController.cs @@ -0,0 +1,110 @@ +// Copyright © 2011-2013 Yanick Castonguay +// +// This file is part of MPfm. +// +// MPfm is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// MPfm is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with MPfm. If not, see . + +using System; +using System.Collections.Generic; +using MPfm.MVP.Views; +using MPfm.Library.Objects; +using MPfm.MVP.Models; + +namespace MPfm.Mac +{ + public partial class SyncMenuWindowController : BaseWindowController, ISyncMenuView + { + #region Constructors + + // Called when created from unmanaged code + public SyncMenuWindowController(IntPtr handle) + : base (handle) + { + Initialize(); + } + + // Call to load from the XIB/NIB file + public SyncMenuWindowController(Action onViewReady) + : base ("SyncMenuWindow", onViewReady) + { + Initialize(); + } + + // Shared initialization code + void Initialize() + { + } + + #endregion + + //strongly typed window accessor + public new SyncMenuWindow Window + { + get + { + return (SyncMenuWindow)base.Window; + } + } + + public override void AwakeFromNib() + { + base.AwakeFromNib(); + } + + #region ISyncMenuView implementation + + public Action OnExpandItem { get; set; } + public Action OnSelectItem { get; set; } + public Action OnSync { get; set; } + public Action OnSelectButtonClick { get; set; } + + public void SyncMenuError(Exception ex) + { + } + + public void SyncEmptyError(Exception ex) + { + } + + public void RefreshDevice(SyncDevice device) + { + } + + public void RefreshLoading(bool isLoading, int progressPercentage) + { + } + + public void RefreshSelectButton(string text) + { + } + + public void RefreshItems(List items) + { + } + + public void RefreshSyncTotal(string title, string subtitle, bool enoughFreeSpace) + { + } + + public void InsertItems(int index, List items) + { + } + + public void RemoveItems(int index, int count) + { + } + + #endregion + } +} diff --git a/MPfm/MPfm.Mac/Windows/Controllers/SyncWindowController.cs b/MPfm/MPfm.Mac/Windows/Controllers/SyncWindowController.cs index d536e152..4d182379 100644 --- a/MPfm/MPfm.Mac/Windows/Controllers/SyncWindowController.cs +++ b/MPfm/MPfm.Mac/Windows/Controllers/SyncWindowController.cs @@ -52,11 +52,11 @@ public override void AwakeFromNib() progressIndicator.StartAnimation(this); lblTitle.Font = NSFont.FromFontName("TitilliumText25L-800wt", 18); - //lblLibraryUrl.Font = NSFont.FromFontName("Junction", 12); + btnRefreshDevices.StringValue = "Cancel refresh"; - btnAddDevice.Image = ImageResources.images16x16.FirstOrDefault(x => x.Name == "16_icomoon_plus"); + btnConnect.Image = ImageResources.images16x16.FirstOrDefault(x => x.Name == "16_icomoon_cabinet"); + btnConnectManual.Image = ImageResources.images16x16.FirstOrDefault(x => x.Name == "16_icomoon_plus"); btnRefreshDevices.Image = ImageResources.images16x16.FirstOrDefault(x => x.Name == "16_icomoon_refresh"); - btnSyncLibraryWithDevice.Image = ImageResources.images16x16.FirstOrDefault(x => x.Name == "16_icomoon_cabinet"); } public override void WindowDidLoad() @@ -69,8 +69,15 @@ public override void WindowDidLoad() OnViewReady.Invoke(this); } - partial void actionSyncLibraryWithDevice(NSObject sender) + partial void actionConnect(NSObject sender) + { + OnConnectDevice(_items[tableViewDevices.SelectedRow]); + } + + partial void actionConnectManual(NSObject sender) { + // Show dialog box + //OnConnectDeviceManually(); } partial void actionRefreshDevices(NSObject sender) @@ -138,14 +145,16 @@ public NSView GetViewForItem(NSTableView tableView, NSTableColumn tableColumn, i [Export ("tableViewSelectionDidChange:")] public void SelectionDidChange(NSNotification notification) { - btnSyncLibraryWithDevice.Enabled = (tableViewDevices.SelectedRow == -1) ? false : true; + btnConnect.Enabled = (tableViewDevices.SelectedRow == -1) ? false : true; } #region ISyncView implementation - public Action OnConnectDevice { get; set; } + public Action OnConnectDevice { get; set; } public Action OnConnectDeviceManually { get; set; } public Action OnRefreshDevices { get; set; } + public Action OnStartDiscovery { get; set; } + public Action OnCancelDiscovery { get; set; } public void SyncError(Exception ex) { diff --git a/MPfm/MPfm.Mac/Windows/SyncDownloadWindow.cs b/MPfm/MPfm.Mac/Windows/SyncDownloadWindow.cs new file mode 100644 index 00000000..e4a47404 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/SyncDownloadWindow.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MonoMac.Foundation; +using MonoMac.AppKit; + +namespace MPfm.Mac +{ + public partial class SyncDownloadWindow : MonoMac.AppKit.NSWindow + { + #region Constructors + + // Called when created from unmanaged code + public SyncDownloadWindow(IntPtr handle) : base (handle) + { + Initialize(); + } + // Called when created directly from a XIB file + [Export ("initWithCoder:")] + public SyncDownloadWindow(NSCoder coder) : base (coder) + { + Initialize(); + } + // Shared initialization code + void Initialize() + { + } + #endregion + } +} + diff --git a/MPfm/MPfm.Mac/Windows/SyncDownloadWindow.designer.cs b/MPfm/MPfm.Mac/Windows/SyncDownloadWindow.designer.cs new file mode 100644 index 00000000..0b811586 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/SyncDownloadWindow.designer.cs @@ -0,0 +1,15 @@ + +namespace MPfm.Mac +{ + // Should subclass MonoMac.AppKit.NSWindow + [MonoMac.Foundation.Register("SyncDownloadWindow")] + public partial class SyncDownloadWindow + { + } + // Should subclass MonoMac.AppKit.NSWindowController + [MonoMac.Foundation.Register("SyncDownloadWindowController")] + public partial class SyncDownloadWindowController + { + } +} + diff --git a/MPfm/MPfm.Mac/Windows/SyncMenuWindow.cs b/MPfm/MPfm.Mac/Windows/SyncMenuWindow.cs new file mode 100644 index 00000000..60dbc960 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/SyncMenuWindow.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using MonoMac.Foundation; +using MonoMac.AppKit; + +namespace MPfm.Mac +{ + public partial class SyncMenuWindow : MonoMac.AppKit.NSWindow + { + #region Constructors + + // Called when created from unmanaged code + public SyncMenuWindow(IntPtr handle) : base (handle) + { + Initialize(); + } + // Called when created directly from a XIB file + [Export ("initWithCoder:")] + public SyncMenuWindow(NSCoder coder) : base (coder) + { + Initialize(); + } + // Shared initialization code + void Initialize() + { + } + #endregion + } +} + diff --git a/MPfm/MPfm.Mac/Windows/SyncMenuWindow.designer.cs b/MPfm/MPfm.Mac/Windows/SyncMenuWindow.designer.cs new file mode 100644 index 00000000..b7362bb3 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/SyncMenuWindow.designer.cs @@ -0,0 +1,15 @@ + +namespace MPfm.Mac +{ + // Should subclass MonoMac.AppKit.NSWindow + [MonoMac.Foundation.Register("SyncMenuWindow")] + public partial class SyncMenuWindow + { + } + // Should subclass MonoMac.AppKit.NSWindowController + [MonoMac.Foundation.Register("SyncMenuWindowController")] + public partial class SyncMenuWindowController + { + } +} + diff --git a/MPfm/MPfm.Mac/Windows/SyncWindow.designer.cs b/MPfm/MPfm.Mac/Windows/SyncWindow.designer.cs index a43519be..8e079dc9 100644 --- a/MPfm/MPfm.Mac/Windows/SyncWindow.designer.cs +++ b/MPfm/MPfm.Mac/Windows/SyncWindow.designer.cs @@ -21,25 +21,25 @@ partial class SyncWindowController MonoMac.AppKit.NSButton btnRefreshDevices { get; set; } [Outlet] - MonoMac.AppKit.NSButton btnSyncLibraryWithDevice { get; set; } + MonoMac.AppKit.NSButton btnConnect { get; set; } [Outlet] MonoMac.AppKit.NSProgressIndicator progressIndicator { get; set; } [Outlet] - MonoMac.AppKit.NSButton btnAddDevice { get; set; } + MonoMac.AppKit.NSButton btnConnectManual { get; set; } [Outlet] MonoMac.AppKit.NSTextField lblTitle { get; set; } - [Action ("actionSyncLibraryWithDevice:")] - partial void actionSyncLibraryWithDevice (MonoMac.Foundation.NSObject sender); + [Action ("actionConnect:")] + partial void actionConnect (MonoMac.Foundation.NSObject sender); [Action ("actionRefreshDevices:")] partial void actionRefreshDevices (MonoMac.Foundation.NSObject sender); - [Action ("actionAddDevice:")] - partial void actionAddDevice (MonoMac.Foundation.NSObject sender); + [Action ("actionConnectManual:")] + partial void actionConnectManual (MonoMac.Foundation.NSObject sender); void ReleaseDesignerOutlets () { @@ -58,9 +58,9 @@ void ReleaseDesignerOutlets () btnRefreshDevices = null; } - if (btnSyncLibraryWithDevice != null) { - btnSyncLibraryWithDevice.Dispose (); - btnSyncLibraryWithDevice = null; + if (btnConnect != null) { + btnConnect.Dispose (); + btnConnect = null; } if (progressIndicator != null) { @@ -68,9 +68,9 @@ void ReleaseDesignerOutlets () progressIndicator = null; } - if (btnAddDevice != null) { - btnAddDevice.Dispose (); - btnAddDevice = null; + if (btnConnectManual != null) { + btnConnectManual.Dispose (); + btnConnectManual = null; } if (lblTitle != null) { diff --git a/MPfm/MPfm.Mac/Windows/XIB/SyncDownloadWindow.xib b/MPfm/MPfm.Mac/Windows/XIB/SyncDownloadWindow.xib new file mode 100644 index 00000000..0d3f2292 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/XIB/SyncDownloadWindow.xib @@ -0,0 +1,382 @@ + + + + 1080 + 12E55 + 3084 + 1187.39 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 3084 + + + YES + NSButton + NSButtonCell + NSCustomObject + NSProgressIndicator + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + SyncDownloadWindowController + + + FirstResponder + + + NSApplication + + + 271 + 2 + {{131, 74}, {606, 236}} + 611845120 + Window + SyncDownloadWindow + + + + + 256 + + YES + + + 268 + {{12, 198}, {572, 29}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Syncing library + + HelveticaNeue-Bold + 16 + 16 + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MQA + + 2 + + + + NO + + + + 268 + {{503, 19}, {83, 24}} + + + _NS:9 + YES + + 603979776 + 134217728 + Cancel + + HelveticaNeue + 12 + 16 + + _NS:9 + + -2038284288 + 162 + + + 200 + 25 + + NO + + + + 268 + {{12, 185}, {572, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + My IP address is: + + _NS:1535 + + + + 3 + MC43OTc3ODg1NTg1AA + + + NO + + + + 268 + {{15, 155}, {571, 12}} + + + + _NS:945 + 16648 + 100 + + + {606, 236} + + + + + {{0, 0}, {1920, 1058}} + {10000000000000, 10000000000000} + NO + + + + + YES + + + window + + + + 6 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 2 + + + YES + + + + + + 3 + + + YES + + + + + + + + + 7 + + + YES + + + + + + 10 + + + YES + + + + + + 12 + + + YES + + + + + + 13 + + + + + 14 + + + + + 16 + + + + + 34 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 10.CustomClassName + 10.IBPluginDependency + 12.IBPluginDependency + 13.IBPluginDependency + 14.IBPluginDependency + 16.IBPluginDependency + 2.IBPluginDependency + 2.IBWindowTemplateEditedContentRect + 2.NSWindowTemplate.visibleAtLaunch + 3.CustomClassName + 3.IBPluginDependency + 34.IBPluginDependency + 7.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + MPfmButton + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{319, 371}, {606, 354}} + + MPfmView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + + + + YES + + + + + 37 + + + + YES + + MPfmButton + NSButton + + IBProjectSource + ./Classes/MPfmButton.h + + + + MPfmView + NSView + + IBProjectSource + ./Classes/MPfmView.h + + + + SyncDownloadWindow + NSWindow + + IBProjectSource + ./Classes/SyncDownloadWindow.h + + + + SyncDownloadWindowController + NSWindowController + + IBProjectSource + ./Classes/SyncDownloadWindowController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + diff --git a/MPfm/MPfm.Mac/Windows/XIB/SyncMenuWindow.xib b/MPfm/MPfm.Mac/Windows/XIB/SyncMenuWindow.xib new file mode 100644 index 00000000..2ea5e8e8 --- /dev/null +++ b/MPfm/MPfm.Mac/Windows/XIB/SyncMenuWindow.xib @@ -0,0 +1,1026 @@ + + + + 1080 + 12E55 + 3084 + 1187.39 + 626.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 3084 + + + YES + NSButton + NSButtonCell + NSCustomObject + NSImageCell + NSImageView + NSProgressIndicator + NSScrollView + NSScroller + NSTableCellView + NSTableColumn + NSTableHeaderView + NSTableView + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + YES + + SyncMenuWindowController + + + FirstResponder + + + NSApplication + + + 271 + 2 + {{131, 74}, {606, 497}} + 611845120 + Window + SyncMenuWindow + + + + + 256 + + YES + + + 289 + {{464, 17}, {127, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Select all + + HelveticaNeue + 12 + 16 + + _NS:9 + + -2038284288 + 162 + + LucidaGrande + 12 + 16 + + + + 200 + 25 + + NO + + + + 268 + {{12, 446}, {457, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Choose audio files to sync + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 3 + MC43OTc3ODg1NTg1AA + + + NO + + + + 292 + {{12, 33}, {447, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Total: 0 files (0.0 MB) + + _NS:1535 + + + + 3 + MC43OTc3ODg1NTg1AA + + + NO + + + + 292 + {{12, 15}, {437, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Free space: 3043.2 MB + + _NS:1535 + + + + 3 + MC43OTc3ODg1NTg1AA + + + NO + + + + 265 + {{514, 459}, {77, 12}} + + + + _NS:945 + 16650 + 100 + + + + 274 + + YES + + + 2304 + + YES + + + 256 + + YES + + {579, 363} + + + + _NS:13 + YES + NO + YES + + + 256 + {579, 17} + + + + _NS:16 + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + _NS:19 + + + YES + + columnDeviceName + 202.7890625 + 40 + 1000 + + 75497536 + 2048 + Device Name + + HelveticaNeue + 11 + 16 + + + 3 + MC4zMzMzMzI5ODU2AA + + + 6 + System + headerTextColor + + 3 + MAA + + + + + 337641536 + 2048 + Text Cell + + LucidaGrande + 13 + 1044 + + + + 6 + System + controlBackgroundColor + + + + 6 + System + controlTextColor + + + + 3 + YES + YES + + + + columnDescription + 370 + 40 + 1000 + + 75497536 + 2048 + Description + + + + + + 337641536 + 2048 + Text Cell + + + + + + 3 + YES + YES + + + + 3 + 2 + + 3 + MQA + + + 6 + System + gridColor + + 3 + MC41AA + + + 20 + -700448768 + + + 4 + 15 + 0 + YES + 0 + 1 + + + {{0, 17}, {579, 363}} + + + + _NS:11 + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + + _NS:58 + NO + + _doScroller: + 37 + 0.1947367936372757 + + + + -2147483392 + {{1, 119}, {223, 15}} + + + + _NS:60 + NO + 1 + + _doScroller: + 0.57142859697341919 + + + + 2304 + + YES + + + {579, 17} + + + + _NS:15 + + + 4 + + + + {{12, 58}, {579, 380}} + + + + _NS:9 + 133680 + + + + + + QSAAAEEgAABBsAAAQbAAAA + 0.25 + 4 + 1 + + + + 268 + {{12, 459}, {457, 29}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Sync library with [device name] + + HelveticaNeue-Bold + 16 + 16 + + _NS:1535 + + + + 3 + MQA + + 2 + + + + NO + + + {606, 497} + + + + + {{0, 0}, {1920, 1058}} + {10000000000000, 10000000000000} + NO + + + + + YES + + + window + + + + 6 + + + + textField + + + 274 + + YES + + + 266 + {{0, 3}, {370, 17}} + + + _NS:20 + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + _NS:20 + + + + + NO + + + {{207, 1}, {370, 20}} + + _NS:9 + + + + 37 + + + + imageView + + + 274 + + YES + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{3, -2}, {17, 17}} + + + _NS:11 + YES + + 134217728 + 33554432 + + NSImage + NSActionTemplate + + _NS:11 + 0 + 0 + 0 + NO + + NO + YES + + + + 266 + {{25, 0}, {178, 17}} + + + _NS:20 + {250, 750} + YES + + 67108928 + 272631808 + Table View Cell + + _NS:20 + + + + + NO + + + {{1, 1}, {203, 17}} + + _NS:9 + + + + 35 + + + + textField + + + + 36 + + + + + YES + + 0 + + YES + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 2 + + + YES + + + + + + 3 + + + YES + + + + + + + + + + + + 8 + + + YES + + + + + + 10 + + + + + 11 + + + YES + + + + + + + + + 12 + + + YES + + + + + + 15 + + + + + 16 + + + YES + + + + + + + 17 + + + + + 18 + + + + + 19 + + + + + 20 + + + YES + + + + + + + 21 + + + YES + + + + + + + 22 + + + + + 23 + + + YES + + + + + + 24 + + + YES + + + + + + 25 + + + + + 26 + + + + + 27 + + + YES + + + + + + + 28 + + + YES + + + + + + 29 + + + YES + + + + + + 30 + + + + + 31 + + + + + 33 + + + + + 38 + + + YES + + + + + + 39 + + + + + 40 + + + YES + + + + + + 41 + + + + + 42 + + + YES + + + + + + 43 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 10.IBPluginDependency + 11.IBPluginDependency + 12.IBPluginDependency + 15.IBPluginDependency + 16.IBPluginDependency + 16.ibExternalAutomaticallyCalculatesRowSizeFromViewHeight + 17.IBPluginDependency + 18.CustomClassName + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBPluginDependency + 2.IBWindowTemplateEditedContentRect + 2.NSWindowTemplate.visibleAtLaunch + 20.IBPluginDependency + 20.isInViewBasedMode + 20.prototypeCellViews + 21.IBPluginDependency + 21.isInViewBasedMode + 21.prototypeCellViews + 22.IBPluginDependency + 23.IBPluginDependency + 23.userInterfaceItemIdentifier + 24.IBPluginDependency + 25.IBPluginDependency + 26.IBPluginDependency + 27.IBPluginDependency + 27.userInterfaceItemIdentifier + 28.IBPluginDependency + 29.IBPluginDependency + 3.CustomClassName + 3.IBPluginDependency + 30.IBPluginDependency + 31.IBPluginDependency + 33.IBPluginDependency + 38.IBPluginDependency + 39.IBPluginDependency + 40.IBPluginDependency + 41.IBPluginDependency + 42.CustomClassName + 42.IBPluginDependency + 43.IBPluginDependency + 8.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + MPfmTableHeaderView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{319, 371}, {606, 354}} + + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + cellDeviceDescription + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + cellDeviceName + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + MPfmView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + MPfmButton + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + + + + YES + + + + + 43 + + + + YES + + MPfmButton + NSButton + + IBProjectSource + ./Classes/MPfmButton.h + + + + MPfmTableHeaderView + NSTableHeaderView + + IBProjectSource + ./Classes/MPfmTableHeaderView.h + + + + MPfmView + NSView + + IBProjectSource + ./Classes/MPfmView.h + + + + SyncMenuWindow + NSWindow + + IBProjectSource + ./Classes/SyncMenuWindow.h + + + + SyncMenuWindowController + NSWindowController + + IBProjectSource + ./Classes/SyncMenuWindowController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + NSActionTemplate + {15, 15} + + + diff --git a/MPfm/MPfm.Mac/Windows/XIB/SyncWindow.xib b/MPfm/MPfm.Mac/Windows/XIB/SyncWindow.xib index 5106f113..0ba42e37 100644 --- a/MPfm/MPfm.Mac/Windows/XIB/SyncWindow.xib +++ b/MPfm/MPfm.Mac/Windows/XIB/SyncWindow.xib @@ -2,9 +2,9 @@ 1080 - 12D78 + 12E55 3084 - 1187.37 + 1187.39 626.00 com.apple.InterfaceBuilder.CocoaPlugin @@ -49,11 +49,11 @@ NSApplication - 263 + 271 2 {{131, 74}, {606, 236}} 611845120 - Sync Devices + Sync Library SyncWindow @@ -131,7 +131,7 @@ - 268 + 292 {{15, 9}, {123, 24}} @@ -156,8 +156,8 @@ - 268 - {{485, 181}, {106, 24}} + 265 + {{406, 181}, {185, 24}} @@ -166,7 +166,7 @@ 67108864 134217728 - Add device... + Connect to device manually _NS:9 @@ -186,8 +186,8 @@ - 268 - {{423, 9}, {168, 24}} + 289 + {{458, 9}, {133, 24}} _NS:9 @@ -195,7 +195,7 @@ 604504064 134217728 - Browse selected library... + Connect to device _NS:9 @@ -210,7 +210,7 @@ - 266 + 274 YES @@ -224,10 +224,10 @@ YES - {576, 118} + {579, 118} - + _NS:13 YES NO @@ -235,7 +235,7 @@ 256 - {576, 17} + {579, 17} @@ -311,7 +311,7 @@ columnDescription - 367 + 370 40 1000 @@ -364,7 +364,7 @@ 1 - {{0, 17}, {576, 118}} + {{0, 17}, {579, 118}} @@ -408,7 +408,7 @@ YES - {576, 17} + {579, 17} @@ -419,10 +419,10 @@ - {{15, 40}, {576, 135}} + {{12, 40}, {579, 135}} - + _NS:9 133680 @@ -437,8 +437,8 @@ - 268 - {{148, 15}, {264, 12}} + 290 + {{148, 15}, {302, 12}} @@ -476,14 +476,6 @@ 27 - - - btnSyncLibraryWithDevice - - - - 28 - actionRefreshDevices: @@ -492,14 +484,6 @@ 29 - - - actionSyncLibraryWithDevice: - - - - 30 - tableViewDevices @@ -526,27 +510,43 @@ - btnAddDevice + lblTitle - + - 59 + 62 + + + + btnConnect + + + + 63 + + + + actionConnect: + + + + 65 - actionAddDevice: + actionConnectManual: - 60 + 66 - lblTitle + btnConnectManual - + - 62 + 67 @@ -641,7 +641,7 @@ 266 - {{0, 3}, {367, 17}} + {{0, 3}, {370, 17}} _NS:20 @@ -660,7 +660,7 @@ NO - {{207, 1}, {367, 20}} + {{207, 1}, {370, 20}} _NS:9 @@ -1048,7 +1048,7 @@ - 62 + 67 @@ -1092,9 +1092,9 @@ YES YES - actionAddDevice: + actionConnect: + actionConnectManual: actionRefreshDevices: - actionSyncLibraryWithDevice: YES @@ -1107,22 +1107,22 @@ YES YES - actionAddDevice: + actionConnect: + actionConnectManual: actionRefreshDevices: - actionSyncLibraryWithDevice: YES - actionAddDevice: + actionConnect: id - actionRefreshDevices: + actionConnectManual: id - actionSyncLibraryWithDevice: + actionRefreshDevices: id @@ -1131,9 +1131,9 @@ YES YES - btnAddDevice + btnConnect + btnConnectManual btnRefreshDevices - btnSyncLibraryWithDevice lblLibraryUrl lblTitle progressIndicator @@ -1154,9 +1154,9 @@ YES YES - btnAddDevice + btnConnect + btnConnectManual btnRefreshDevices - btnSyncLibraryWithDevice lblLibraryUrl lblTitle progressIndicator @@ -1165,15 +1165,15 @@ YES - btnAddDevice + btnConnect NSButton - btnRefreshDevices + btnConnectManual NSButton - btnSyncLibraryWithDevice + btnRefreshDevices NSButton diff --git a/MPfm/MPfm.Sound/MyBassNetKey.cs b/MPfm/MPfm.Sound/MyBassNetKey.cs new file mode 100644 index 00000000..922adcda --- /dev/null +++ b/MPfm/MPfm.Sound/MyBassNetKey.cs @@ -0,0 +1,8 @@ +//namespace MPfm.Sound +//{ +// public static class BassNetKey +// { +// public const string Email = "yanick.castonguay@gmail.com"; +// public const string RegistrationKey = "2X3433427152222"; +// } +//} \ No newline at end of file