This is a complete rewrite of the UI business logic to support multiple platforms (Windows, Linux, Mac, iOS, Android). The application will now use a MVP (Model-View-Presenter) pattern to manage business logic. Views will be implemented on each of these platforms:
- Windows uses Windows Forms
- Linux uses GTK#
- Mac uses MonoMac
- iOS uses MonoTouch
- Android uses Mono for Android
Note: I do not guarantee that every of these platforms will be ready for release for this version.
16%
- 0000302: [Global] Add support for multiple platforms using the Mono Framework (Linux, OS X, iOS, Android) (ycastonguay) - assigned. - 0000324: [MVP] Use a MVP-style pattern to centralize code for UI on multiple platforms (ycastonguay) - assigned. - 0000416: [MVP | Presenters] Add view/presenter for Player Status user interface (IPlayerStatusPresenter/IPlayerStatusView) (ycastonguay) - assigned. - 0000415: [MVP | Presenters] Add view/presenter for Player Metadata user interface (IPlayerMetadataPresenter/IPlayerMetadataView) (ycastonguay) - assigned. - 0000361: [MVP | Presenters] Add view/presenter for Player user interface (IPlayerPresenter/IPlayerView) (ycastonguay) - assigned. - 0000386: [MVP | Presenters] Add view/presenter for Markers user interface (IMarkersPresenter/IMarkersView) (ycastonguay) - assigned. - 0000387: [MVP | Presenters] Add view/presenter for Edit Marker user interface (IMarkerDetailPresenter/IMarkerDetailView) (ycastonguay) - assigned. - 0000385: [MVP | Presenters] Add view/presenter for Edit Loop user interface (ILoopDetailPresenter/ILoopDetailView) (ycastonguay) - assigned. - 0000408: [MVP | Presenters] Add view/presenter for mobile Library Browser (IMobileLibraryBrowserPresenter/IMobileLibraryBrowserView) (ycastonguay) - assigned. - 0000396: [MVP | Services] Add the IPlayerService to manage player status broadcasting (ycastonguay) - assigned. - 0000414: [MVP | Presenters] Add view/presenter for Pitch Shifting user interface (IPitchShiftingPresenter/IPitchShiftingView) (ycastonguay) - assigned. - 0000413: [MVP | Presenters] Add view/presenter for Time Shifting user interface (ITimeShiftingPresenter/ITimeShiftingView) (ycastonguay) - assigned. - 0000384: [MVP | Presenters] Add view/presenter for Loops user interface (ILoopsPresenter/ILoopsView) (ycastonguay) - assigned. - 0000410: [MVP | Presenters] Add view/presenter for Audio Preferences user interface (IAudioPreferencesPresenter/IAudioPreferencesView) (ycastonguay) - assigned. - 0000412: [MVP | Presenters] Add view/presenter for General Preferences user interface (IGeneralPreferencesPresenter/IGeneralPreferencesView) (ycastonguay) - assigned. - 0000411: [MVP | Presenters] Add view/presenter for Library Preferences user interface (ILibraryPreferencesPresenter/ILibraryPreferencesView) (ycastonguay) - assigned. - 0000400: [MVP | Presenters] Add view/presenter for Preferences desktop window (IPreferencesPresenter/IPreferencesView) (ycastonguay) - assigned. - 0000404: [MVP] Add a NavigationManager to manage the view creation, destruction and transitions on desktop devices (ycastonguay) - assigned. - 0000366: [MVP | Services] Add the ILibraryService to manage access to the library (ycastonguay) - assigned. - 0000376: [MVP | Services] Add the IInitializationService for initializing the application (ycastonguay) - assigned. - 0000375: [MVP | Services] Add the IAudioFileCacheService to cache audio file metadata (ycastonguay) - assigned. - 0000364: [MVP | Presenters] Add view/presenter for Update Library user interface (IUpdateLibraryPresenter/IUpdateLibraryView) (ycastonguay) - assigned. - 0000388: [MVP | Presenters] Add view/presenter for Edit Metadata user interface (IEditMetadataPresenter/IEditMetadataView) (ycastonguay) - assigned. - 0000402: [MVP | Presenters] Add view/presenter for Playlist user interface (IPlaylistPresenter/IPlaylistView) (ycastonguay) - assigned. - 0000374: [MVP | Presenters] Add view/presenter for desktop Song Browser (ISongBrowserPresenter/ISongBrowserView) (ycastonguay) - assigned. - 0000373: [MVP | Presenters] Add view/presenter for desktop Library Browser (ILibraryBrowserPresenter/ILibraryBrowserView) (ycastonguay) - assigned. - 0000367: [MVP | Services] Add the IUpdateLibraryService to update the library and notify UI elements (ycastonguay) - resolved. - 0000417: [MVP | Presenters] Add view/presenter for Equalizer Preset Details user interface (IEqualizerPresetDetailsPresenter/IEqualizerPresetDetailsView) (ycastonguay) - assigned. - 0000397: [MVP | Presenters] Add view/presenter for Equalizer Presets user interface (IEqualizerPresetsPresenter/IEqualizerPresetsView) (ycastonguay) - assigned. - 0000409: [MVP] Add a MobileNavigationManager to manage the view creation, destruction and transitions on mobile devices (ycastonguay) - assigned. - 0000394: Implement the MPfm.MVP views in a lightweight console application (ycastonguay) - assigned. - 0000323: [Global] Remove the dependency for the Reactive Extensions (ycastonguay) - resolved. - 0000305: [Player] Determine default audio configuration by platform (Linux/Mac) (ycastonguay) - resolved. - 0000406: [UI | Android] Implement the MPfm.MVP views for Android (ycastonguay) - assigned. - 0000405: [UI | iOS] Implement the MPfm.MVP views for iOS (ycastonguay) - assigned. - 0000381: [UI | Mac] Implement the MPfm.MVP views in MonoMac (Mac OS X 10.6+) (ycastonguay) - assigned. - 0000422: [UI | Windows] Implement the MPfm.MVP views for Windows (ycastonguay) - assigned. - 0000382: [UI | Linux] Implement the MPfm.MVP views in GTKSharp (Linux) (ycastonguay) - assigned. - 0000421: [Library] Add support for cloud synchronization (iCloud) (ycastonguay) - assigned. - 0000419: [Library] Add support for cloud synchronization (Dropbox) (ycastonguay) - assigned. - 0000418: [Library] Add a device synchronization system to synchronize library contents over network (ycastonguay) - assigned. - 0000160: [Library] Add multithreading to the Update Library process (ycastonguay) - assigned. - 0000301: [Player] Detect the tempo (BPM) using the FX channel (ycastonguay) - assigned. - 0000276: [Library] The library cache takes too much memory when the library has over 50000 files (ycastonguay) - assigned. - 0000370: [MVP] Add configuration classes to retreive important paths and configuration values throughout the application (ycastonguay) - assigned. - 0000379: [Global] Add unit testing with NUnit (ycastonguay) - assigned. - 0000313: [Player] Use a push stream to feed the player stream (using a separate thread) (ycastonguay) - assigned. - 0000403: [MVP] Add an event aggregator (TinyMessenger) (ycastonguay) - resolved. - 0000356: [Global] Add dependency injection with TinyIOC (ycastonguay) - resolved. - 0000353: [Library] Add support for Mono.Data.SQLite (for Linux and Mac OS X) (ycastonguay) - resolved. - 0000354: [Global] Add build configurations on all projects and solution (Debug, Debug_Linux and Debug_MacOSX) (ycastonguay) - resolved. - 0000357: [Library] Rewrite the Select, Update, Insert and Delete methods in SQLiteGateway (ycastonguay) - resolved. - 0000368: [Global] Add a Bootstrapper static class and NinjectModule for configuring Ninject and Automapper (ycastonguay) - resolved.
9 of 53 issue(s) resolved. Progress (16%). MPfm - 0.7.1.0 (Scheduled For Release 2013-08-05) [ View Issues ] =================================================
0%
- 0000331: [UI | Windows | Main Window] Add library stats in the status bar (ycastonguay) - assigned. - 0000329: [UI | Windows | Main Window] Replace the "Update Library" toolbar button by "Library" and add a contextual menu (ycastonguay) - assigned. - 0000023: [UI | Windows | First Run] Add a second page to the First Run screen (for Update Library) (ycastonguay) - assigned. - 0000201: [UI | Custom Controls | Windows (WinForms)] Add markers to the wave form display (ycastonguay) - assigned.
0 of 4 issue(s) resolved. Progress (0%). MPfm - 0.7.2.0 (Scheduled For Release 2013-10-07) [ View Issues ] =================================================
0%
- 0000395: [Player] When changing the player position, the reported position sometimes has a wrong offset for a fraction of a second (ycastonguay) - assigned. - 0000346: [UI | Windows | Add/Edit Marker] If the song is different than the song currently playing, the "Punch in" and "Go to" buttons should not work (ycastonguay) - assigned. - 0000347: [UI | Windows | Add/Edit Loop] If the song is different than the song currently playing, the "Punch in" and "Go to" buttons should not work (ycastonguay) - assigned.
0 of 3 issue(s) resolved. Progress (0%). MPfm - 0.7.4.0 (Scheduled For Release 2014-03-03) [ View Issues ] =================================================
0%
- 0000311: [UI | Windows | Main Window] Merge the Play and Pause buttons (similar to iTunes) (ycastonguay) - assigned. - 0000343: [UI | Windows | Main Window] Add a different timer for updating the Song Position panel controls (ycastonguay) - assigned. - 0000342: [UI | Windows | Main Window] The time shifting value is not updated when using the Previous Song or Next Song buttons (ycastonguay) - assigned. - 0000307: [UI | Windows] Add themes (only for the Windows platform) (ycastonguay) - assigned. - 0000219: [UI | Windows | Themes] Add a Theme window (ycastonguay) - assigned. - 0000330: [UI | Windows] Add a ApplyTheme method in each window to apply a theme (ycastonguay) - assigned. - 0000223: [UI | Custom Controls | Windows (WinForms)] Add the MainWindowTheme and SecondaryWindowTheme classes for storing theme settings (ycastonguay) - assigned. - 0000341: [UI | Custom Controls | Windows (WinForms) | Embedded Fonts] Add color selector to custom Edit Font dialog (ycastonguay) - assigned. - 0000241: [UI | Windows | Main Window] Add a "Play folder" item to the "File" menu (ycastonguay) - assigned. - 0000185: [Player] Add a different type of time shifting (pitch shift + frequency shift) (ycastonguay) - assigned. - 0000183: [Player] Add a Shuffle feature to the player (ycastonguay) - assigned. - 0000296: [UI | Windows | Playlist] Add a Shuffle playlist button (ycastonguay) - assigned. - 0000117: [UI | Windows | Effects] Add support for VST plugins (ycastonguay) - assigned. - 0000202: [UI | Custom Controls | Windows (WinForms)] Add loops to the wave form display (ycastonguay) - assigned.
0 of 14 issue(s) resolved. Progress (0%). MPfm - 0.7.5.0 (Scheduled For Release 2014-06-01) [ View Issues ] =================================================
0%
- 0000196: [UI | Windows | Main Window | Song Browser] Let users change the order of the playlist items by dragging items (ycastonguay) - assigned. - 0000358: [UI | Windows | Main Window | Song Browser] Add an advanced filter to filter audio files by property or tag values (ycastonguay) - assigned. - 0000240: [UI | Windows | Main Window | Song Browser] The Now Playing indicator should be based on file path instead of audio file identifier (ycastonguay) - assigned. - 0000238: [UI | Custom Controls | Windows (WinForms)] Add mouse wheel support to faders (ycastonguay) - assigned. - 0000288: [Player] Add support for AAC/MP4/M4A audio files (ycastonguay) - assigned. - 0000180: [Player] Add support for Apple Lossless (*.M4A) audio files (ycastonguay) - assigned.
0 of 6 issue(s) resolved. Progress (0%). MPfm - 0.8.0.0 (Scheduled For Release 2015-01-04) [ View Issues ] =================================================
0%
- 0000420: [Library] Add support for cloud synchronization (Google Drive) (ycastonguay) - assigned. - 0000213: [Player] Add support for CUE sheet files (ycastonguay) - assigned. - 0000380: [Global] Add the Moq mocking library for mocking objects for unit testing (ycastonguay) - assigned. - 0000383: [UI | Windows] Implement the MPfm.MVP views in System.Windows.Forms (Windows) (ycastonguay) - assigned. - 0000352: [Library] Create a queue system for interacting with SQLite with multiple threads (ycastonguay) - assigned. - 0000267: [UI | Windows | Edit Metadata] Enable metadata editing for multiple audio files (ycastonguay) - assigned. - 0000021: [UI | Custom Controls | Windows (WinForms)] Make the faders look better (ycastonguay) - assigned. - 0000198: [Player] Finish testing and bug fixing the WASAPI driver (ycastonguay) - assigned. - 0000291: [UI | Windows | Visualizer] Add support for WinAmp visualizer plugins (ycastonguay) - assigned. - 0000070: [UI | Windows | Main Window] Add a auto update library background process (ycastonguay) - assigned. - 0000237: [UI | Windows | Playlist] Add a "Recently played" menu item to Load playlist contextual menu (ycastonguay) - assigned. - 0000025: [UI | Windows | Main Window | Library Browser] Add a "Recently Played" node (ycastonguay) - assigned. - 0000209: [Library] Start filling the History table (ycastonguay) - assigned. - 0000259: [Sound] Add the ID3v2Metadata and ID3v2Tag classes to read/write ID3v2 tags from audio files (ycastonguay) - assigned. - 0000176: [Player] Add support for OptimFROG (*.OFR) audio files (ycastonguay) - assigned. - 0000290: [Player] Add support for WinAmp input plugins (ycastonguay) - assigned.
0 of 16 issue(s) resolved. Progress (0%). MPfm - 0.9.0.0 (Scheduled For Release 2015-06-07) [ View Issues ] =================================================
0%
- 0000424: [MVP] Create a Windows Phone 8 prototype (ycastonguay) - assigned. - 0000423: [MVP] Create a Windows Store prototype (Windows 8/Modern/Metro) (ycastonguay) - assigned. - 0000294: [Global] Review the XML comments and start using standards for summaries (ycastonguay) - assigned. - 0000164: [Player] Disable time shifting for audio cards that are not compatible (ycastonguay) - assigned. - 0000195: [UI | Custom Controls | Windows (WinForms)] The output meter should display the post-fader volume (ycastonguay) - assigned. - 0000091: [UI | Custom Controls | Windows (WinForms)] Make a custom ProgressBar control (ycastonguay) - assigned. - 0000265: [UI | Windows | Main Window] Add a Convert option to convert audio files into different formats (ycastonguay) - assigned. - 0000230: [UI | Windows | Playlist] Add a search feature to the Playlist window (ycastonguay) - assigned. - 0000282: [UI | Windows | Main Window] Add a contextual menu to the Position and Length panels to choose the display unit (ycastonguay) - assigned. - 0000216: [Player] Add support for ASX playlist files (import/export) (ycastonguay) - assigned. - 0000051: [UI | Windows | Effects] Add an import/export feature to the Equalizer (ycastonguay) - assigned. - 0000178: [Player] Add support for True Audio (*.TTA) audio files (ycastonguay) - assigned. - 0000272: [Sound] Add the TTAMetadata and TTATag classes to read TrueAudio headers from TTA files (ycastonguay) - assigned. - 0000235: [UI | Windows | Main Window | Library Browser] Add a menu item to remove artists/albums from library (ycastonguay) - assigned. - 0000234: [UI | Windows | Main Window | Song Browser] Add a menu item to remove songs from library (ycastonguay) - assigned. - 0000289: [Player] Add support for Audio CD playback (ycastonguay) - assigned. - 0000232: [Player] Add support for Internet streams (such as SHOUTCAST) (ycastonguay) - assigned. - 0000186: [UI | Windows | Main Window] Make an Explorer view (ycastonguay) - assigned.
0 of 18 issue(s) resolved. Progress (0%). MPfm - 1.0.0.0 (Scheduled For Release 2016-01-04) [ View Issues ] =================================================
0%
- 0000110: [UI | Custom Controls | Windows (WinForms)] Make a custom flickerless splitter control (ycastonguay) - assigned. - 0000017: [UI | Custom Controls | Windows (WinForms)] Make a spectrum analyzer control (ycastonguay) - assigned. - 0000026: [UI | Windows | Visualizer] Re-enable the Visualizer window (ycastonguay) - assigned. - 0000229: [UI | Windows | Playlist] Do not block user input while loading a playlist file (ycastonguay) - assigned. - 0000062: [UI | Windows | Main Window] Add a wizard to download missing album art from the internet (ycastonguay) - assigned. - 0000004: [UI | Custom Controls | Windows (WinForms)] Add a "fallout effect" to the Output Meter display (ycastonguay) - assigned. - 0000193: [UI | Windows | Main Window] Fix the distortion warning (the threshold is too low) (ycastonguay) - assigned. - 0000242: [Global] Ask the XSPF guys to add MPfm to the application list (ycastonguay) - assigned. - 0000131: [UI | Windows | Main Window] When the form is maximized, and the application is closed, the original windowed mode form size is lost (ycastonguay) - assigned. - 0000194: [Player] Check why the sound doesn't distort when using an exagerated EQ (ycastonguay) - assigned.