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
+
+
+
+
+
+
+
+ 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
+
+
+
+ -2147483392
+ {{224, 0}, {16, 17}}
+
+
+
+ _NS:19
+
+
+ YES
+
+ columnDeviceName
+ 202.7890625
+ 40
+ 1000
+
+
+ 337641536
+ 2048
+ Text Cell
+
+ LucidaGrande
+ 13
+ 1044
+
+
+
+ 6
+ System
+ controlBackgroundColor
+
+
+
+ 6
+ System
+ controlTextColor
+
+
+
+ 3
+ YES
+ YES
+
+
+
+ columnDescription
+ 370
+ 40
+ 1000
+
+
+ 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 @@
columnDescription
- 367
+ 370
40
1000
- {{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