diff --git a/livesupport/doc/model/Scheduler/index.html b/livesupport/doc/model/Scheduler/index.html index f8ea22bfd..b19fa7456 100644 --- a/livesupport/doc/model/Scheduler/index.html +++ b/livesupport/doc/model/Scheduler/index.html @@ -1,4211 +1,5785 @@ - - -
- -| 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 - |
-
- |
- - |
- - |
-
| 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 - |
-
- |
- - |
- - |
- - |
-
| 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 -F1.15 - |
- 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 - |
-
- |
- - |
- - |
- - |
- - |
- - |
-
| 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. | - - |
- - |
-
| - |
- - |
- - |
- - |
-
| 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. - |
- - |
- - |
-
| 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. - |
- - |
- - |
-
| 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 | -
| 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. - |
-
| - |
- - |
- - |
- - |
-
| 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. - |
- - |
- - |
-
- |
- - |
- - |
- - |
-
| 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. - |
- - |
- - |
-
- |
- - |
- - |
- - |
-
| 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. - |
- - |
- - |
-
| 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. - |
-
| 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 - |
- - |
-
- |
- - |
- - |
- - |
-
| Name - |
- uploadPlaylist -(playlist : Playlist, -playtime: Schedule) -: UniqueId - |
- |
| 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 -If the proposed schedule conflicts with existing schedules, 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 -(from : TimeStamp, -to : TimeStamp) -: Schedule - |
- |
| 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 -(playlistId : UniqueId) -: Playlist - |
- |
| 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 -(playlist : Playlist) -: void - |
- |
| 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. -If the playlist is referenced by any Schedule entry, 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 -(scheduleEntryId : UniqueId) -: bool - |
- |
| 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 -(scheduleEntryId : UniqueId, -playtime : TimeStamp) -: bool - |
- |
| 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. -If the new playtime conflicts with other schedule entries, 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 -() -: Playlist - |
- |
| 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 -() -: Play log - |
- |
| 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 -(from : TimeStamp, -to : TimeStamp) -: Play report - |
- |
| 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 -() -: Playlist - |
- |
| 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 -(playlist : Playlist) -: void - |
- |
| 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 -(playlist : Playlist, -audioClip : AudioClip, -relativeOffset : Time) -: void - |
- |
| 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 -() -: AudioClip - |
- |
| 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 -(audioClipId : UniqueId) -: AudioClip - |
- |
| 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 -(playlist : Playlist, -audioClip : AudioClip) -: void - |
- |
| Responsibilities - |
- Remove an Audio clip
-from a Playlist - |
- |
| Type - |
- system - |
- |
| Cross-reference - |
- F1.13, UC-7 - |
- |
| Notes - |
- The Audio clip is
-removed from the Playlist. - |
- |
| 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 PlaylistElement associating the AudioClip
-with the Playlist is removed, with the related FadeInfo instances - |
- instance deletion, association broken - |
-
- |
- - |
- - |
-
| Name - |
- updateFadeInFadeOut -(audioClip : AudioClip, -playlist : Playlist) -: void - |
- |
| 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 -(playlist : Playlist) -: boolean - |
- |
| 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 -(playlist : Playlist) -: void - |
- |
| 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 -(playlist : Playlist) -: void - |
- |
| 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 -() -: void - |
- |
| 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 -() -: boolean - |
- |
| 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 -() -: void - |
- |
| 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 - |
-
- |
- - |
- - |
-
| Name - |
- authenticate -(authenticationInfo : AuthenticationInfo) -: boolean - |
- |
| 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 - |
- - |
-
- |
- - |
- - |
-
| Name - |
- retrieveAudioClip -(clipId : UniqueId) -: AudioClip - |
- |
| 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 - |
-
- |
- - |
- - |
-
| Name - |
- authenticate -(authenticationInfo : AuthenticationInfo) -: boolean - |
- |
| 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 - |
- - |
-
- |
- - |
- - |
-
| Name - |
- existsAudioClip -(audioClipId : UniqueId) -: boolean - |
- |
| 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 - |
- - |
-
- |
- - |
- - |
-
| Name - |
- storeAudioClip -(audioClip : AudioClip) -: void - |
- |
| 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. - |
- - |
-
- |
- - |
- - |
-
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.