Difference between revisions of "Amarok/Development/ArchitectureReview"

Jump to: navigation, search
(Meta)
(Meta)
Line 20: Line 20:
  
 
== Meta ==
 
== Meta ==
Meta::Genre > QString
+
Meta::Genre > QString<br/>
Meta::Label > QString
+
Meta::Label > QString<br/>
Meta::Year > QString
+
Meta::Year > QString<br/>
Track::Artist() -> QString (display only)
+
Track::Artist() -> QString (display only)<br/>
Album::Artist() -> Meta::Artist (has it's own properties: rating, year, image, ...)
+
Album::Artist() -> Meta::Artist (has it's own properties: rating, year, image, ...)<br/>
Meta::Playlist inheriting Meta::Base.
+
Meta::Playlist inheriting Meta::Base.<br/>
 
PlaylistObserver methods moved into Meta::Observer
 
PlaylistObserver methods moved into Meta::Observer
  

Revision as of 13:26, 24 September 2012

Amarok @ Randa 2012: Architecture review

Source Structure

  • only main.cpp/App.cpp/etc in src/
    • group collections, providers, ... together in libraries or plugins
  • get rid of core-impl.
    • some stuff should be in core
    • organize by libraries/plugins
  • One CMakeFiles.txt per sub-folder: limited link target, faster linking
  • Clean up includes: less files touched for rebuild

Components

Can be expected to always be there. Are created by main.cpp in the order needed or are interfaces with stub implementation until the real one is registered.

  • CollectionManager
  • PlaylistManager
  • defaultPlaylistProvider
  • PlaybackController, PlaybackQueue
  • MainWindow: parent of the dialogs, keybindings, etc
  • Notifier (ACTION: rename Logger) Stub implementation until MainWindow is ready.

Meta

Meta::Genre > QString
Meta::Label > QString
Meta::Year > QString
Track::Artist() -> QString (display only)
Album::Artist() -> Meta::Artist (has it's own properties: rating, year, image, ...)
Meta::Playlist inheriting Meta::Base.
PlaylistObserver methods moved into Meta::Observer

MultiSource tracks

QList<KUrl> playableUrls() in the order of priority. Handled in PlaybackController.

File Layout Dialog

  • Presets for Amarok, iTunes, Windows MediaPlayer standard layout. Useful for imported collections.
  • Basic Layout Mode: Tokens in vertical list, small icons.
  • Separate preset config, main dialog just showing selector and edit buttons.

Popup Dropper

  • Remove overlay on more...
  • 3 items max, easy muscle memory targets.
  • PlaylistBrowser: 2 common actions: load, replace + most sensible (first?) provider action.

PlaylistFileProvider

  • Use as export option:
    • Open export playlist dialog
    • Option to copy tracks to containing folder.
    • Don't show playlist files from collection by default. Alternatives?

Content is available under Creative Commons License SA 4.0 unless otherwise noted.