Hi,
As seen with Albert, there is a problem with BASS Player : when "Next" button is pressed while reading an Audio CD, a track is skipped (IE : Playing Track1, Push Next, BASSPlayer play Track 3 instead of Track2).
basically, the OutputDevice ends because there is no more samples comming into due to the track change on the CD-Rom reader. When the OutputDevice ends, it calls a method to get the next item, as the same time the "NextItem" method is processed by the BASSPlayer main object.
So 2 methods to get the next items were trying to act at the same moment, making a track to be skipped.
Resolution : when NextItem button is pressed, inform the controller that the player is moving to a next item, and make the OutputDevice check is a moving operation is in progress before trying to call a next item.
Patch attached.
Requires "RemovableMediaManager" plugin to be properly tested.
Cheers.
Smeulf.
[Edit] Patch modified. Check if the controller is already moving to the next item has moved into the PlaybackProcessor.cs, in method HandleOutputStreamEnded(). It makes more sense like it than checking it into the OutputDevice, and give avantage to process HandleOutputStreamEnded method in case there is something else to do into.
[/Edit]
As seen with Albert, there is a problem with BASS Player : when "Next" button is pressed while reading an Audio CD, a track is skipped (IE : Playing Track1, Push Next, BASSPlayer play Track 3 instead of Track2).
basically, the OutputDevice ends because there is no more samples comming into due to the track change on the CD-Rom reader. When the OutputDevice ends, it calls a method to get the next item, as the same time the "NextItem" method is processed by the BASSPlayer main object.
So 2 methods to get the next items were trying to act at the same moment, making a track to be skipped.
Resolution : when NextItem button is pressed, inform the controller that the player is moving to a next item, and make the OutputDevice check is a moving operation is in progress before trying to call a next item.
Patch attached.
Requires "RemovableMediaManager" plugin to be properly tested.
Cheers.
Smeulf.
[Edit] Patch modified. Check if the controller is already moving to the next item has moved into the PlaybackProcessor.cs, in method HandleOutputStreamEnded(). It makes more sense like it than checking it into the OutputDevice, and give avantage to process HandleOutputStreamEnded method in case there is something else to do into.
[/Edit]