Preface

This document is part of the Campcaster project, Copyright © 2004 Media Development Loan Fund, under the GNU GPL.

Scope

This document contains the specification of the Campcaster Playlist editor component.

This document contains embedded SVG figures, thus an SVG capable browser is needed to view it, or an SVG plugin like Adobe’s SVG Viewer.

Requirements

Overview

The purpose of the Playlist editor component is to provide a user interface enabling creation, editing and publishing playlists.

Goals

The playlist editor is an easy to use user interface tool. It provides the possibility to create and edit playlists, made up of a sequence of audio clips store in Local storage or in a remote Media archive. The created playlist then can be uploaded to a Scheduler daemon for execution.

The transition between audio clips can be visually specified though the user interface. The playlist editor provides an easy to use user interface to search the audio clips stored in Local storage or a remote Media archive, based on metadata criteria. The playlist editor provides the possibility to listen to the whole or any part of the created playlist.

System functions

The main system functions are described below. There are three categories for these functions:
function category
meaning
evident
Should perform, and the user should be cognizant that it is performed
hidden
Should perform, but not visible to the users.
frill
Optional


ref#
function
category
F1.1
Create and edit playlists
evident
F1.2
Access to Local storage
hidden
F1.3
Access to Media archive
hidden
F1.4
Search in Local storage or Media archive
evident
F1.5
Upload playlist to Scheduler daemon
evident
F1.6
Smooth transitions between Audio clips
evident
F1.7
Play back created playlist
evident
F1.8
Maintain configuration information
evident




System attributes

Generic attributes

ref#
attribute
details and constraints
category
A1.1
operating system platform
Linux
must
A1.2
easy to use user interface
intuitive user interface
must
A1.3
supported audio formats
Ogg Vorbis, wav, possibly MP3
must
A1.4
Playlist support for Audio clips from Local storage Created playlists may include audio sources from Local storage must
A1.5
Playlist support for Audio clips from Media archive
Created playlists may include audio sources from a remote Media archive
must
A1.6
Playlist support for remotely accessible audio files
Created playlists may include remotely accessible audio sources, e.g. audio files downloadable via HTTP
must
A1.7
Playlist support for audio streams
Created playlists may include remotely accessible audio streams, e.g. icecast or shoutcast streams
must
A1.12
Playlist format
SMIL 2.0
frill
A1.13
Standalone GUI application
The Playlist editor is a standalone graphical user interface application
must
A1.14
Supported audio interfaces
ALSA (maybe also OSS?)
must





Attributes related to system functions

ref#
function
ref#
attribute
details and constraints
category
F1.6
Smooth transitions between Audio clips
A1.8
Fade-in / fade-out support
Support for fade-in / fade-out as a transitions, with customizable fade curve
must
F1.2
Access to Local storage
A1.9
Full access to Local storage
The Playlist editor is a user interface to Local storage, enabling uploading, deletion and updating of Audio clips in Local storage
must
F1.3
Access to Media archive
A1.10
Full access to Media archive
The Playlist editor is a user interface to Media archive, enabling uploading, deletion and updating of Audio clips in Media archive
must
F1.7
Play back created playlist
A1.11
Complete and partial playback
The Playlist editor provides the possibility of complete playback, and random seeks for the whole of the playlist duration
must







Essential use cases

This section lists generic (essential) uses cases, that do not contain architecture-specific considerations.

UC-1 Create a Playlist

ref# UC-1
use case Create a Playlist
type primary, essential
actors Playlist maintainer
purpose To create a new, empty Playlist
overview The Playlist maintainer accesses the Playlist editor application with the purpose of creating a new, empty Playlist.
references F1.1

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.
4.
The Playlist maintainer creates a new, empty playlist
5.
The system creates a new, empty playlist.





Alternate courses


UC-2 Add an Audio clip to Local storage

ref# UC-2
use case Add an Audio clip to Local storage
type primary, essential
actors Playlist maintainer, Local storage
purpose To add a new Audio clip to local storage.
overview The Playlist maintainer accesses the Playlist editor application with the purpose of adding a new audio file to the Local storage associated with the Playlist editor.
references F1.2, A1.9

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.
4.
The Playlist maintainer provides an audio file and corresponding metadata description.
5.
The system receives the data, and contacts Local storage with the purpose of storing it.


6.
The system provides authentication information to Local storage
7.
The Local storage checks for the provided authentication information, and grants access.
8.
The system presents the audio data and metadata to the Local storage
9.
The Local storage receives the provided audio file and metadata, and stores it, returning the unique id for the newly created Audio clip
10.
The system receives the new unique id from Local storage, and presents it to the Playlist maintainer.





Alternate courses


UC-3 Delete an Audio clip from Local storage

ref# UC-3
use case Delete an Audio clip from Local storage
type primary, essential
actors Playlist maintainer, Local storage
purpose To delete an Audio clip from local storage.
overview The Playlist maintainer accesses the Playlist editor application with the purpose of deleting an Audio clip stored in Local storage
references F1.2, A1.9

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to Local storage
5.
The Local storage checks for the provided authentication information, and grants access.


6.
The Playlist maintainer selects an Audio clip from the Local storage through the Playlist manager


7.
The Playlist maintainer indicates the selected Audio clip to be deleted.
8.
The system contacts Local storage with the selected Audio clip to be deleted.
9.
Local storage deletes the specified Audio clip
10.
The system notifies the Playlist maintainer of the deletion of the selected Audio clip





Alternate courses


UC-4 Update an Audio clip in Local storage

ref# UC-4
use case Update an Audio clip in Local storage
type primary, essential
actors Playlist maintainer, Local storage
purpose To update an already existing Audio clip in local storage.
overview The Playlist maintainer accesses the Playlist editor application with the purpose of replacing the data for an Audio clip in Local storage
references F1.2, A1.9

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to Local storage
5.
The Local storage checks for the provided authentication information, and grants access.


6.
The Playlist maintainer selects an Audio clip from the Local storage through the Playlist editor.


7.
The Playlist maintainer presents the new audio data and metadata for the selected Audio clip.
8.
The system receives the audio data and metadata for the new Audio clip.


9.
The system presents the new audio data and metadata for the specified Audio Clip to Local storage.
10.
The Local storage updates the specified Audio clips contents with the presented content, and notifies the system of this.
11.
The system notifies the Playlist maintainer of the changes made.





Alternate courses


UC-5 Add or update an Audio clip to Media archive

ref# UC-5
use case Add or update an Audio clip to Media archive
type primary, essential
actors Playlist maintainer, Local storage, Media archive
purpose To add or update an Audio clip to Media archive
overview The Playlist maintainer accesses the Playlist editor application with the purpose of adding or updating an Audio clip already in Local storage to the remote Media archive
references F1.2, F1.3, A1.9, A1.10

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to the Local storage
5.
The Local storage checks for the provided authentication information, and grants access.

6.
The Playlist maintainer selects an Audio clip from Local storage through the Playlist editor.


7.
The Playlist maintainer indicates the selected Audio clip to be added to the Media archive.
8.
The system provides authentication information to the Media archive
9.
The Media archive checks for the provided authentication information, and grants access. 10.
The system transfers the Audio clip from Local storage to the Media archive, adding it to the Media archive
11.
The Local storage provides the contents of the requested Audio clip to the system.


12.
Media archive receives the Audio clip

13.1
If no Audio clip with the unique id of the supplied clip exists in Media archive, it is stored as a new Audio clip. The Media archive notifies the system of the acceptance of the Audio clip.


13.2
If an Audio clip with the unique id of the supplied clip already exists in Media archive, its contens are updated with that of the supplied Audio clip. The Media archive notifies the system of the acceptance of the Audio clip.



14.
The system notifies the Playlist maintainer about the result of adding the Audio clip to the Media archive





Alternate courses


UC-6 Search for Audio clips

ref# UC-6
use case Search for Audio clips
type primary, essential
actors Playlist maintainer, Local storage, Media archive
purpose To search for Audio clips by metadata search criteria in both Local storage and Media archive
overview The Playlist maintainer accesses the Playlist editor application with the purpose of searching for Audio clips based on some metadata search criteria. The list if matching Audio clips is presented, both from Local storage and Media archive.
references F1.2, F1.3, F1.4, A1.9, A1.10

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to the Local storage
5.
The Local storage checks for the provided authentication information, and grants access.



6.
The system provides authentication information to the Media archive
7.
The Media archive checks for the provided authentication information, and grants access. 8.
The system provides an interface to enter search criteria
9.
The Playlist maintainer enters a search criteria.
10.
The system executes a search with the search criteria on Local storage
11.
Local storage returns a list of marching Audio clips.
12.
If the Media archive is accessible, the system executes a search on it with the search criteria
13.
The Media archive returns a list of matching Audio clips.
14.
The system displays the list of matching Audio clips to the Playlist maintainer.





Alternate courses


UC-7 Mirror an Audio clip from a remote Media archive in Local storage

ref# UC-7
use case Mirror an Audio clip from a remote Media archive in Local storage
type primary, essential
actors Playlist maintainer, Local storage, Media archive
purpose To mirror an Audio clip stored in Media archive in Local storage
overview The Playlist maintainer accesses the Playlist editor application with the purpose of downloading and mirroring an Audio clip from the Media archive into Local storage.
references F1.1, F1.2, F1.3

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to the Media archive
5.
The Media archive checks that the provided authentication information is correct, and grants access.
6.
The system provides authentication information to Local storage
7.
Local storage checks that the provided authentication information is correct, and grants access.

8.
The Playlist maintainer selects an Audio clip from the Media archive, via the Playlist editor, for mirroring.
9.
The system accesses the Media archive, downloading the requested Audio clip.
10.
The Media archive presents the requested Audio clip
11.
The system stores the downloaded Audio clip in Local storage
12.
Local storage stores the Audio clip
13.
The system notifies the Playlist maintainer of the success of the operation.





Alternate courses


UC-8 Add an Audio clip to a Playlist

ref# UC-8
use case Add an Audio clip to a Playlist
type primary, essential
actors Playlist maintainer, Local storage, Media archive
purpose To add an Audio clip to a Playlist, either from Local storage or the Media archive
overview The Playlist maintainer accesses the Playlist editor application with the purpose of adding an Audio clip to a Playlist. The Audio clip may reside in Local storage or a Media archive.
The details of the added Audio clip are stored locally, even if it’s from a remote Media archive. When adding a remote Audio clip (from Media archive), the possibility is given to mirror the clip in Local storage (see UC-7).
references F1.1, F1.2, F1.3

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.
4.
The Playlist maintainer selects a Playlist.




5.
The system provides authentication information to Local storage
6.
Local storage checks that the provided authentication information is correct, and grants access. 7.
The system provides authentication information to the Media archive
8.
The Media archive checks that the provided authentication information is correct, and grants access.

9.
The Playlist maintainer selects an Audio clip, to be added to the Playlist. The Playlist manager also provides an offset in the playlist where he wants the Audio clip to be.
10.
The system adds the selected Audio clip at the specified offset to the playlist. If this is overlapping with existing clips on all audio layers, the clip is added to an additional audio layer.


11.
If the added clip is from a remote Media archive, the Playlist editor is presented with a choice of downloading it to Local storage.
12.
The Playlist editor specifies if he wants the clip to be downloaded to Local storage.







Alternate courses


UC-9 Move the position of an Audio clip in a Playlist

ref# UC-9
use case Move the position of an Audio clip in a Playlist
type primary, essential
actors Playlist maintainer
purpose To change the offset of when an Audio clip is played in a Playlist
overview The Playlist maintainer accesses the Playlist editor application with the purpose of changing the offset of an Audio clip in a Playlist.
references F1.1

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.
4.
The Playlist maintainer selects a Playlist.


5.
The Playlist maintainer selects an Audio clip in the Playlist


6.
The Playlist maintainer moves the selected Audio clip to a new offset.
7.
The system updates the offset information for the selected Audio clip.
8.
The Playlist maintainer moves the Audio clip to another layer.
9.
The system moves the Audio clip to the new layer.





Alternate courses


UC-10 Edit the transition of an Audio clip

ref# UC-10
use case Edit the transition of an Audio clip
type primary, essential
actors Playlist maintainer
purpose To change the fade-in / fade-out of an Audio clip
overview The Playlist maintainer accesses the Playlist editor application with the purpose of changing the fade-in / fade-out of an Audio clip
references F1.1

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.
4.
The Playlist maintainer selects a Playlist.


5.
The Playlist maintainer selects an Audio clip in the Playlist


6.
The Playlist maintainer edits the fade-in parameters of the Audio clip
7.
The system updates the fade-in parameters of the Audio clip.
8.
The Playlist maintainer edits the fade-out parameters of the Audio clip
9.
The system updated the fade-out parameters of the Audio clip.





Alternate courses


UC-11 Listen to a Playlist

ref# UC-11
use case Listen to a Playlist
type primary, essential
actors Playlist maintainer, Local storage
purpose To preview a Playlist
overview The Playlist maintainer accesses the Playlist editor application with the purpose of listening to a Playlist, to verify that when it is played, it will have the desired effect.
references F1.7, A1.11, A1.14

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to Local storage
5.
Local storage checks that the provided authentication information is correct, and grants access.


6.
The Playlist maintainer selects a Playlist.


7.
The Playlist maintainer starts to play the Playlist.
8.
The system looks up the Audio clips to be played in the immediate future, and accesses them from Local storage.
9.1
If the requested Audio clip is contained in Local storage, seekable access to the raw audio data of the requested Audio clips is provided


9.2
If the requested Audio clip is not in Local storage, the system is notified.




10.
The system plays the raw audio data on the local audio interface if available, silence otherwise.
11.
The Playlist maintainer seeks into the Playlist
12.
The system updates the offset where the audio clips are to be played from, and continues playing from there.
13.
The Playlist maintainer ends playing
14.
The system release access to all accessed Audio clips from Local storage





Alternate courses


UC-12 Upload a Playlist to a Scheduler daemon

ref# UC-12
use case Upload a Playlist to a Scheduler daemon
type primary, essential
actors Playlist maintainer, Scheduler
purpose To publish a Playlist
overview The Playlist maintainer accesses the Playlist editor application with the purpose of uploading a Playlist to a Scheduler daemon, so that it would be executed at a specified time.
references F1.5

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.


4.
The system provides authentication information to the Scheduler
5.
The Scheduler checks that the provided authentication information is correct, and grants access.


6.
The Playlist maintainer selects a Playlist.


7.
The Playlist maintainer indicates the selected Playlist to be uploaded to a Scheduler daemon, to be played at a specified time.
8.
The system connects to the Scheduler with the specified Audio clip and time, and uploads the Playlist.
9.
The Scheduler receives the playlist, and schedules it for playing. The system is notified of this.
10.
The system notifies the Playlist maintainer of the success of the operation.





Alternate courses


UC-13 Maintain configuration information

ref# UC-13
use case Maintain configuration information
type primary, essential
actors Playlist maintainer
purpose To add, update or delete the systems that the Playlist editor knows about.
overview The Playlist maintainer accesses the Playlist editor application with the purpose of reviewing and possibly changing the registered system the Playlist editor connects to. These include Local storage, Media archive and Scheduler, but also other details, like the local audio interface.
references F1.8

Typical course of events

actor action
system response
1. Playlist maintainer starts the Playlist editor application.


2. The Playlist maintainer provides authentication information 3. The system checks that the provided authentication information is correct, and grants access.
4.
The Playlist maintainer selects to to view the configuration information
5.
The system displays the configuration information to the Playlist maintainer
6.
The Playlist maintainer selects to add a new registered external system.
7.
The system verifies the new registry entry, and adds it to the configuration
8.
The Playlist maintainer selects to update a registered external system.
9.
The system verifies the new values for the registry entry, and updates the configuration
10.
The Playlist maintainer deletes a registered external system.
11.
The system deletes the external system, if there remain a minimum required of such system.





Alternate courses


Conceptual model

The following figure displays the semantic concepts identified for the Scheduler daemon, and the main associations between the concepts.


Concepts


concept
description
Scheduler
The Scheduler daemon, executing playlists.
Local storage
The Local storage, holding Audio clips locally.
Media archive
The remote Media archive, holding Audio clips remotely
Playlist uploader
The component responsible for uploading Playlists to the Scheduler
Playlist player
Plays Playlists for preview locally.
Clip retriever
Responsible for the transfer of Audio clips to and from Local storage and Media archive
Playlist
A series of Audio clips, and information on how they come one after the other.
Playlist element
A connection object about a specific appearance of an Audio clip in a Playlist
Audio clip
The basic unit of audio data handled by the system.
Audio layer
An audio layer in the playlist, a sequence of non-overlapping Audio clips
FadeInfo
The details of the transition of the specific instance of the Audio clip on a Playlist. Basically a fade-in and fade-out info
MetaData
The metadata associated with an Audio clip
SearchCriteria
Criteria for searching Metadata
Configuration
The configuration parameters of the Playlist editor
Authentication
Component providing authentication services



Associations


source
association
target
description
Playlist uploader
Uploads to
Scheduler
The Playlist uploader uploads Playlists to the Scheduler
Playlist player
Accesses audio data from
Local storage
For playing on the local audio interface
Clip retriever
Stores clips in
Local storage

Clip retriever
Stores clips in
Media archive

Clip retriever
Retrievers clips from
Media archive

Local storage
Contains
Audio clip

Media archive
Contains
Audio clip

Playlist uploader
Uploads
Playlist

Playlist player
Plays
Playlist

Playlist
Contains
Audio layer

Playlist element
References
Audio layer
Shows which layer the given Audio clip is on
Playlist element
Fades in with
FadeInfo

Playlist element
Fades out with
FadeInfo

Audio clip
Is described by
MetaData

Playlist maintainer
Searches by
SearchCriteria

Playlist maintainer Creates and edits
Playlist

Playlist maintainer Listens to
Playlist

Playlist maintainer Edits
FadeInfo

Playlist maintainer Maintains
Configuration

Playlist maintainer Is authenticated by
Authentication






System behavior

The behavior of the system as a whole as experienced from the outside is discussed in this section.

System sequence diagrams

System diagrams are presented for each use case below.

UC-1 Create a Playlist


UC-2 Add an Audio clip to Local storage


UC-3 Delete an Audio clip from Local storage


UC-4 Update an Audio clip in Local storage


UC-5 Add or update an Audio clip to Media archive


UC-6 Search for Audio clips


UC-7 Mirror an Audio clip from a remote Media archive in Local storage


UC-8 Add an Audio clip to a Playlist


UC-9 Move the position of an Audio clip in a Playlist


UC-10 Edit the transition of an Audio clip


UC-11 Listen to a Playlist


UC-12 Upload a Playlist to a Scheduler daemon


UC-13 Maintain configuration information


System objects

The following figures shows the system objects and their functions, as derived from the system sequence diagrams.


Contracts

For all operations exposed in the system sequence diagrams, the following contracts are defined.

Contract for Playlist editor : authenticate

See Authentication : authenticate

Contract for Playlist editor : createPlaylist

Name
createPlaylist
()
: Playlist
Responsibilities
Create a new, empty Playlist
Type
system
Cross-reference
UC-1
Notes
none
Exceptions
none
Output
a new, empty Playlist
Pre-conditions
none
Post-conditions
condition
type

a Playlist is created
instance creation




Contract for Playlist editor : addAudioClip

Name
addAudioClip
(rawAudioData : RawAudioData,
metaData : MetaData)
: UniqueId
Responsibilities
add an Audio Clip to Local storage through the Playlist editor
Type
system
Cross-reference
UC-2
Notes
All the relevant work is done in Local storage
Exceptions
none
Output
the unique id of the added audio clip
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : deleteAudioClipFromLocalStorage

Name
deleteAudioClipFromLocalStorage
(audioClipId : UniqueId)
: void
Responsibilities
delete an Audio Clip from Local storage through the Playlist editor
Type
system
Cross-reference
UC-3
Notes
All the relevant work is done in Local storage
Exceptions
if no Audio clip exists in Local storage with the specified id, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : updateAudioClipInLocalStorage

Name
updateAudioClipInLocalStorage
(audioClipId : UniqueId,
rawAudioData : RawAudioData,
metaData : MetaData)
: void
Responsibilities
update the contents of an Audio Clip in Local storage through the Playlist editor
Type
system
Cross-reference
UC-4
Notes
All the relevant work is done in Local storage
Exceptions
if no Audio clip exists in Local storage with the specified id, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : addAudioClipToMediaArchive

Name
addAudioClipToMediaArchive
(audioClipId : UniqueId)
: void
Responsibilities
add an Audio clip stored in Local storage to the Media archive
Type
system
Cross-reference
UC-5
Notes
All the relevant work is done in Local storage and Media archive.
Exceptions
if no Audio clip exists in Local storage with the specified id, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : searchMetadata

Name
searchMetadata
(criteria : SearchCriteria)
: audioClipIds
Responsibilities
to search the Local storage and remote Media archive accessible through the Playlist editor.
Type
system
Cross-reference
UC-6
Notes
All the relevant work is done in Local storage and Media archive.
Exceptions
none
Output
a list of Audio clip ids, which have metadata matching the search criteria.
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : mirrorAudioClipInLocalStorage

Name
mirrorAudioClipInLocalStorage
(audioClipId : UniqueId)
: void
Responsibilities
to download and store an Audio clip in Local storage, which is available in the remote Media archive.
Type
system
Cross-reference
UC-7
Notes
All the relevant work is done in Local storage and Media archive.
Exceptions
if no Audio clip exists in Media archive with the specified id, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : addAudioClipToPlaylist

Name
addAudioClipToPlaylist
(playlist : Playlist,
audioClipId : UniqueId,
offset : Time)
: void
Responsibilities
to add an Audio clip to a Playlist, with the specified offset
Type
system
Cross-reference
UC-8
Notes
none
Exceptions
if no Audio clip exists in either Local storage or Media archive with the specified id, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
condition
type

create a new PlaylistElement instance
instance creation

associate the PlaylistElement with the specified Playlist
association formed

associate the PlaylistElement with the specified Audio clip
association formed

set the relativeOffset value of PlaylistElement to the supplied offset
attribute modification
find an Audio layer in the Playlist in which the new clip at specified offset does not overlap other clips
associate the found Audio layer with the created PlaylistElement
association formed
if the Audio clip is overlapping other clips in all Audio layers in the Playlist
create a new Audio layer
instance creation

associate the Audio layer with the Playlist
association formed

associate the Audio layer with the PlaylistElement
association formed




Contract for Playlist editor : updateAudioClipPositionInPlaylist

Name
updateAudioClipPositionInPlaylist
(playlist : Playlist,
playlistElement : PlaylistElement,
newOffset : Time)
: void
Responsibilities
to move an Audio clip within a playlist to an other offset
Type
system
Cross-reference
UC-9
Notes
none
Exceptions
if the new position of the Audio clip in its present Audio layer overlaps with other clips, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
condition
type

set the relativeOffset value of PlaylistElement to the supplied offset
attribute modification




Contract for Playlist editor : moveAudioClipToOtherLayer

Name
moveAudioClipToOtherLayer
(playlist : Playlist,
playlistElement : PlaylistElement,
newLayer : Audio layer)
: void
Responsibilities
to move an Audio clip within a playlist to another Audio layer
Type
system
Cross-reference
UC-9
Notes
none
Exceptions
if the specified Audio layer is not associated with the specified Playlist, indicate as an error.
if the Audio clip overlaps other clips in the new Audio layer, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
condition
type

remove association between the PlaylistElement and its current Audio layer
association broken

associate PlaylistElement with the supplied Audio layer
association formed




Contract for Playlist editor : updateFadeParameters

Name
updateFadeParameters
(playlistElement : PlaylistElement,
newFadeInInfo : fadeInfo,
newFadeOutInfo : fadeInfo)
: void
Responsibilities
to update the fade-in and fade-out of an Audio clip in a Playlist
Type
system
Cross-reference
UC-10
Notes
none
Exceptions
none
Output
none
Pre-conditions
none
Post-conditions
condition
type

replace the contents of the fadeInInfo associated with the playlistElement with that of the supplied fadeInInfo
attribute modification

replace the contents of the fadeOutInfo associated with the playlistElement with that of the supplied fadeOutInfo attribute modification




Contract for Playlist editor : playPlaylist

Name
playPlaylist
(playlist : Playlist,
offset : Time)
: void
Responsibilities
to play a playlist on the local audio interface
Type
system
Cross-reference
UC-11
Notes
none
Exceptions
if offset points outside of playlist, report as an error.
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : stopPlaying

Name
stopPlaying
()
: void
Responsibilities
to stop playing whatever is played.
Type
system
Cross-reference
UC-11
Notes
none
Exceptions
if there is no Playlist currently playing, indicate as an error.
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : schedulePlaylist

Name
schedulePlaylist
(playlist : Playlist,
schedule : Schedule)
: void
Responsibilities
to upload a Playlist to a Scheduler daemon for later execution
Type
system
Cross-reference
UC-12
Notes
All the relevant work is done in the Scheduler daemon.
Exceptions
none
Output
none
Pre-conditions
none
Post-conditions
none





Contract for Playlist editor : addConfiguration

Name
addConfiguration
(configuration : Configuration)
: void
Responsibilities
to add a new Configuration item
Type
system
Cross-reference
UC-13
Notes
none
Exceptions
none
Output
none
Pre-conditions
none
Post-conditions
condition
type

create a new Configuration instance
instance creation

fill the created configuration instance with the supplied information
attribute modification




Contract for Playlist editor : updateConfiguration

Name
updateConfiguration
(configuration : Configuration)
: void
Responsibilities
to update a Configuration item
Type
system
Cross-reference
UC-13
Notes
none
Exceptions
none
Output
none
Pre-conditions
none
Post-conditions
condition
type

fill the corresponding configuration instance with the supplied information
attribute modification




Contract for Playlist editor : deleteConfiguration

Name
deleteConfiguration
(configuration : Configuration)
: void
Responsibilities
to delete a Configuration item
Type
system
Cross-reference
UC-13
Notes
none
Exceptions
none
Output
none
Pre-conditions
none
Post-conditions
condition
type

delete the corresponding configuration item
instance deletion