5785 lines
89 KiB
HTML
5785 lines
89 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
|
|
<TITLE>LiveSupport Scheduler specifications</TITLE>
|
|
<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.2 (Linux)">
|
|
<META NAME="AUTHOR" CONTENT="Ákos Maróy">
|
|
<META NAME="CREATED" CONTENT="20041015;13061300">
|
|
<META NAME="CHANGED" CONTENT="20041015;13093000">
|
|
</HEAD>
|
|
<BODY LANG="en-US" DIR="LTR">
|
|
<H1>Preface</H1>
|
|
<P>This document is part of the <A HREF="http://livesupport.campware.org/">LiveSupport</A>
|
|
project, Copyright Š 2004 <A HREF="http://www.mdlf.org/">Media
|
|
Development Loan Fund</A>, under the GNU <A HREF="http://www.gnu.org/licenses/gpl.html">GPL</A>.</P>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in">Author: $Author: fgerlits $
|
|
</P>
|
|
<LI><P STYLE="margin-bottom: 0in">Version: $Revision: 1.4 $
|
|
</P>
|
|
<LI><P>Location: $Source:
|
|
/home/cvs/livesupport/doc/model/Scheduler/index.html,v $
|
|
</P>
|
|
</UL>
|
|
<H1>Scope</H1>
|
|
<P>This document contains the specification of the LiveSupport
|
|
Scheduler daemon.<BR><BR>This document contains embedded <A HREF="http://www.w3.org/Graphics/SVG/">SVG</A>
|
|
figures, thus an SVG capable browser is needed to view it, or an SVG
|
|
plugin like <A HREF="http://www.adobe.com/svg/">Adobe's SVG Viewer</A>.</P>
|
|
<H1>Requirements</H1>
|
|
<H2>Overview</H2>
|
|
<P>The purpose of the LiveSupport Scheduler daemon is to execute
|
|
playlists.</P>
|
|
<H2>Goals</H2>
|
|
<P>The scheduler daemon is a remotely accessible service accepting
|
|
playlists on a local audio interface. Specific goals include:</P>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in">remote manageability
|
|
</P>
|
|
<LI><P STYLE="margin-bottom: 0in">handling remote audio clips
|
|
referenced by playlists
|
|
</P>
|
|
<LI><P>low-latency playback
|
|
</P>
|
|
</UL>
|
|
<H2>System functions</H2>
|
|
<P STYLE="margin-bottom: 0in">The main system functions are described
|
|
below. There are three categories for these functions:</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH>
|
|
<P>function category</P>
|
|
</TH>
|
|
<TH>
|
|
<P>meaning</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Should perform, and the user should be cognizant that it is
|
|
performed</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>hidden</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Should perform, but not visible to the users.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>frill</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Optional</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH>
|
|
<P>ref#</P>
|
|
</TH>
|
|
<TH>
|
|
<P>function</P>
|
|
</TH>
|
|
<TH>
|
|
<P>category</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.1</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Accept uploaded playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.2</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Retrieve remote files referenced by playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>hidden</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.3</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Access local files</P>
|
|
</TD>
|
|
<TD>
|
|
<P>hidden</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.4</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Provide status information</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.5</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Log playlist execution for proof of broadcast reasons</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.6</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Purge local file storage of unused audio clips</P>
|
|
</TD>
|
|
<TD>
|
|
<P>hidden</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.7</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Execute playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.8</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play live streams as part of the playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>hidden</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.9</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Remove playists from the schedule</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.10</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Re-schedule playlsits</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.11</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Delete playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.12</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Create playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.13</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Edit playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.14</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Start the scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.15</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Stop the scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P>evident</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H2>System attributes</H2>
|
|
<P>Generic attributes</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH>
|
|
<P>ref#</P>
|
|
</TH>
|
|
<TH>
|
|
<P>attribute</P>
|
|
</TH>
|
|
<TH>
|
|
<P>details and constraints</P>
|
|
</TH>
|
|
<TH>
|
|
<P>category</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>A1.1</P>
|
|
</TD>
|
|
<TD>
|
|
<P>operating system platform</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Linux</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>A1.2</P>
|
|
</TD>
|
|
<TD>
|
|
<P>supported audio interfaces</P>
|
|
</TD>
|
|
<TD>
|
|
<P>ALSA (maybe also OSS?)</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>A1.3</P>
|
|
</TD>
|
|
<TD>
|
|
<P>supported playlist format</P>
|
|
</TD>
|
|
<TD>
|
|
<P>SMIL 2.0. only partial support is required, which focuses only
|
|
on audio aspects of SMIL.</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>A1.4</P>
|
|
</TD>
|
|
<TD>
|
|
<P>supported audio clip formats</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Ogg Vorbis, mp3, wav</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR>Attributes related to system functions</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH>
|
|
<P>ref#</P>
|
|
</TH>
|
|
<TH>
|
|
<P>function</P>
|
|
</TH>
|
|
<TH>
|
|
<P>ref#</P>
|
|
</TH>
|
|
<TH>
|
|
<P>attribute</P>
|
|
</TH>
|
|
<TH>
|
|
<P>details and constraints</P>
|
|
</TH>
|
|
<TH>
|
|
<P>category</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.7</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Execute playlists</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A1.5</P>
|
|
</TD>
|
|
<TD>
|
|
<P>low latency</P>
|
|
</TD>
|
|
<TD>
|
|
<P>when executing playlists, very low latency should be achieved</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A1.6</P>
|
|
</TD>
|
|
<TD>
|
|
<P>handle time skew</P>
|
|
</TD>
|
|
<TD>
|
|
<P>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.</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.8</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play live streams as part of the playlist
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A1.7</P>
|
|
</TD>
|
|
<TD>
|
|
<P>supported audio stream formats</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Ogg Vorbis via HTTP, mp3 via HTTP</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>F1.14<BR>F1.15</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Start / stop the scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A1.8</P>
|
|
</TD>
|
|
<TD>
|
|
<P>provide System V init style services</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Provide a System V init interface to starting and stopping the
|
|
scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P>must</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H2>Essential use cases</H2>
|
|
<P>This section lists generic (essential) uses cases, that do not
|
|
contain architecture-specific considerations.</P>
|
|
<H3>UC-1 Upload playlist</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-1
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Upload playlist
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>primary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Upload a playlist
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor uploads a new playlist.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.1
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor connects to the scheduler daemon with the
|
|
intent of uploading a new playlist.
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor provides authentication information
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system authenticates the Playlist editor and grants access.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>4.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor presents the new playlist and the intended
|
|
schedule for the playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>5.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system validates the new playlist, and sees that it does
|
|
not conflict with existing schedule.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>6.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system stores the new playlist, adds it to the schedule,
|
|
and sends confirmation to the Playlist editor.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>7.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor receives confirmation and disconnects.
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
|
|
that the user can not be authenticated. the user is notified and the
|
|
use case ends.</P>
|
|
<LI><P><B>action 5:</B> the system finds that the uploaded playlist
|
|
is invalid, or it conflicts the existing schedule. the user is
|
|
notified and the use case ends.</P>
|
|
</UL>
|
|
<H3>UC-2 Manage schedule</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-2
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Manage schedule
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>primary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>View the schedule and remove or re-schedule playlists</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor reviews the schedule. If he decides to, he
|
|
might remove or re-schedule some of these playlists.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.4, F1.9, F1.10</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor connects to the scheduler daemon with the
|
|
intent of viewing and editing the schedule.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor provides authentication information
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system authenticates the Playlist editor and grants access.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system shows the Schedule to the Playlist editor</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor browses the Schedule, selects a playlist
|
|
for detailed viewing.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system shows the details of the selected Playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>7.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist editor removes a playlist from the schedule.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>8.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system removes the playlist from the schedule, than
|
|
re-displays the updated schedle.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>9.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor re-schedules a playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>10.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system removes the selected playlist from the schedule, and
|
|
re-enters it at a new timepoint</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>11.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor browses the Schedule</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>12.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system shows the Schedule to the playlist editor</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>13.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor disconnects.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
|
|
that the user can not be authenticated. the user is notified and the
|
|
use case ends.
|
|
</P>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 8:</B> the user tries to
|
|
remove a non-existent playlist from the schedule. the user is
|
|
notified, and the schedule is displayed to the user.
|
|
</P>
|
|
<LI><P><B>action 10:</B> the new playtime for the schedule conflicts
|
|
with already scheduled playlist playtimes. the user is notified, and
|
|
the schedule is displayed again</P>
|
|
</UL>
|
|
<H3>UC-3 Manage playlists</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-3
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Manage playlists
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>primary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>View and delete playlists
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor reviews the uploaded playlists. If he
|
|
decides so, he might delete some of these playlists.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.4, F1.11</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor connects to the scheduler daemon with the
|
|
intent of viewing and deleting playlists.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor provides authentication information
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system authenticates the Playlist editor and grants access.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system lists the available Playlists</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor browses the playlists, and selects one for
|
|
detailed viewing.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system shows the details of the selected Playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>7.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist editor deletes a playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>8.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system deletes the playlist, than re-displays the list of
|
|
available Playlists.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>9.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor disconnects.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
|
|
that the user can not be authenticated. the user is notified and the
|
|
use case ends.
|
|
</P>
|
|
<LI><P><B>action 8:</B> 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.</P>
|
|
</UL>
|
|
<H3>UC-4 Retrieve remote files</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-4
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Retrieve remote files
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>primary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>(internal actor, initiator), Media archive, Local storage</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Retrieve remote files referenced by active playlists and store
|
|
them in the local storage</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The daemon contacts the remote media archive and retrieves
|
|
audio clips referenced by active playlists. The clips are stored
|
|
locally for playing.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.2
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR>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).</P>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>An Internal actor triggers the retrieval of some remote files.
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system looks up the URN of the remote file, and determines
|
|
the Media archive to contact regarding the file.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system contacts the Local storage and sends authorization
|
|
information</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Local storage authenticates the system and grants access</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system iniquires the local storage about the availability
|
|
of the file to download in the Local storage by presenting its
|
|
unique ID</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Local storage tells if the required file is already stored or
|
|
not.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>7.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>If the file is available in the local storage, the use case
|
|
ends. Otherwise, it continues.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>8.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system contacts the Media archive and sends authorization
|
|
information
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>9.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Media archive authenticates the system and grants access
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>10.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system requests an audio clip by presenting its unique ID
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>11.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Media archive looks up the file, and presents it to the system
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>12.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system retrieves the file and closes the connection to the
|
|
Media archive</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>13.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system presents the file to Local storage</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>14.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Local storage stores the file under the specified unique ID</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>15.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system closes the connection to Local storage.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 4:</B> the Local storage
|
|
finds that the system can not be authenticated. the system is
|
|
notified and the use case ends.
|
|
</P>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 9:</B> the Media archive
|
|
finds that the system can not be authenticated. the system is
|
|
notified and the use case ends.
|
|
</P>
|
|
<LI><P><B>action 11:</B> the Media archive does not hold the
|
|
requested audio clip. the system is notified and the use case ends.</P>
|
|
</UL>
|
|
<H3>UC-5 Review play log</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-5
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Review play log
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>secondary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Broadcast auditor
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Review what has been played
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>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.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.4
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Broadcast auditor connects to the scheduler daemon with the
|
|
intent of reviewing what has been played.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Broadcast auditor provides authentication information
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system authenticates the Broadcast auditor and grants
|
|
access.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>3.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Broadcast auditor browses through the play log in a
|
|
time-ordered manner.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system displays the play log entries.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Broadcast auditor requests a play report for a given time
|
|
period.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system displays the requested report.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>7.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Broadcast auditor disconnects.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P><B>action 3:</B> the system finds that the user can not be
|
|
authenticated. the user is notified and the use case ends.
|
|
</P>
|
|
</UL>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3>UC-6 Create playlist</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-6
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Create playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>secondary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Create a new playlist, and then edit it.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>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.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.12, F1.13</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor connects to the scheduler with the intent of
|
|
creating a new playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor provides authentication information
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system authenticates the Playlist editor and grants access.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor signals that he whishes for a new playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system creates a new, empty playlist, and opens it for
|
|
editing.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor edits the new playlist. See UC-7 actions
|
|
7-15 for details.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>7.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor disconnects.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P><B>action 3:</B> the system finds that the user can not be
|
|
authenticated. the user is notified and the use case ends.
|
|
</P>
|
|
</UL>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3>UC-7 Edit playlist</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-7
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Edit playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>secondary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Edit a previoulsy uploaded playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>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.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.12
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist editor connects to the scheduler with the intent of
|
|
editing a playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor provides authentication information
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>3.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system authenticates the Playlist editor and grants access.
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system lists the available playlists.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor selects a playlist for editing.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system opens the playlist in editing mode.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>7.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor browses the available Audio clips</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>8.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system shows the list of available audio clips</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>9.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor selects an Audio clip</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>10.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The system displays details on the audio clip.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>11.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor ads a new audio clip to the playlist, at a
|
|
certain timepoint in the playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>12.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The new audio clip is added to the playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>13.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor removes an audio clip from the playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>14.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The audio clip is removed from the playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>15.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor edits the fade-in or fade-out of a clip in
|
|
the playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>16.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The fade-in or fade-out is edited.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>17.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor saves the playlist.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>18.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist is validated.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>19.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist is saved.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>20.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor disconnects.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 3:</B> the system finds
|
|
that the user can not be authenticated. the user is notified and the
|
|
use case ends.
|
|
</P>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 6:</B> the selected
|
|
playlist is currently being executed. the user is notified that
|
|
executing playlists can not be edited and the use case ends.
|
|
</P>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 17:</B> 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.</P>
|
|
<LI><P><B>action 18:</B> 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.
|
|
</P>
|
|
</UL>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3>UC-8 Start/stop scheduler</H3>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>ref#</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>UC-8
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>use case</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Start/stop scheduler</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>type</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>primary, essential
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>actors</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Administrator</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>purpose</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Start and stop the scheduler daemon</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>overview</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>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.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>references</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>F1.14, F1.15, A1.8</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<H4>Typical course of events</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH COLSPAN=2>
|
|
<P>actor action
|
|
</P>
|
|
</TH>
|
|
<TH COLSPAN=2>
|
|
<P>system response
|
|
</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>1.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Administrator invokes the scheduler's System V init script
|
|
with the start parameter</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>2.</B>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The scheduler daemon starts up.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>3.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Administrator checks to see if the scheduler daemon is
|
|
running</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>4.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The scheduler daemon reports that it is running.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>5.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Administrator stops the scheduler deamon.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><B>6.</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The scheduler daemon stops.</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Alternate courses</H4>
|
|
<UL>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 2:</B> if the scheduler
|
|
is already running, indicate the starting attempt as an error.</P>
|
|
<LI><P STYLE="margin-bottom: 0in"><B>action 4:</B> if the scheduler
|
|
daemon is not running, it is reported that it is not running.</P>
|
|
<LI><P><B>action 6:</B> if the scheduler daemon is not running, it
|
|
is not stopped.</P>
|
|
</UL>
|
|
<H2>Conceptual model</H2>
|
|
<P>The following figure displays the semantic concepts identified for
|
|
the Scheduler daemon, and the main associations between the
|
|
concepts.<BR><BR><BR>
|
|
</P>
|
|
<H3>Concepts</H3>
|
|
<P STYLE="margin-bottom: 0in"><BR>
|
|
</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH>
|
|
<P>concept</P>
|
|
</TH>
|
|
<TH>
|
|
<P>description</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Media archive</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>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.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Clip retriever</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Retrieves Audio clips from the Media archive and stores them in
|
|
local storage.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Local storage</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A local store of Audio clips. Provides access to each clip
|
|
based on the clips' unique id. Allows random access to the clip
|
|
files.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Audio clip</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A uniquely identified audio file.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Playlist</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A metafile, containing references to Audio clips, and
|
|
information on how the clips should be played.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>PlaylistElement</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>An association class describing the specifics of an instance of
|
|
an Audio clip in a playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>FadeInfo</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A class describing fade in or fade out characteristics for an
|
|
Audio clip in a Playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Playlist store</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A container holding a range of playlists.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Schedule</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains Schedule entries</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Schedule entry</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains the time and details of when a playlist should be
|
|
played.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Scheduler daemon</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Executes playlists at timepoints specified by the schedule.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Play log</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A logging facility, holding Play log entries.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Play log entry</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>A record of when an Audio clip was played.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Play report</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>An audit report of what Audio clips have been played in a
|
|
certain time period</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Authentication</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>Provides authentication services</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Playlist editor</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>An external editor, managing playlists.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Broadcast auditor</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>An external auditor, browsing the Play log.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Administrator</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The administrator responsible for starting and stopping the
|
|
scheduler daemon.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3>Associations</H3>
|
|
<P STYLE="margin-bottom: 0in"><BR>
|
|
</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TH>
|
|
<P>source</P>
|
|
</TH>
|
|
<TH>
|
|
<P>association</P>
|
|
</TH>
|
|
<TH>
|
|
<P>target</P>
|
|
</TH>
|
|
<TH>
|
|
<P>description</P>
|
|
</TH>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Clip retriever</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Retrieves clips from</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Media archive</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Media archive</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Audio clip</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Clip retriever</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Stores clips in</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Local storage</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Local storage</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Audio clip</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>References by PlaylistElement</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Audio clip</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>PlaylistElement</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Fades in with</P>
|
|
</TD>
|
|
<TD>
|
|
<P>FadeInfo</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>PlaylistElement</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Fades out with</P>
|
|
</TD>
|
|
<TD>
|
|
<P>FadeInfo</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Playlist store</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play list</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Playlist editor</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Uploads playlist to</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist store</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Playlist editor</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Manages schedule in</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Schedule</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Playlist editor schedules playlists.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Schedule</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Schedule entry</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Schedule entry</P>
|
|
</TD>
|
|
<TD>
|
|
<P>References</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Executes</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Schedule</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Scheduler daemon plays the scheduled playlists.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Logs into</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play log</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The Scheduler daemon logs all the played audio clips into the
|
|
Play log for proof of broadcast purposes.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Play log</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Contains</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play log entry</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Play log</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Generated</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play report</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The play log generates reports based on Play log entries.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Play log entry</P>
|
|
</TD>
|
|
<TD>
|
|
<P>References</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Audio clip</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Broadcast auditor</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Browses entries from</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play log</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Broadcast auditor</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Requests</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Play report</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Playlist editor</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Is authenticated by</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Authentication</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Broadcast auditor</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Is authenticated by</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Authentication</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P>Administrator</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Manages</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Scheduler daemon</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H2>System behavior</H2>
|
|
<P>The behavior of the system as a whole as experienced from the
|
|
outside is discussed in this section.</P>
|
|
<H3>System sequence diagrams</H3>
|
|
<P>System diagrams are presented for each use case below.</P>
|
|
<H4>UC-1 Upload playlists</H4>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>UC-2 Manage schedule</H4>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>UC-3 Manage playlists</H4>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>UC-4 Retrieve remote files</H4>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>UC-5 Review play log</H4>
|
|
<H4>UC-6 Create playlist</H4>
|
|
<H4>UC-7 Edit playlist</H4>
|
|
<H4>UC-8 Start/stop scheduler</H4>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H3>System objects</H3>
|
|
<P>The following figures shows the system objects and their
|
|
functions, as derived from the system sequence diagrams.</P>
|
|
<H3>Contracts</H3>
|
|
<P>For all operations exposed in the system sequence diagrams, the
|
|
following contracts are defined.</P>
|
|
<H4>Contract for Scheduler : authenticate</H4>
|
|
<P>See Authentication : authenticate</P>
|
|
<H4>Contract for Scheduler : uploadPlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>uploadPlaylist<BR>(playlist : Playlist,<BR>playtime:
|
|
Schedule)<BR>: UniqueId</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Upload a playlist and put it into the schedule.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.1, UC-1</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If the uploaded playlist is not valid, indicate as an error<BR>If
|
|
the proposed schedule conflicts with existing schedules, indicate
|
|
as an error</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the unique id of the ScheduleEntry created with this upload</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A new Playlist is created, storing the uploaded playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Playlist is entered into the Playlist store</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association formed</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A new Schedule is created, according to the supplied schedule</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Schedule is associated with the Playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association formed</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : displaySchedule</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>displaySchedule<BR>(from : TimeStamp,<BR>to : TimeStamp)<BR>:
|
|
Schedule</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Display Schedule entries for a time period.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.4, UC-2</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The Schedule entries for the specified time period.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : displayPlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>displayPlaylist<BR>(playlistId : UniqueId)<BR>: Playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Display a specific playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.4, UC-3</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If no playlist exists for the specified playlistId, indicate as
|
|
an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The requested playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : deletePlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>deletePlaylist<BR>(playlist : Playlist)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Delete a specific playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.11, UC-3</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If no playlist exists for the specified playlistId, indicate as
|
|
an error.<BR>If the playlist is referenced by any Schedule entry,
|
|
indicate as an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist is removed from the Playlist store.</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association broken</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>References by the playlist to Audio clips removed</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association broken</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist is deleted</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance deletion</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : removeFromSchedule</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>removeFromSchedule<BR>(scheduleEntryId : UniqueId)<BR>: bool</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Remove a specific playlist from a schedule entry</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.9, UC-2</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If no ScheduleEntry by the specified scheduleEntryId exist,
|
|
indicate as an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>true if the specified entry was removed, false if it did not
|
|
exist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Reference to the playlist by the scheduleEntry is removed.</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association broken</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The ScheduleEntry specified by the scheduleEntryId is deleted</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance deletion</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : reschedule</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>reschedule<BR>(scheduleEntryId : UniqueId,<BR>playtime :
|
|
TimeStamp)<BR>: bool</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Change when a certain playlist is scheduled to play.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.10, UC-2</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If no ScheduleEntry by the specified scheduleEntryId exist,
|
|
indicate as an error.<BR>If the new playtime conflicts with other
|
|
schedule entries, indicate as an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>false on errors</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The time attribute of scheduleEntry is updated to the supplied
|
|
playtime.</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : displayPlaylists</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>displayPlaylists<BR>()<BR>: Playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Display Playlists contained in the Playlist store</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.4, UC-3</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The playlists contained in the Playlist store.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : displayPlayLog</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>displayPlayLog<BR>()<BR>: Play log</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Display Play log entries contained in the Play log</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.4, UC-5</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The play log entries contained in the Play log.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : generatePlayReport</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>generatePlayReport<BR>(from : TimeStamp,<BR>to : TimeStamp)<BR>:
|
|
Play report</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Present a report on what Audio clips have been played to the
|
|
Broadcast auditor.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.4, UC-5</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>A report on the played Audio clips played in the specified time
|
|
period.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : createPlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>createPlaylist<BR>()<BR>: Playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Create a new playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.12, UC-6</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>A new playlist is created, and is immediately locked for
|
|
editing.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A new Playlist is created</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The lockedForEditing attribute is set to true for the playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The playlist is added to the Playlist store</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association formed</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : openPlaylistForEditing</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>openPlaylistForEditing<BR>(playlist : Playlist)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Open a playlist for editing</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>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.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>if the playlist is currently being executed, indicate as an
|
|
error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The current version of the playlist is stored, in case the user
|
|
wants to revert to the last saved version (see
|
|
revertEditedPlaylist)</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The lockedForEditing attribute is set to true for the playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : addAudioClipToPlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>addAutioClipToPlaylist<BR>(playlist : Playlist,<BR>audioClip :
|
|
AudioClip,<BR>relativeOffset : Time)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Add an Audio clip to a Playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The Audio clip is added to the playlist with the specified
|
|
relativeOffset from the beginning of the Playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the Playlist is currently opened for editing</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The new PlaylistElement is created associating the playlist
|
|
with the audio clip, with the specified relativeOffset</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association formed, instnace creation</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : displayAudioClips</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>displayAudioClips<BR>()<BR>: AudioClip</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Display the audio clips known to the Scheduler</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The Audio clips kown to the Scheduler</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : displayAudioClip</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>displayAudioClip<BR>(audioClipId : UniqueId)<BR>: AudioClip</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Display the audio clip specified by the audioClipId</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>if no audio clip by the specified id exists, indicate as an
|
|
error</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The Audio clip specified by the audioClipId</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : removeAudioClipFromPlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>removeAutioClipFromPlaylist<BR>(playlist :
|
|
Playlist,<BR>relativeOffset: Time)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Remove an Audio clip at the given relative offset from a
|
|
Playlist</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The Audio clip is removed from the Playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If there is no Audio clip at the specified relative offset in
|
|
the playlist, indicate as an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the Playlist is currently opened for editing</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The PlaylistElement associating the AudioClip with the Playlist
|
|
is removed, with the related FadeInfo instances</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance deletion, association broken</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : updateFadeInFadeOut</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>updateFadeInFadeOut<BR>(audioClip : AudioClip,<BR>playlist :
|
|
Playlist)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Update the fade-in and fade-out parameters for an audio clip
|
|
playing in a playlist.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If the Audio clip is not in the playlist, indicate as an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the Playlist is currently opened for editing</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The fade-in and fade-out parameters for the audio clip in the
|
|
playlist are updated</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : validatePlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>validatePlaylist<BR>(playlist : Playlist)<BR>: boolean</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Validate a playlist for being complete.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The playlist is checked for being complete (not containing
|
|
silence) and other sanity criteria.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : savePlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>savePlaylist<BR>(playlist : Playlist)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The playlist is saved.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>If the playlist is not valid, indicate as an error.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the Playlist is currently opened for editing</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The lockedForEditing attriubute is set to false for the
|
|
playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The old version of the Playlist that could have been used for
|
|
reverting is deleted (see revertEditedPlaylist)</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance deletion</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : revertEditedPlaylist</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>revertEditedPlaylist<BR>(playlist : Playlist)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Changes are discarded for a Playlist that is being edited.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.13, UC-7</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The contents of the playlist are reverted to the state prior to
|
|
when editing began on it.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the Playlist is currently opened for editing</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The contents of the Playlist are reverted to the last saved
|
|
version. This includes deleting all created PlaylistElement and
|
|
FadeInfo instances.</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification, instance deletion</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The lockedForEditing attriubute is set to false for the
|
|
playlist</P>
|
|
</TD>
|
|
<TD>
|
|
<P>attribute modification</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : start</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>start<BR>()<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Starts the scheduler daemon</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.14, UC-8</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>A System V init-style daemon starting entry point</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The scheduler daemon is currently not running</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The scheduler daemon object is created</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>All the necessary structures are created for the deamon to run</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : isRunning</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>isRunning<BR>()<BR>: boolean</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Tells if the scheduler daemon is running</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>UC-8</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>A System V init-style daemon status entry point</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>true of the daemon is running, false otherwise</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=LEFT>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Scheduler : stop</H4>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>stop<BR>()<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Stops the scheduler daemon</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>system</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.15, UC-8</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>A System V init-style daemon stopping entry point</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>The scheduler daemon is currently running</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>The scheduler daemon object is deleted</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance deletion</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Media archive : authenticate</H4>
|
|
<P STYLE="margin-bottom: 0in">TODO: move to Media archive spec</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>authenticate<BR>(authenticationInfo : AuthenticationInfo)<BR>:
|
|
boolean</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Check if the provided authentication info is recognized.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>interface</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>UC-4</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>true if the provided authentication is recognized, false
|
|
otherwise</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Media archive : retrieveAudioClip</H4>
|
|
<P STYLE="margin-bottom: 0in">TODO: move to Media archive spec</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>retrieveAudioClip<BR>(clipId : UniqueId)<BR>: AudioClip</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Retrieve an AudioClip specified by the supplied audio clip id.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>interface</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>F1.2, UC-4</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>if no audio clip exists with the supplied id, indicate as an
|
|
error</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>the requested audio clip</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>condition</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P ALIGN=CENTER><B>type</B></P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>A new Audio clip is created and filled with the contents of the
|
|
retrieved audio clip</P>
|
|
</TD>
|
|
<TD>
|
|
<P>instance creation
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P>Audio clip is entered into Local storage</P>
|
|
</TD>
|
|
<TD>
|
|
<P>association formed</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Local storage : authenticate</H4>
|
|
<P STYLE="margin-bottom: 0in">TODO: move to Local storage spec</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>authenticate<BR>(authenticationInfo : AuthenticationInfo)<BR>:
|
|
boolean</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Check if the provided authentication info is recognized.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>interface</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>UC-4</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>true if the provided authentication is recognized, false
|
|
otherwise</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Local storage : existsAudioClip</H4>
|
|
<P STYLE="margin-bottom: 0in">TODO: move to Local storage spec</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>existsAudioClip<BR>(audioClipId : UniqueId)<BR>: boolean</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Tell if an audio clip by the provided unique id is stored in
|
|
the Local storage</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>interface</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>UC-4</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>true if an audio clip with the provided id exists, false
|
|
otherwise</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>none</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H4>Contract for Local storage : storeAudioClip</H4>
|
|
<P STYLE="margin-bottom: 0in">TODO: move to Local storage spec</P>
|
|
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=2>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Name</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>storeAudioClip<BR>(audioClip : AudioClip)<BR>: void</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Responsibilities</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>Store an audio clip.</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Type</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>interface</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Cross-reference</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>UC-4</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Notes</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Exceptions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Output</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Pre-conditions</B></P>
|
|
</TD>
|
|
<TD COLSPAN=2>
|
|
<P>none</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><B>Post-conditions</B></P>
|
|
</TD>
|
|
<TD>
|
|
<P>The supplied audio clip is stored in the storage.</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
<TR VALIGN=TOP>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
<TD>
|
|
<P><BR>
|
|
</P>
|
|
</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<P><BR><BR>
|
|
</P>
|
|
<H1>Glossary</H1>
|
|
<P><B>playlist</B><BR>The playlist is a metafile, containing
|
|
references to audio clips that should be played, and details on how
|
|
they should be played.</P>
|
|
</BODY>
|
|
</HTML> |