Skip to content

[1.2.1] - Sep 19, 2025

Choose a tag to compare

@F3NN3X F3NN3X released this 19 Sep 12:34
· 17 commits to main since this release
ab7d7f3

🎡 InfoPanel.Spotify Plugin v1.2.1 Release

πŸš€ What's New in v1.2.1

✨ Playback State Sensor

  • New PluginSensor: Added real-time playback state monitoring with state values:
    • 0.0 = Not Playing (no track loaded or error state)
    • 1.0 = Paused (track loaded but playback paused)
    • 2.0 = Playing (track actively playing)

πŸ”§ Technical Implementation

  • Added _playbackState sensor with ID "playback-state" and display name "Playback State"
  • Integrated state updates in OnPlaybackUpdated() method to reflect current playback conditions
  • Added state handling in error scenarios through SetDefaultValues() method
  • Maintains consistency with the plugin's event-driven architecture

🎯 What's New in v1.2.0

πŸ› οΈ Custom Display Messages

Added new INI configuration options for personalized display:

New Configuration Options:

  • NoTrackMessage: Customize what displays when no track is loaded (default: "No music playing")
  • PausedMessage: Control paused state display:
    • Empty (default): Keep actual track info visible when paused
    • Custom text: Show personalized paused message (e.g., "⏸ Paused")
  • NoTrackArtistMessage: Customize artist field when no track/paused with custom message (default: "-")

Configuration Example:

[Spotify Plugin]
ClientID=your-spotify-client-id-here
MaxDisplayLength=25
NoTrackMessage=β™ͺ Spotify idle
PausedMessage=
NoTrackArtistMessage=-
ForceInvalidGrant=false

Creative Examples:

# Minimalist approach
NoTrackMessage=Ready to play
PausedMessage=
NoTrackArtistMessage=

# Descriptive messages  
NoTrackMessage=No music playing
PausedMessage=⏸ Music paused
NoTrackArtistMessage=No artist

# Themed approach
NoTrackMessage=β™ͺ Spotify idle
PausedMessage=🎡 On hold
NoTrackArtistMessage=β™ͺ Idle

πŸ”§ Technical Enhancements

Enhanced Data Model

  • Improved PlaybackInfo: Added HasTrack field to distinguish between paused tracks vs. no track loaded
  • Smart State Tracking: Added _lastKnownTrack tracking in SpotifyPlaybackService to maintain track information across state changes

Robust Configuration Management

  • Backward Compatibility: Existing installations automatically get new default values
  • Automatic Migration: Enhanced INI file loading with automatic addition of missing configuration keys
  • Safe Defaults: Plugin creates sensible defaults for new configuration options

Service Layer Improvements

  • Enhanced Pause Detection: Updated logic to preserve track metadata when IsPlaying is false but HasTrack is true
  • Improved UI Logic: Modified OnPlaybackUpdated() to handle different playback states appropriately
  • Rate Limiting Compliance: Maintains the existing 180 req/min, 10 req/sec rate limiting strategy

πŸ“‹ Installation & Upgrade

New Installation

  1. Download SpotifyPlugin-v1.2.1.zip from the release assets
  2. Extract to your InfoPanel plugins directory
  3. Configure your Spotify Client ID in the generated INI file
  4. Authorize with Spotify using the plugin button

Upgrading from Previous Versions

  • Automatic Migration: All new configuration options will be added automatically
  • Backward Compatible: Existing setups continue working with enhanced features
  • No Manual Configuration Required: New features use sensible defaults

πŸ› Bug Fixes & Improvements

v1.2.1 Fixes

  • Enhanced error state handling for playback sensor
  • Improved sensor integration with InfoPanel's UI system

v1.2.0 Fixes

  • Resolved artist field showing "0" when no track playing by implementing smart default handling
  • Fixed UI field consistency across all playback states
  • Enhanced configuration file robustness

πŸ”„ Migration Notes

From v1.1.x to v1.2.x

  • New INI options will be automatically added on first run
  • Existing behavior is preserved - paused tracks now show more information
  • Playback state sensor provides new automation possibilities

Configuration File Changes

Your existing InfoPanel.Spotify.dll.ini will be automatically updated with:

NoTrackMessage=No music playing
PausedMessage=
NoTrackArtistMessage=-

🀝 Compatibility

  • InfoPanel: Compatible with current InfoPanel plugin system
  • Spotify API: Uses SpotifyAPI.Web v7.2.1 with PKCE authentication
  • .NET: Requires .NET 8.0 Windows runtime
  • Spotify Account: Requires Spotify Premium for playback control features

What's Changed

  • [1.2.1] - September 19, 2025 by @F3NN3X in #3

Full Changelog: 1.1.1...1.2.1