Skip to content

DynamicWin v1.3.0b

Choose a tag to compare

@59xa 59xa released this 19 May 20:47
c3d3a3b

Note

Ensure you uninstall your current installation of DynamicWin first for this release as I have moved the setup process from the built-in setup wizard again to Inno Setup. Expect future releases to be handled this way, meaning continuous uninstalls and re-installs will not be an issue moving forward.

Your current configurations will not be wiped, the only reason this is needed is to avoid making a duplicate of the program.

What's new in v1.3.0b?

  • Audio Visualiser 2.0
  • Migrations.cs
  • Media and MediaInfo classes
  • Quality-of-life and visual improvements
  • Dependency updates

Audio Visualiser 2.0

An existing feature in DynamicWin receives a visual upgrade. The newly implemented AudioVisualiser.cs aims to replicate the looks of the Dynamic Island audio visualiser seen on iPhones.

Tip

If you currently have this widget active, this will automatically carry over to the new implementation. No need to re-add.

190525_2.mp4

With this new implementation, extension makers can modify the look of the audio visualiser to their liking with the following values:

// AudioVisualiser.cs

// Defines the average amplitude that each bar frequency displays
private float averageAmplitude = 0f;
public float AverageAmplitude { get => averageAmplitude; }

// Allows the visualiser to change colours dynamically depending on the bar frequency
private bool enableColourTransition = true;
public bool EnableColourTransition { get => enableColourTransition; set => enableColourTransition = value; }

// Displays dots on idle state when no audio is playing
private bool enableDotWhenLow = true;
public bool EnableDotWhenLow { get => enableDotWhenLow; set => enableDotWhenLow = value; }

// Blurs the visualiser, perfect for making audio-reactive backgrounds
public float BlurAmount { get; set; } = 0f;

// Determines how far apart the bars should be from each other
public float BarSpacing { get; set; } = 1f;

Migrations.cs

As more widgets are overhauled over time, it is necessary to ensure that user-applied widgets are not affected and should remain intact every update. Migrations.cs streamlines the process for developers, maintainers, and extension makers alike.

Examples

// Migrations.cs
new WidgetMigration
{
    OldName = "DynamicWin.UI.Widgets.Small.RegisterSmallVisualizerWidget",
    NewName = "DynamicWin.UI.Widgets.Small.RegisterSmallVisualiserWidget"
},
// Migrations.cs
// Class method to store both legacy and new naming conventions
public class WidgetMigration
{
    public string OldName { get; set; }
    public string NewName { get; set; }
}

Media and MediaInfo

Whilst the functionalities for these are already implemented, they are currently not in use by any widgets and will be expanded upon further on v1.4.0b. This implementation allows metadata fetching on what is currently playing on the user's system.

// MediaController.cs
public class Media
{
    public string? Title { get; set; }
    public string? Artist { get; set; }
    public BitmapImage? Thumbnail { get; set; }
}

Quality-of-life and visual improvements

  • To ensure that users using the Default method of fetching forecast data can correctly fetch data, await Task.Delay(10000) has been reverted back to await Task.Delay(120000) to avoid Error Code 429 requests.
  • A slight visual adjustment for IslandMode.Island has been included for HomeMenu.cs to display the borders around it when hovered. This is done to keep visuals consistent across menus.

Before
Before
After
After

Dependency updates

Starting with DynamicWin v1.3.0b, the code-base has been updated to use .NET 9.0 for development. Despite this, developers can build the solution like usual without any difference apart from the target .NET framework.

What's coming in v1.4.0b?

While information about upcoming features for the next versions are vague, one thing to expect is the visual overhaul of MediaWidget.cs in v1.4.0b. Apart from that, expect new and existing features to slowly be included over time.

Continued support:

  • Your support truly means a lot to me as I continue to maintain DynamicWin. Keep an eye out on this repository whenever a new release comes out.
  • Feel free to contribute to this project as you wish. Open any issues on the issues page if you encounter any bugs.

Read the full changelog here: v1.2.1b...v1.3.0b