MantisBT - MPfm
View Issue Details
0000160MPfmLibrarypublic2011-11-12 07:442013-05-22 22:08
ycastonguay 
ycastonguay 
normalfeatureN/A
assignedopen 
 
0.7.0.0 
0000160: Add multithreading to the Update Library process
This will enable multiple threads. Time to change the update progress too.
No tags attached.
Issue History
2011-11-12 07:44ycastonguayNew Issue
2011-11-12 07:44ycastonguayStatusnew => assigned
2011-11-12 07:44ycastonguayAssigned To => ycastonguay
2011-12-08 16:06ycastonguayTarget Version0.6.0.0 => 0.5.0.1
2011-12-08 16:07svnCheckin
2011-12-08 16:07svnNote Added: 0000212
2011-12-08 16:35svnCheckin
2011-12-08 16:35svnNote Added: 0000213
2011-12-12 19:22svnCheckin
2011-12-12 19:22svnNote Added: 0000214
2011-12-13 21:29ycastonguayTarget Version0.5.0.1 => 0.5.0.2
2011-12-17 10:40ycastonguayTarget Version0.5.0.2 => 0.5.2.0
2011-12-22 16:23ycastonguayTarget Version0.5.2.0 => 0.6.0.0
2011-12-22 16:24ycastonguayTarget Version0.6.0.0 => 0.5.2.0
2011-12-22 16:24ycastonguaySummaryPort the Update Library background worker to Reactive Extensions => Port the Update Library background worker to Reactive Extensions (multi-threading support)
2012-01-19 09:34svnCheckin
2012-01-19 09:34svnNote Added: 0000367
2012-01-21 11:28svnCheckin
2012-01-21 11:28svnNote Added: 0000372
2012-01-21 11:30svnCheckin
2012-01-21 11:30svnNote Added: 0000376
2012-01-21 11:31ycastonguayNote Deleted: 0000376
2012-01-21 11:32ycastonguaySummaryPort the Update Library background worker to Reactive Extensions (multi-threading support) => Use the .NET Async Library to revamp the update library process
2012-01-21 11:33ycastonguaySummaryUse the .NET Async Library to revamp the update library process => Use the .NET Async Library to add multithreading to the Update Library process
2012-01-25 14:08ycastonguayTarget Version0.5.2.0 => 0.7.1.0
2012-02-18 11:37ycastonguayTarget Version0.7.1.0 => 0.8.0.0
2013-05-22 22:08ycastonguayTarget Version0.8.0.0 => 0.7.0.0
2013-05-22 22:08ycastonguaySummaryUse the .NET Async Library to add multithreading to the Update Library process => Add multithreading to the Update Library process

Notes
(0000212)
svn   
2011-12-08 16:07   
The user admin has checked in files related to this issue (revision 138).

Comment:
MPfm 0.5.0.1
- Added ImportAudioFiles class which will replace the UpdateLibrary process.
  It uses the Reactive Extensions.
  There is still a lot of work to do on the class.
- Bug fixes on MPfmGateway and SQLiteGateway.
- Changed comments/variable names on PeakFile to make it match with UpdateLibrary (and future classes based on the Reactive Extensions)

Related to issue 0000160.

Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
A MPfm/branches/current/MPfm.Library/ImportAudioFiles.cs
A MPfm/branches/current/MPfm.Library/Lib/System.Reactive.dll
U MPfm/branches/current/MPfm.Library/MPfm.Library.csproj
U MPfm/branches/current/MPfm.Library/MPfmGateway.cs
U MPfm/branches/current/MPfm.Library/SQLiteGateway.cs
U MPfm/branches/current/MPfm.Sound/PeakFile.cs
U MPfm/branches/current/MPfm.WindowsControls/Audio/WaveFormMarkersLoops.cs

(0000213)
svn   
2011-12-08 16:35   
The user admin has checked in files related to this issue (revision 139).

Comment:
MPfm 0.5.0.1
- Changed the name of the older UpdateLibraryProgressData (now OldUpdateLibraryProgressData, OldUpdateLibraryException).
- This paved the way for the new version of these classes to be used with the UpdateLibrary class (using Reactive Extensions).
- Separated the classes into different file and moved into a proper folder.

Related to issue 0000160.

Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm/frmUpdateLibraryStatus.cs
D MPfm/branches/current/MPfm.Library/ImportAudioFiles.cs
U MPfm/branches/current/MPfm.Library/Library.cs
U MPfm/branches/current/MPfm.Library/MPfm.Library.csproj
A MPfm/branches/current/MPfm.Library/UpdateLibrary/
A MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibrary.cs
A MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibraryDoneData.cs
A MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibraryException.cs
A MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibraryProgressData.cs

(0000214)
svn   
2011-12-12 19:22   
The user admin has checked in files related to this issue (revision 140).

Comment:
MPfm 0.5.0.1
- Bug fix: IsRecursive in the Folder object had the wrong value.
- Bug fix: When the UpdateLibrary process hit an error, the whole process was stopped.
- More work on the next UpdateLibrary process using Reactive Extensions.
- Minor bug fixes in the gateway classes.

Related to issue 0000160 and issue 0000162.

Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm.Library/ConvertLibrary.cs
U MPfm/branches/current/MPfm.Library/Library.cs
U MPfm/branches/current/MPfm.Library/MPfm.Library.csproj
U MPfm/branches/current/MPfm.Library/MPfmGateway.cs
U MPfm/branches/current/MPfm.Library/SQLiteGateway.cs
U MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibrary.cs
U MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibraryProgressData.cs
A MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibraryStep.cs

(0000367)
svn   
2012-01-19 09:34   
The user admin has checked in files related to this issue (revision 271).

Comment:
MPfm 0.5.1.2
- Tested a new method for the new UpdateLibrary process. Seems to work really well.
  It starts X threads to read audio file metadata, waits for all threads to finish, and then inserts the files into the database.
  If there are more files to process it starts again X threads and insert files into the database until the list is complete.
  The downside is that it will insert files into the database often, but the upside is that it seems to work without locking (since
  the mechanism is out of the thread code).

Related to issue 0000070 and issue 0000160.

Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmSettings.Designer.cs
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibrary.cs

(0000372)
svn   
2012-01-21 11:28   
The user admin has checked in files related to this issue (revision 276).

Comment:
MPfm 0.5.2.0
- Added .NET Async CTP Library to the project.
- Player: The audio buffer is now cleared when skipping to a new position or when skipping to a new song.
- Player: The position returned by the player now counts in for the buffer size lag. In fact it is now using the
          main stream output position with a offset position (since the main output position is "infinite" and
          reset to 0 when the audio buffer needs to be cleared).
          It's not 100% done yet though; I need to add a syncmix proc to set the offset position exactly when the
          new song is heard. However the offset is 100% accurate already (since the channel is locked when getting the
          position, and the data available in the buffer is also added).
- UpdateLibrary: The new prototype drops Rx and uses only ASYNC for now. Works fine so far, but the application
                 gets lagged when updating files (especially when generating peak files).
- UpdateLibrary: A prototype UI for the background update library has been added to the main form.

Related to issue 0000070, issue 0000160, issue 0000168 and issue 0000275.

Files modified:
U MPfm/branches/current/MPfm/MPfm.csproj
U MPfm/branches/current/MPfm/Other Screens/frmSettings.Designer.cs
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm/Properties/AssemblyInfo.cs
U MPfm/branches/current/MPfm/frmMain.Designer.cs
U MPfm/branches/current/MPfm/frmMain.cs
U MPfm/branches/current/MPfm/frmMain.resx
U MPfm/branches/current/MPfm.Core/Properties/AssemblyInfo.cs
U MPfm/branches/current/MPfm.Fonts/Properties/AssemblyInfo.cs
A MPfm/branches/current/MPfm.Library/Lib/AsyncCtpLibrary.dll
A MPfm/branches/current/MPfm.Library/Lib/AsyncCtpLibrary.xml
U MPfm/branches/current/MPfm.Library/MPfm.Library.csproj
U MPfm/branches/current/MPfm.Library/Properties/AssemblyInfo.cs
U MPfm/branches/current/MPfm.Library/UpdateLibrary/UpdateLibrary.cs
U MPfm/branches/current/MPfm.Player/Player.cs
U MPfm/branches/current/MPfm.Player/Properties/AssemblyInfo.cs
U MPfm/branches/current/MPfm.Sound/Bass.Net/Channel.cs
U MPfm/branches/current/MPfm.Sound/Properties/AssemblyInfo.cs
U MPfm/branches/current/MPfm.WindowsControls/Properties/AssemblyInfo.cs