Compatibility Notes
If you want to upgrade, here's your guide to update your apps.
When you upgrade BassBoom to a version that contains a higher API version that you have, you'll need to follow the compatibility notes.
From 0.0.2.x to 0.0.3.x
When upgrading BassBoom from 0.0.2.x to 0.0.3.x, you need to consider the following changes:
Removed fugitive mode
public static void Init(string root = "", bool Fugitive = false)
The Fugitive mode was implemented to enable dangerous operations, such as an ability to get music info while the music is playing. However, these operations cause MPG123 to error out with random errors, causing playback to be distorted.
As a result, we've removed fugitive mode.
We advise you to stop using this mode.
From 0.0.3.x to 0.1.0.x
When upgrading BassBoom from 0.0.3.x to 0.1.0.x, you need to consider the following changes:
Removed CachedSongInfo
public class CachedSongInfo
This class wasn't meant to be in the Basolia library, but it was put there as a temporary placeholder for the playlist system, which was going to be introduced to the Basolia library. However, Basolia didn't get this system, so we had to remove this while thinking of better ways to implement this class.
Internalized the native part of the library
For security reasons, we've made this commit that internalizes the sensitive parts of the library (the ones with the P/Invoke signatures). This is so that Basolia stays the best way to use the whole BassBoom library and the program.
It's advisable that you stop making direct calls to the MPG123 library functions and start using the Basolia library. If you still want a feature that Basolia doesn't provide, head to the Issues tab.
This commit serves as a stepping stone to the full extensibility and flexibility to the library.
SHOUTcast exceptions cleanup
public class ShoutcastStreamParseException : Exception
public class ShoutcastServerException : Exception
ShoutcastServerException
has been renamed to BasoliaMiscException
to cover all the possible exceptions that don't require or provide the MPG123 error code that is provided by the native part of the library.
Likewise, ShoutcastStreamParseException
has been removed for the introduction of the IceCast radio querying feature.
Removed extra Basolia initialization checking function
public static bool IsInited()
This function was accidentally implemented during the alpha stages of Basolia, which led to the implementation of the BasoliaInitialized
property to make users aware that properties to query the status of the library's initialization state are better than single-line functions in terms of semantics.
As a result, the above function was removed to reduce confusion.
From 0.1.0.x to 0.1.4.x
When upgrading BassBoom from 0.1.0.x to 0.1.4.x, you need to consider the following changes:
Exception classes have been rearranged
namespace BassBoom.Basolia
The Basolia exceptions have been moved to BassBoom.Basolia.Exceptions
to better arrange the exception classes.
From 0.1.4.x to 0.2.0.x
When upgrading BassBoom from 0.1.4.x to 0.2.0.x, you need to consider the following changes:
BasoliaMedia
introduced
BasoliaMedia
introducedpublic static void Play()
public static void Pause()
public static void Stop()
We've introduced a brand new class, BasoliaMedia
, that stores the states and the appropriate native library handles to ensure simultaneous operation. As a result, we had to edit all the Basolia functions so that you'd need to provide an instance of BasoliaMedia
that you'd want to perform an action on.
We also had to edit the following properties:
Playing
->IsPlaying()
State
->GetState()
RadioIcy
->GetRadioIcy()
RadioNowPlaying
->GetRadioNowPlaying()
Decoder
->GetCurrentDecoder()
andSetCurrentDecoder()
From 0.1.4.x to 0.2.1.x
When upgrading BassBoom from 0.1.4.x to 0.2.1.x, you need to consider the following changes:
BasoliaMedia
expanded
BasoliaMedia
expandedpublic static (string? driver, string? device) GetCurrentCached()
public static void Reset()
We've expanded the BasoliaMedia
class that stores the states and the appropriate native library handles to ensure simultaneous operation. We had to edit some more Basolia functions so that you'd need to provide an instance of BasoliaMedia
that you'd want to perform an action on.
We also had to edit the following properties:
IsOpened
->IsOpened()
IsRadioStation
->IsRadioStation()
CurrentFile
->CurrentFile()