MyDigitalLife

goedegep.media

The Media application consists of the following components:

  • Music database, package goedegep.media.mediadb
  • Music folder, package goedegep.media.musicfolder
  • Photoshow builder and Photoshow viewer, package goedegep.media.photo.photoshow
  • Photo map view, package goedegep.media.photo.photomapview
  • Video database, package goedegep.media.videodb
  • Dune, package goedegep.media.dune

An overview of the implementation is show in the following figure.

Package goedegep.media.exe

This package holds the classes to start the application.

Class MediaWrapper

This class is the entyry point for the Media executable. The class doesn’t do anything else than calling MediaApplication.main(args). This wrapper is needed because if the main class extends from javafx.application.Application the executable doesn’t work.

Class MediaApplication

This class is the main entry point for the Media JavaFX application. Like all MyWorld applications, the class extends JfxApplication.
This class uses the MediaService to start the Media menu window by calling MediaService.getInstance().showMediaMenuWindow().

Package goedegep.media.svc

This package only holds the media service.

Class MediaService

This class extends the goedegep.myworld.common.Service class, which is a template for services.
This service provides methods to start the main windows of the components.

Package goedegep.media.mediadb.logic

This package contains the logic related to the media database application.

Class MediaDbService

This class is a service on top of a media database. It provides methods to:

  • add an album, artist or track to the database
  • get the media database or its EMFResource
  • open the album details window
  • save the media database

TODO

Utility methods:
There will be many utility methods on the data model, which would polute the model. Therefore all methods are in goedegep.media.mediadb.model.util.MediaDbUtil.
All information related to the Music Folder is in ..musicfolder
The link between the music database en the Music Folder is under ..mediadb.logic

Albums <-> Music Folder

Most normal cases:

  • Complete album available
    ‘I have on’ is set at album level
    All tracks of the album are in the folder <letter>/<artist>/<date>-<artist>-<album-title>
  • Some tracks of the album available in a separate folder (new excerpt album)
    This is the case if you like some tracks of an album, but also there are some tracks you don’t like.
    The database has a separate excerpt album, for which holds ‘complete album available’
    All tracks of the album that you have are in the folder <letter>/<artist>/<date>-<artist>-<album-title>-excerpt
    In the database the album has a reference to this excerpt album and all tracks refer to the tracks of the excerpt album.
  • Some tracks of the album are available as part of a compilation album.
    The database has this ‘own compilation album’.
    The album has a reference to this album and all tracks refer to the tracks in this ‘own compilation album’.
    For the ‘own compilation album’ holds ‘complete album available’
  • Some tracks of the album are part of a track collection.
    The available tracks refer to the tracks in the track collections.

Other options are not supported.