This document is part of the LiveSupport project, Copyright Š 2004 Media Development Loan Fund, under the GNU GPL.
Author: $Author: fgerlits $
Version: $Revision: 1.4 $
Location: $Source: /home/cvs/livesupport/doc/model/Scheduler/index.html,v $
This document contains the specification of the LiveSupport
Scheduler daemon.
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.
The purpose of the LiveSupport Scheduler daemon is to execute playlists.
The scheduler daemon is a remotely accessible service accepting playlists on a local audio interface. Specific goals include:
remote manageability
handling remote audio clips referenced by playlists
low-latency playback
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 |
Accept uploaded playlists |
evident |
F1.2 |
Retrieve remote files referenced by playlists |
hidden |
F1.3 |
Access local files |
hidden |
F1.4 |
Provide status information |
evident |
F1.5 |
Log playlist execution for proof of broadcast reasons |
evident |
F1.6 |
Purge local file storage of unused audio clips |
hidden |
F1.7 |
Execute playlists |
evident |
F1.8 |
Play live streams as part of the playlist |
hidden |
F1.9 |
Remove playists from the schedule |
evident |
F1.10 |
Re-schedule playlsits |
evident |
F1.11 |
Delete playlists |
evident |
F1.12 |
Create playlists |
evident |
F1.13 |
Edit playlists |
evident |
F1.14 |
Start the scheduler daemon |
evident |
F1.15 |
Stop the scheduler daemon |
evident |
|
|
|
Generic attributes
ref# |
attribute |
details and constraints |
category |
---|---|---|---|
A1.1 |
operating system platform |
Linux |
must |
A1.2 |
supported audio interfaces |
ALSA (maybe also OSS?) |
must |
A1.3 |
supported playlist format |
SMIL 2.0. only partial support is required, which focuses only on audio aspects of SMIL. |
must |
A1.4 |
supported audio clip formats |
Ogg Vorbis, mp3, wav |
must |
|
|
|
|
Attributes related to system functions
ref# |
function |
ref# |
attribute |
details and constraints |
category |
---|---|---|---|---|---|
F1.7 |
Execute playlists |
A1.5 |
low latency |
when executing playlists, very low latency should be achieved |
must |
|
|
A1.6 |
handle time skew |
the daemon has to take into account that the system's clock is not accurate. the clock is synchronized to an external regularly, but the resulting time-jump must be handled. |
must |
F1.8 |
Play live streams as part of the playlist |
A1.7 |
supported audio stream formats |
Ogg Vorbis via HTTP, mp3 via HTTP |
must |
F1.14 |
Start / stop the scheduler daemon |
A1.8 |
provide System V init style services |
Provide a System V init interface to starting and stopping the scheduler daemon |
must |
|
|
|
|
|
|
This section lists generic (essential) uses cases, that do not contain architecture-specific considerations.
ref# |
UC-1 |
use case |
Upload playlist |
type |
primary, essential |
actors |
Playlist editor |
purpose |
Upload a playlist |
overview |
The Playlist editor uploads a new playlist. |
references |
F1.1 |
actor action |
system response |
||
---|---|---|---|
1. |
Playlist editor connects to the scheduler daemon with the intent of uploading a new playlist. |
|
|
2. |
The Playlist editor provides authentication information |
3. |
The system authenticates the Playlist editor and grants access. |
4. |
The Playlist editor presents the new playlist and the intended schedule for the playlist. |
5. |
The system validates the new playlist, and sees that it does not conflict with existing schedule. |
|
|
6. |
The system stores the new playlist, adds it to the schedule, and sends confirmation to the Playlist editor. |
7. |
The Playlist editor receives confirmation and disconnects. |
|
|
|
|
|
|
action 3: the system finds that the user can not be authenticated. the user is notified and the use case ends.
action 5: the system finds that the uploaded playlist is invalid, or it conflicts the existing schedule. the user is notified and the use case ends.
ref# |
UC-2 |
use case |
Manage schedule |
type |
primary, essential |
actors |
Playlist editor |
purpose |
View the schedule and remove or re-schedule playlists |
overview |
The Playlist editor reviews the schedule. If he decides to, he might remove or re-schedule some of these playlists. |
references |
F1.4, F1.9, F1.10 |
actor action |
system response |
||
---|---|---|---|
1. |
Playlist editor connects to the scheduler daemon with the intent of viewing and editing the schedule. |
|
|
2. |
The Playlist editor provides authentication information |
3. |
The system authenticates the Playlist editor and grants access. |
|
|
4. |
The system shows the Schedule to the Playlist editor |
5. |
The Playlist editor browses the Schedule, selects a playlist for detailed viewing. |
6. |
The system shows the details of the selected Playlist. |
7. |
The playlist editor removes a playlist from the schedule. |
8. |
The system removes the playlist from the schedule, than re-displays the updated schedle. |
9. |
The Playlist editor re-schedules a playlist |
10. |
The system removes the selected playlist from the schedule, and re-enters it at a new timepoint |
11. |
The Playlist editor browses the Schedule |
12. |
The system shows the Schedule to the playlist editor |
13. |
The Playlist editor disconnects. |
|
|
action 3: the system finds that the user can not be authenticated. the user is notified and the use case ends.
action 8: the user tries to remove a non-existent playlist from the schedule. the user is notified, and the schedule is displayed to the user.
action 10: the new playtime for the schedule conflicts with already scheduled playlist playtimes. the user is notified, and the schedule is displayed again
ref# |
UC-3 |
use case |
Manage playlists |
type |
primary, essential |
actors |
Playlist editor |
purpose |
View and delete playlists |
overview |
The Playlist editor reviews the uploaded playlists. If he decides so, he might delete some of these playlists. |
references |
F1.4, F1.11 |
actor action |
system response |
||
---|---|---|---|
1. |
Playlist editor connects to the scheduler daemon with the intent of viewing and deleting playlists. |
|
|
2. |
The Playlist editor provides authentication information |
3. |
The system authenticates the Playlist editor and grants access. |
|
|
4. |
The system lists the available Playlists |
5. |
The Playlist editor browses the playlists, and selects one for detailed viewing. |
6. |
The system shows the details of the selected Playlist. |
7. |
The playlist editor deletes a playlist. |
8. |
The system deletes the playlist, than re-displays the list of available Playlists. |
9. |
The Playlist editor disconnects. |
|
|
action 3: the system finds that the user can not be authenticated. the user is notified and the use case ends.
action 8: the user tries to delete a non-existent or a scheduled playlist. the user is notified, and the list of playlists is displayed to the user.
ref# |
UC-4 |
use case |
Retrieve remote files |
type |
primary, essential |
actors |
(internal actor, initiator), Media archive, Local storage |
purpose |
Retrieve remote files referenced by active playlists and store them in the local storage |
overview |
The daemon contacts the remote media archive and retrieves audio clips referenced by active playlists. The clips are stored locally for playing. |
references |
F1.2 |
Note that this use case is somewhat reversed, as it is
initiated by the system (not an actor), and the main tasks are done
by an external actor (the Media archive).
actor action |
system response |
||
---|---|---|---|
1. |
An Internal actor triggers the retrieval of some remote files. |
2. |
The system looks up the URN of the remote file, and determines the Media archive to contact regarding the file. |
|
|
3. |
The system contacts the Local storage and sends authorization information |
4. |
Local storage authenticates the system and grants access |
5. |
The system iniquires the local storage about the availability of the file to download in the Local storage by presenting its unique ID |
6. |
Local storage tells if the required file is already stored or not. |
7. |
If the file is available in the local storage, the use case ends. Otherwise, it continues. |
|
|
8. |
The system contacts the Media archive and sends authorization information |
9. |
Media archive authenticates the system and grants access |
10. |
The system requests an audio clip by presenting its unique ID |
11. |
Media archive looks up the file, and presents it to the system |
12. |
The system retrieves the file and closes the connection to the Media archive |
|
|
13. |
The system presents the file to Local storage |
14. |
Local storage stores the file under the specified unique ID |
15. |
The system closes the connection to Local storage. |
|
|
|
|
action 4: the Local storage finds that the system can not be authenticated. the system is notified and the use case ends.
action 9: the Media archive finds that the system can not be authenticated. the system is notified and the use case ends.
action 11: the Media archive does not hold the requested audio clip. the system is notified and the use case ends.
ref# |
UC-5 |
use case |
Review play log |
type |
secondary, essential |
actors |
Broadcast auditor |
purpose |
Review what has been played |
overview |
The Broadcast auditor reviews the audio clips that have been played in a selected time interval. He may generate reports for proof of broadcast reasons. |
references |
F1.4 |
actor action |
system response |
||
---|---|---|---|
1. |
Broadcast auditor connects to the scheduler daemon with the intent of reviewing what has been played. |
|
|
2. |
The Broadcast auditor provides authentication information |
3. |
The system authenticates the Broadcast auditor and grants access. |
3. |
The Broadcast auditor browses through the play log in a time-ordered manner. |
4. |
The system displays the play log entries. |
5. |
The Broadcast auditor requests a play report for a given time period. |
6. |
The system displays the requested report. |
7. |
The Broadcast auditor disconnects. |
|
|
|
|
|
|
action 3: the system finds that the user can not be authenticated. the user is notified and the use case ends.
ref# |
UC-6 |
use case |
Create playlist |
type |
secondary, essential |
actors |
Playlist editor |
purpose |
Create a new playlist, and then edit it. |
overview |
The Playlist editor connects to the Scheduler with the aim of creating a new playlist. A basic user interface is provided, which allows professionals to create and edit the playlsits on the system. |
references |
F1.12, F1.13 |
actor action |
system response |
||
---|---|---|---|
1. |
Playlist editor connects to the scheduler with the intent of creating a new playlist. |
|
|
2. |
The Playlist editor provides authentication information |
3. |
The system authenticates the Playlist editor and grants access. |
4. |
The Playlist editor signals that he whishes for a new playlist |
5. |
The system creates a new, empty playlist, and opens it for editing. |
6. |
The Playlist editor edits the new playlist. See UC-7 actions 7-15 for details. |
|
|
7. |
The Playlist editor disconnects. |
|
|
|
|
|
|
action 3: the system finds that the user can not be authenticated. the user is notified and the use case ends.
ref# |
UC-7 |
use case |
Edit playlist |
type |
secondary, essential |
actors |
Playlist editor |
purpose |
Edit a previoulsy uploaded playlist |
overview |
The Playlist editor connects to the Scheduler with the aim of either editing an existing playlist. A basic user interface is provided, which allows professionals to edit the playlsits on the system. |
references |
F1.12 |
actor action |
system response |
||
---|---|---|---|
1. |
Playlist editor connects to the scheduler with the intent of editing a playlist. |
|
|
2. |
The Playlist editor provides authentication information |
3. |
The system authenticates the Playlist editor and grants access. |
|
|
4. |
The system lists the available playlists. |
5. |
The Playlist editor selects a playlist for editing. |
6. |
The system opens the playlist in editing mode. |
7. |
The Playlist editor browses the available Audio clips |
8. |
The system shows the list of available audio clips |
9. |
The Playlist editor selects an Audio clip |
10. |
The system displays details on the audio clip. |
11. |
The Playlist editor ads a new audio clip to the playlist, at a certain timepoint in the playlist. |
12. |
The new audio clip is added to the playlist. |
13. |
The Playlist editor removes an audio clip from the playlist. |
14. |
The audio clip is removed from the playlist. |
15. |
The Playlist editor edits the fade-in or fade-out of a clip in the playlist. |
16. |
The fade-in or fade-out is edited. |
17. |
The Playlist editor saves the playlist. |
18. |
The playlist is validated. |
|
|
19. |
The playlist is saved. |
20. |
The Playlist editor disconnects. |
|
|
action 3: the system finds that the user can not be authenticated. the user is notified and the use case ends.
action 6: the selected playlist is currently being executed. the user is notified that executing playlists can not be edited and the use case ends.
action 17: the user decides not to save the playlist, but to revert to the version prior to editing. the playlist is reverted, and is shown to the user in non-edit mode.
action 18: the playlist turns out not be valid. the user is notified that such a playlist can not be saved, and is given an opportunity to further edit the playlist. validation errors are also shown.
ref# |
UC-8 |
use case |
Start/stop scheduler |
type |
primary, essential |
actors |
Administrator |
purpose |
Start and stop the scheduler daemon |
overview |
The adminisitrator starts the scheduler deamon by invoking a System V init-style startup script. He may also stop the deamon with the same script. |
references |
F1.14, F1.15, A1.8 |
actor action |
system response |
||
---|---|---|---|
1. |
The Administrator invokes the scheduler's System V init script with the start parameter |
|
|
|
|
2. |
The scheduler daemon starts up. |
3. |
The Administrator checks to see if the scheduler daemon is running |
4. |
The scheduler daemon reports that it is running. |
5. |
The Administrator stops the scheduler deamon. |
6. |
The scheduler daemon stops. |
action 2: if the scheduler is already running, indicate the starting attempt as an error.
action 4: if the scheduler daemon is not running, it is reported that it is not running.
action 6: if the scheduler daemon is not running, it is not stopped.
The following figure displays the semantic concepts identified for
the Scheduler daemon, and the main associations between the
concepts.
concept |
description |
---|---|
Media archive |
An archive external to the system, which holds Audio clips. The archive offers its clips for download by requesting clips based on their unique ids. |
Clip retriever |
Retrieves Audio clips from the Media archive and stores them in local storage. |
Local storage |
A local store of Audio clips. Provides access to each clip based on the clips' unique id. Allows random access to the clip files. |
Audio clip |
A uniquely identified audio file. |
Playlist |
A metafile, containing references to Audio clips, and information on how the clips should be played. |
PlaylistElement |
An association class describing the specifics of an instance of an Audio clip in a playlist. |
FadeInfo |
A class describing fade in or fade out characteristics for an Audio clip in a Playlist |
Playlist store |
A container holding a range of playlists. |
Schedule |
Contains Schedule entries |
Schedule entry |
Contains the time and details of when a playlist should be played. |
Scheduler daemon |
Executes playlists at timepoints specified by the schedule. |
Play log |
A logging facility, holding Play log entries. |
Play log entry |
A record of when an Audio clip was played. |
Play report |
An audit report of what Audio clips have been played in a certain time period |
Authentication |
Provides authentication services |
Playlist editor |
An external editor, managing playlists. |
Broadcast auditor |
An external auditor, browsing the Play log. |
Administrator |
The administrator responsible for starting and stopping the scheduler daemon. |
|
|
source |
association |
target |
description |
---|---|---|---|
Clip retriever |
Retrieves clips from |
Media archive |
|
Media archive |
Contains |
Audio clip |
|
Clip retriever |
Stores clips in |
Local storage |
|
Local storage |
Contains |
Audio clip |
|
Playlist |
References by PlaylistElement |
Audio clip |
|
PlaylistElement |
Fades in with |
FadeInfo |
|
PlaylistElement |
Fades out with |
FadeInfo |
|
Playlist store |
Contains |
Play list |
|
Playlist editor |
Uploads playlist to |
Playlist store |
|
Playlist editor |
Manages schedule in |
Schedule |
The Playlist editor schedules playlists. |
Schedule |
Contains |
Schedule entry |
|
Schedule entry |
References |
Playlist |
|
Scheduler daemon |
Executes |
Schedule |
The Scheduler daemon plays the scheduled playlists. |
Scheduler daemon |
Logs into |
Play log |
The Scheduler daemon logs all the played audio clips into the Play log for proof of broadcast purposes. |
Play log |
Contains |
Play log entry |
|
Play log |
Generated |
Play report |
The play log generates reports based on Play log entries. |
Play log entry |
References |
Audio clip |
|
Broadcast auditor |
Browses entries from |
Play log |
|
Broadcast auditor |
Requests |
Play report |
|
Playlist editor |
Is authenticated by |
Authentication |
|
Broadcast auditor |
Is authenticated by |
Authentication |
|
Administrator |
Manages |
Scheduler daemon |
|
|
|
|
|
The behavior of the system as a whole as experienced from the outside is discussed in this section.
System diagrams are presented for each use case below.
The following figures shows the system objects and their functions, as derived from the system sequence diagrams.
For all operations exposed in the system sequence diagrams, the following contracts are defined.
See Authentication : authenticate
Name |
uploadPlaylist |
|
Responsibilities |
Upload a playlist and put it into the schedule. |
|
Type |
system |
|
Cross-reference |
F1.1, UC-1 |
|
Notes |
|
|
Exceptions |
If the uploaded playlist is not valid, indicate as an error |
|
Output |
the unique id of the ScheduleEntry created with this upload |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
A new Playlist is created, storing the uploaded playlist |
instance creation |
|
Playlist is entered into the Playlist store |
association formed |
|
A new Schedule is created, according to the supplied schedule |
instance creation |
|
Schedule is associated with the Playlist |
association formed |
|
|
|
Name |
displaySchedule |
|
Responsibilities |
Display Schedule entries for a time period. |
|
Type |
system |
|
Cross-reference |
F1.4, UC-2 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
The Schedule entries for the specified time period. |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
displayPlaylist |
|
Responsibilities |
Display a specific playlist |
|
Type |
system |
|
Cross-reference |
F1.4, UC-3 |
|
Notes |
|
|
Exceptions |
If no playlist exists for the specified playlistId, indicate as an error. |
|
Output |
The requested playlist. |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
deletePlaylist |
|
Responsibilities |
Delete a specific playlist |
|
Type |
system |
|
Cross-reference |
F1.11, UC-3 |
|
Notes |
|
|
Exceptions |
If no playlist exists for the specified playlistId, indicate as
an error. |
|
Output |
none |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
The playlist is removed from the Playlist store. |
association broken |
|
References by the playlist to Audio clips removed |
association broken |
|
The playlist is deleted |
instance deletion |
|
|
|
Name |
removeFromSchedule |
|
Responsibilities |
Remove a specific playlist from a schedule entry |
|
Type |
system |
|
Cross-reference |
F1.9, UC-2 |
|
Notes |
|
|
Exceptions |
If no ScheduleEntry by the specified scheduleEntryId exist, indicate as an error. |
|
Output |
true if the specified entry was removed, false if it did not exist. |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
Reference to the playlist by the scheduleEntry is removed. |
association broken |
|
The ScheduleEntry specified by the scheduleEntryId is deleted |
instance deletion |
|
|
|
Name |
reschedule |
|
Responsibilities |
Change when a certain playlist is scheduled to play. |
|
Type |
system |
|
Cross-reference |
F1.10, UC-2 |
|
Notes |
|
|
Exceptions |
If no ScheduleEntry by the specified scheduleEntryId exist,
indicate as an error. |
|
Output |
false on errors |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
The time attribute of scheduleEntry is updated to the supplied playtime. |
attribute modification |
|
|
|
Name |
displayPlaylists |
|
Responsibilities |
Display Playlists contained in the Playlist store |
|
Type |
system |
|
Cross-reference |
F1.4, UC-3 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
The playlists contained in the Playlist store. |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
displayPlayLog |
|
Responsibilities |
Display Play log entries contained in the Play log |
|
Type |
system |
|
Cross-reference |
F1.4, UC-5 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
The play log entries contained in the Play log. |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
generatePlayReport |
|
Responsibilities |
Present a report on what Audio clips have been played to the Broadcast auditor. |
|
Type |
system |
|
Cross-reference |
F1.4, UC-5 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
A report on the played Audio clips played in the specified time period. |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
createPlaylist |
|
Responsibilities |
Create a new playlist |
|
Type |
system |
|
Cross-reference |
F1.12, UC-6 |
|
Notes |
A new playlist is created, and is immediately locked for editing. |
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
A new Playlist is created |
instance creation |
|
The lockedForEditing attribute is set to true for the playlist |
attribute modification |
|
The playlist is added to the Playlist store |
association formed |
|
|
|
Name |
openPlaylistForEditing |
|
Responsibilities |
Open a playlist for editing |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
A playlist is opened for editing. The playlist may not be played when being edited. Also, active (currently executing) playlists may not be opened for editing. This is in effect a lock, which is released by saving the playlist. |
|
Exceptions |
if the playlist is currently being executed, indicate as an error. |
|
Output |
none |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
The current version of the playlist is stored, in case the user wants to revert to the last saved version (see revertEditedPlaylist) |
instance creation |
|
The lockedForEditing attribute is set to true for the playlist |
attribute modification |
|
|
|
Name |
addAutioClipToPlaylist |
|
Responsibilities |
Add an Audio clip to a Playlist |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
The Audio clip is added to the playlist with the specified relativeOffset from the beginning of the Playlist. |
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
the Playlist is currently opened for editing |
|
Post-conditions |
condition |
type |
|
The new PlaylistElement is created associating the playlist with the audio clip, with the specified relativeOffset |
association formed, instnace creation |
|
|
|
Name |
displayAudioClips |
|
Responsibilities |
Display the audio clips known to the Scheduler |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
none |
|
Exceptions |
none |
|
Output |
The Audio clips kown to the Scheduler |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
displayAudioClip |
|
Responsibilities |
Display the audio clip specified by the audioClipId |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
none |
|
Exceptions |
if no audio clip by the specified id exists, indicate as an error |
|
Output |
The Audio clip specified by the audioClipId |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
removeAutioClipFromPlaylist |
|
Responsibilities |
Remove an Audio clip at the given relative offset from a Playlist |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
The Audio clip is removed from the Playlist. |
|
Exceptions |
If there is no Audio clip at the specified relative offset in the playlist, indicate as an error. |
|
Output |
none |
|
Pre-conditions |
the Playlist is currently opened for editing |
|
Post-conditions |
condition |
type |
|
The PlaylistElement associating the AudioClip with the Playlist is removed, with the related FadeInfo instances |
instance deletion, association broken |
|
|
|
Name |
updateFadeInFadeOut |
|
Responsibilities |
Update the fade-in and fade-out parameters for an audio clip playing in a playlist. |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
none |
|
Exceptions |
If the Audio clip is not in the playlist, indicate as an error. |
|
Output |
none |
|
Pre-conditions |
the Playlist is currently opened for editing |
|
Post-conditions |
condition |
type |
|
The fade-in and fade-out parameters for the audio clip in the playlist are updated |
attribute modification |
|
|
|
Name |
validatePlaylist |
|
Responsibilities |
Validate a playlist for being complete. |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
The playlist is checked for being complete (not containing silence) and other sanity criteria. |
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
savePlaylist |
|
Responsibilities |
The playlist is saved. |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
none |
|
Exceptions |
If the playlist is not valid, indicate as an error. |
|
Output |
none |
|
Pre-conditions |
the Playlist is currently opened for editing |
|
Post-conditions |
condition |
type |
|
The lockedForEditing attriubute is set to false for the playlist |
attribute modification |
|
The old version of the Playlist that could have been used for reverting is deleted (see revertEditedPlaylist) |
instance deletion |
|
|
|
Name |
revertEditedPlaylist |
|
Responsibilities |
Changes are discarded for a Playlist that is being edited. |
|
Type |
system |
|
Cross-reference |
F1.13, UC-7 |
|
Notes |
The contents of the playlist are reverted to the state prior to when editing began on it. |
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
the Playlist is currently opened for editing |
|
Post-conditions |
condition |
type |
|
The contents of the Playlist are reverted to the last saved version. This includes deleting all created PlaylistElement and FadeInfo instances. |
attribute modification, instance deletion |
|
The lockedForEditing attriubute is set to false for the playlist |
attribute modification |
|
|
|
Name |
start |
|
Responsibilities |
Starts the scheduler daemon |
|
Type |
system |
|
Cross-reference |
F1.14, UC-8 |
|
Notes |
A System V init-style daemon starting entry point |
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
The scheduler daemon is currently not running |
|
Post-conditions |
condition |
type |
|
The scheduler daemon object is created |
instance creation |
|
All the necessary structures are created for the deamon to run |
instance creation |
|
|
|
Name |
isRunning |
|
Responsibilities |
Tells if the scheduler daemon is running |
|
Type |
system |
|
Cross-reference |
UC-8 |
|
Notes |
A System V init-style daemon status entry point |
|
Exceptions |
none |
|
Output |
true of the daemon is running, false otherwise |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
Name |
stop |
|
Responsibilities |
Stops the scheduler daemon |
|
Type |
system |
|
Cross-reference |
F1.15, UC-8 |
|
Notes |
A System V init-style daemon stopping entry point |
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
The scheduler daemon is currently running |
|
Post-conditions |
condition |
type |
|
The scheduler daemon object is deleted |
instance deletion |
|
|
|
TODO: move to Media archive spec
Name |
authenticate |
|
Responsibilities |
Check if the provided authentication info is recognized. |
|
Type |
interface |
|
Cross-reference |
UC-4 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
true if the provided authentication is recognized, false otherwise |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
TODO: move to Media archive spec
Name |
retrieveAudioClip |
|
Responsibilities |
Retrieve an AudioClip specified by the supplied audio clip id. |
|
Type |
interface |
|
Cross-reference |
F1.2, UC-4 |
|
Notes |
|
|
Exceptions |
if no audio clip exists with the supplied id, indicate as an error |
|
Output |
the requested audio clip |
|
Pre-conditions |
none |
|
Post-conditions |
condition |
type |
|
A new Audio clip is created and filled with the contents of the retrieved audio clip |
instance creation |
|
Audio clip is entered into Local storage |
association formed |
|
|
|
TODO: move to Local storage spec
Name |
authenticate |
|
Responsibilities |
Check if the provided authentication info is recognized. |
|
Type |
interface |
|
Cross-reference |
UC-4 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
true if the provided authentication is recognized, false otherwise |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
TODO: move to Local storage spec
Name |
existsAudioClip |
|
Responsibilities |
Tell if an audio clip by the provided unique id is stored in the Local storage |
|
Type |
interface |
|
Cross-reference |
UC-4 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
true if an audio clip with the provided id exists, false otherwise |
|
Pre-conditions |
none |
|
Post-conditions |
none |
|
|
|
|
TODO: move to Local storage spec
Name |
storeAudioClip |
|
Responsibilities |
Store an audio clip. |
|
Type |
interface |
|
Cross-reference |
UC-4 |
|
Notes |
|
|
Exceptions |
none |
|
Output |
none |
|
Pre-conditions |
none |
|
Post-conditions |
The supplied audio clip is stored in the storage. |
|
|
|
|
playlist
The playlist is a metafile, containing
references to audio clips that should be played, and details on how
they should be played.