<?sphp $this->text('pagetitle') ?>
 
Home of the Squeezebox™ & Transporter® network music players.

SlimServer7Spec

From SqueezeboxWiki

Jump to: navigation, search

Contents

SlimServer 7.0 Schedule

Alpha Start Beta Start Release On Web
July 24, 2007 September 24, 2007 November, 2007

where Beta Start = Coding Done = Feature Freeze = Branch from Trunk

SlimServer 7.0 Specification

Major Changes/Features - Required:

  • Freshen default web UI
    • Motivation: Current web UI is looking dated and stale, and would like it to look more up-to-date.
    • Impact: New default skin. Move current default web UI skin to option on server page.
    • Status: In redesign.
  • Consistent web UI between SlimServer and SqueezeNetwork
    • Motivation: SlimServer and SqueezeNetwork have completely different UI. As a result, users using both must learn both. Users would find both SlimServer and SqueezeNetwork more useful if they only had to learn a single way to do things.
    • Impact: New default skin. Move current default web UI skin to option on server page. New UI also for SqueezeNetwork.
    • Status: In redesign.
  • Easier first time set-up experience
    • Motivation: First-time users have a hard time determining how to configure SlimServer and SqueezeNetwork to their needs. A guided “wizard” will step this user through the appropriate steps in a way that configures both SqueezeNetwork and SlimServer. A superset of 3267.
    • Impact: None expected.
    • Status: In redesign.
  • Streamline default web UI to highlight most commonly used functions
    • Motivation: Users regularly use only a subset of SlimServer functions. Some users find the current web UI difficult to navigate and hard to use. A more useful default web UI can be created by rearranging the UI to minimize mouse clicks and hide less commonly used functions.
    • Impact: New default skin. Move current default web UI skin to option on server page.
    • Status: In redesign.
  • Jive support
    • Motivation: SlimServer needs to support Jive.
    • Impact: New plugins.
    • Status: Being implemented.
  • Support for music services such as Rhapsody and Pandora
    • Motivation: Users can connect players to subscribed music services such as Rhapsody or Pandora only through SqueezeNetwork. When connected to SlimServer, a user must switch to SqueezeNetwork to use these services. Allow SlimServer-connected players to use these music services without switching.
    • Impact: New plugins to support music services.
    • Status: Being implemented.
  • Consistent player menus
    • Motivation: Players have different menus depending upon whether they’re connected to SlimServer or SqueezeNetwork. There also is no listing for Music Services on SlimServer. Creating identical player menus on all players would make it easier for users to find what they want and create a structure to add Pandora or Rhapsody on a SlimServer-connected player.
    • Impact: None expected.
    • Status: In redesign.
  • SqueezeNetwork sync, integration.
    • Motivation: Allow pref changes on SlimServer to be reflected in SN and vice versa. Auto-linking of players. Control of SN players from SlimServer. Public API for controlling SN players. (Andy)
  • Migrate from –d_* debugging to Log::Log4Perl classes.
    • Bug: 4293
    • Motivation: SlimServer's logging/debugging is suboptimal and confusing.
    • Impact: Plugins will need to be updated to use new API. Support will need to be notified of new command line switches
    • Status: Done - Change 10437
  • Implement exceptions & proper exception handling
    • Bug: 4295
    • Motivation: Current errors go ignored or are missed. Return codes can only imply 3 cases (true, false, undef). Often a lower level will want to raise an exception to a higher level.
    • Impact: Plugins. More eval/try/catch code in the proper places. Needs to work with logging, as above.
  • Refactor Setup code & add a Setup Wizard. Including initial scan, firewall detection, etc.
    • Bug: 3267
    • Motivation: New users are confused during setup process. If something breaks, nothing works. Not much feedback to the user.
  • Make setup code async. Already done as part of SN work, just needs merged in. (Andy)
    • Bug: 4225
    • Motivation: The Setup code does a few HTTP operations now for RSS and Podcast checking. It will do more once it interacts with SN.
  • Plugin Architecture Needs Rework/Refactor/New API
    • Bug: 4112
    • Motivation: Plugins currently can poke and prode into the server causing crashes. There's no way to force a version check (enabled() is optional). Packaging needs to be improved, so a single file can be downloaded. Added/Removed from the Settings menu.
  • Web UI Scan Progress Bar
    • Bug: 4294
    • Motivation: No/little feedback to the user about the scanning process.
  • Refactor Source.pm to be more asynchronous. (Andy)
    • Motivation: Allow web operations for protocols such as live365:// that need to re-login when playing a favorite, for example, or when changing tracks. Several other plugins will benefit from this as well.
  • Enhance Favorites
    • Motivation: Impove ability of favorites to manage a user's favorite radio stations and local tracks. Move to opml to store favorites to allow hierachy, easy export and linking to remote stations lists. Enhance web interface to allow editing and easy import of favorites from xmlbrowser view such as slim picks.

Major Changes (Lower Priority)

  • Slim::Player::Client & superclasses are messy and need a refined API.
    • Bug: 3939
    • Motivation: Callers often poke inside the blessed hash, violating encapsulation. Poor APIs and repeated code. Every new member is added to an array, which is suboptimal. Use Object::InsideOut instead.

Optional:

  • Refactor Player/Playlist.pm code - look at DBIx::Class::Ordered
  • Magic Playlists
  • Look at ways of improving the cache, perhaps using the database instead of files? Bug 4298 (Andy)