Skip to content

Releases: tjhrulz/GPMDP-Plugin

CPU Improvements

29 Aug 00:40
Compare
Choose a tag to compare

Fixed an issue where CPU usage would be higher than normal due to threading issues.
Added option to include milliseconds in song position.

Queue++

27 May 03:46
Compare
Choose a tag to compare

General support regarding the queue is now much better. While not quite the performance gains I wanted for this release due to limitations with GPMDP the queue should update faster and allow you to access any location in the queue instead of the past 10 and next 10 songs. You can also use the new command bang SetSong to set any song in the queue to start playing, it supports both relative and absolute locations.
There are also new attributes like DisableLeadingZero on Position and Duration and AsDecimal on progress to make be on a scale of 0-1 instead of 0.0-100.0.
Theme colors are now retained on closing of GPMDP and are read from the settings file even if GPMDP is not open when you open rainmeter, now more themes reverting back to default state anymore!
Default cover location is also now handled better so it should not cause the cover to revert to the default when loading new measures using the cover, also each measure now can have its own default cover location instead of them all sharing it.

Bug fixes

01 May 02:23
Compare
Choose a tag to compare

SetPosition now accepts percents in double form rounding them to the nearest millisecond.
Volume and SetVolume now assumes 100 instead of 0.
The artist or album not being defined for current song no longer causes the queue not to find it.
Several type casts in certain bangs no longer cause rainmeter to crash.

Starting from this release on there will be 2 rmskin files.
GPMDP Plugin includes a simple example skin to help people understand the plugin more easily.
GPMDP Skin includes a more complex skin that matches the functionality of the bottom bar and popout player in GPMDP. It also includes Nighthawks slider plugin so that you can seek the song and volume.

Edge case fixes

28 Apr 03:56
Compare
Choose a tag to compare

Auto authentication would fail writing to the file in a way GPMDP liked in a few edge cases. This updated fixes this.

Automatic setup and authentication

28 Apr 02:42
Compare
Choose a tag to compare

The plugin now detects if GPMDP is set up for PlaybackAPI support and if rainmeter has a proper authentication code. If it does not it stops GPMDP changes the settings file to the correct values and restarts GPMDP. This means that first time setup no longer requires a way to enter in the annoying 4 digit pin and requires almost no user interaction. The only thing the user needs to do is to grant GPMDP firewall access, and if they don't GPMDP will nag them about it on every reboot.

This also fixes a potential crash with the new version of GPMDP if using a custom theme color.

Thanks to JonSn0w for pointing out that this settings file exists, even if the reason he pointed it out to me was for something else.

Queue support

09 Feb 01:25
Compare
Choose a tag to compare

Now has an keeps an internal queue that can be used by rainmeter that contains the previous 10 songs on the queue, the current song, and the next 10 songs on the queue. In future releases of the plugin I will look into making the maximum amount of songs dynamic as well as adding a downloader for the album art for songs in the queue. I also plan on adding a bang to move to a certain song in the queue.

The included skin has also been updated to show examples of accessing the queue although they are not documented yet. I think I will be polishing the skin up as the button dont always align right and people seem to like using it.

An example measure accessing the queue would look like this

[MeasureName]
Measure=Plugin
Plugin=GPMDPPlugin
PlayerInfo=Queue
QueueLocation=-5
QueueType=Title

Where QueueLocation= is the current location relative of the current song you want to access so if you want to access the next song it would be QueueLocation=1
Where QueueType= is the type of info about that song you want. This can be the artist, album, title, albumart (Note this will be the URL of the album art, downloading it is planned for a future release), duration, play count, index overall in the queue.

Enhancements for when GPMDP is closed

07 Feb 02:27
Compare
Choose a tag to compare

Cover now initializes to default cover location and if none is defined a fallback cover location.
The thread to reconnect now only does the intensive check once a second, so performance is back down to 0.0%.

I am going to be looking into performance improvements while GPMDP is running and doing some profiling as I get ready for the 1.2 release, which will include queue support which may slightly increase CPU usage when making a new queue as the queue's can be very long.

Bug fixes

06 Feb 22:24
Compare
Choose a tag to compare

This release fixes a major memory leak that could occur when using a large amount of measures with a frequent update rate when GPMDP was closed.

I have now made the check for GPMDP only occur on one measure and only when the GPMDP process is running. Readding that process check means the plugin takes a slight performance hit (An almost negligible amount around 0.1% on my i5). The next version I intend to refactor some code and add timer based checks for reopening the connection to GPMDP which should reduce the CPU usage of my plugin back down to <0.1%.

I have also changed the default value for position and duration to be 00:00 instead of null, and for cover to have a default value of the default cover location. As well I now reset every value back to default on the websocket closing. I intend to look into have cover have a value on launch and updating fallback directory to one name for GPMDP and adding sanity checks for that.

Version 1.1.0

04 Feb 16:48
Compare
Choose a tag to compare

See current README for all supported functionality. This plugin now supports almost every documented feature of the Websocket API for GPMDP (And a few undocumented)
I plan to add support for queue in version 1.2 but besides that everything I can implement is for the most part implemented.

Added SetPosition and Progress support

02 Feb 23:09
Compare
Choose a tag to compare

First release under the new standalone repo for the GPMDP plugin.

Now supports SetPosition as a command bang and Progress.

Both SetPosition and Progress support is just like with NowPlaying in that it only supports integers, if a demand is there to support decimals I can look into doing so as it would have almost do performance hit.