Claims
- 1. A computer system for synchronizing multimedia graphic presentations, the system comprising:(a) a storage; (b) a display; (c) a clock object in the storage and including means for providing a current time value, (d) a graphical sequence object in the storage containing a plurality of graphic objects, each of the plurality of graphic objects having image data and duration attribute; (e) a presentation object in the storage and having means, cooperating with the graphic sequence object and responsive to the current time value, for selecting one of the plurality of a graphic objects and means, responsive to the selected graphic object, for presenting the image data of the selected graphic object on the display; (f) means, responsive to the selected graphic object, for blocking the selection means for a time period equal to the duration attribute of the selected graphic object; (g) a master clock object in the storage and having means for generating a master current time value: and wherein the clock object includes means responsive to the master time value for determining the current time value as a function of the master time so that the master clock object and the clock object operate in synchronism; wherein the clock object further includes: means for storing a rate value and an offset value, and means, responsive to the master time signal, for computing the current time value as a predetermined function of the master time signal, the rate value, and the offset value; and (h) clock synchronizing means, responsive to a synchronization request, for synchronizing the clock object to the master time signal to keep the current time value of the clock object unchanged, while changing the rate value of the clock object, the clock synchronizing means comprising: means for receiving a new rate value; means for computing a new offset value based on the master time signal and the new rate value such that the predetermined function yields a current time value that is unchanged with the new rate value and the new offset value; and means for providing the new rate value and the new offset value to the clock object.
- 2. The computer system as recited in claim 1 wherein the blocking means comprises:(i) means cooperating with the presenting means for issuing a wakeup request having a wakeup time when image data from one of the plurality of graphic objects is being presented on the display; (j) wakeup handling means, responsive to the wakeup request, for firing a wakeup message, when the wakeup time is late in comparison to the current time value; and (k) means responsive to the wakeup message for unblocking the selection means.
- 3. The computer system as recited in claim 1, wherein the wakeup time is a sum of the current time value and a duration attribute of the one graphic object.
- 4. The computer system as recited in claim 1 wherein the predetermined function computes the current time value as the sum of an offset value and a multiplicative product of a rate value and a master time signal.
- 5. The system of claim 1 further comprising a graphical user interface with means for connecting iconic representations of the clock object and the master clock object, including means for informing the clock object of the iconic connection so that the means for determining of the clock object may respond to the master time value of the master clock object.
- 6. A computer-implemented method for synchronizing multimedia graphic presentations on a computer having a storage and a display, the method comprising the steps of:(a) creating a clock object in the storage, which clock object includes a means for providing a current time value including creating a master clock object having means for computing a master time value as a predetermined function of the master time value, a rate value and an offset value; and creating a clock object having a mechanism for computing the current time value as a predetermined function of the master time value; (b) creating a a graphical sequence object in the storage, containing a plurality of graphic objects, each of the plurality of graphic objects having image data and a duration attribute; (c) obtaining the current time value from the clock object; (d) providing the current time value to the graphical sequence object to select one of the plurality of graphic objects; (e) presenting the image data of the selected graphic object on the display, (f) blocking re-execution off steps (c) through (e) for a time duration equal to the duration attribute of the selected graphic object; (g) re-executing steps (c) through (f) to present the image data in graphic objects in the graphical sequence object; and (h) in response to a synchronization request, synchronizing the clock object to the master time value to keep the current time value of the clock object unchanged, while changing the rate value of the clock object.
- 7. The method as recited in claim 6 wherein step (f) comprises the steps of:(f1) issuing a wakeup request having a wakeup time when image data from one of the plurality of graphic objects is being presented on the display; (f2) firing a wakeup message, when the wakeup time is late in comparison to the current time value; and (f3) re-executing steps (c) through (e) in response to the wakeup message.
- 8. The method as recited in claim 6 wherein step (I) comprises the steps of:(I.1) receiving a new rate value; (I.2) computing a new offset value based on the master time value and the new rate value such that the predetermined function yields a current time value that is unchanged with the new rate value and the new offset value; and (I.3) providing the new rate value and the new offset value to the clock object.
- 9. The method as recited in claim 6 wherein step (a) comprises the step of:(a.3) creating a clock object which computes the current time value as a sum of an offset value and a multiplicative product of a rate value and a master time value.
- 10. A synchronization framework for controlling time relationships in a graphic presentations application operating on a computer system with a storage and a presentation device, the synchronization framework comprising:(a) data defining a time source class stored in the storage, the time source class having a master time value attribute for storing a master time signal value and a get member function for retrieving the master time signal value; (b) data defining an application-subclassable clock class stored in the storage, the clock class having a current time attribute, an offset value attribute, a rate value attribute, a member function for calculating the current time attribute value of a clock object as a predetermined function of a master time signal value, a member function for handling a wakeup request having a wakeup time, by firing a wakeup message, when the wakeup request is late in comparison to the current time value and a member function for synchronizing the clock object to the master time signal value to keep the current time value of the clock object unchanged, while changing the rate value of the clock object, the clock synchronizing member function including an attribute for receiving a new rate value, a member function for computing a new offset value based on the master time signal and the new rate value such that the predetermined function yields a current time value that is unchanged with the new rate value and the new offset value: and a member function for providing the new rate value and the new offset value to the clock object; (c) data identifying a graphic sequence class stored in the storage, the graphic sequence class comprising a member function for selecting a corresponding graphic object from a plurality of graphic objects on the basis of a received time value, each graphic object having image data and a duration attribute; (d) data defining a presentation object class in the storage, the presentation object class comprising a member function for obtaining the current time value from a clock object created from the clock class, a member function for providing the obtained current time value to a graphical sequence object, created from the graphic sequence class, to select a corresponding graphic object, a member function for presenting the image data of the selected graphic object on the presentation device, a member function for issuing a wakeup request having a desired wakeup time set to the obtained current time plus the duration attribute of the selected graphic object, and a member function for blocking the presentation object from further execution until a wakeup message has been fired to the presentation object.
- 11. Apparatus for synchronizing multimedia graphic presentations, the apparatus being operable in a computer system having a storage and a display and comprising:(a) a time source clock object in the storage and including means for generating a master current time value, and wakeup handling means, responsive to a wakeup request having a wakeup time and a target, for firing a wakeup message to the target, when the wakeup request is late in comparison to the master current time value; (b) a graphic clock object in the storage and including means, responsive to the master current time value, for providing a graphic clock current time value, wakeup request issuing means, responsive to a wakeup request having a desired wakeup time, for issuing to the time source clock object a wakeup request having the desired wakeup time set as the wakeup time and the presentation object set as the target, means for synchronizing the clock object to the master time signal value to keep the current time value of the clock object uncharged unchanged, while changing the rate value of the clock object, the clock synchronizing means including means for receiving a new rate value, means for computing a new offset value based on the master time signal and the new rate value such that the predetermined function yields a current time value that is unchanged with the new rate value and the new offset value; and means for providing the new rate value and the new offset value to the clock object; (c) a graphical sequence object in the storage and including a plurality of graphic objects, each graphic object having image data and a duration attribute, and the graphical sequence object including means, responsive to a time value, for selecting a corresponding graphic object from the plurality of graphic objects; and (d) a presentation object for presenting a graphical sequence on the display, the presentation object including clock value obtaining means for obtaining the graphic clock current time value, graphic object obtaining means, responsive to the clock value obtaining means, for providing the graphic clock current time value to the graphical sequence object to select a corresponding graphic object, presentation means, responsive to the selected graphic object, for presenting the image data of the selected graphic object on the display, means, responsive to the presentation means, for issuing to the graphic clock object a wakeup request having a desired wakeup time set to the graphic clock current time plus the duration attribute of the selected graphic object, blocking means, responsive to the means for issuing, for blocking the presentation object from further execution until a wakeup message has been fired to the presentation object.
- 12. A method for enabling the synchronization of a graphical multimedia presentation by a computer having a storage, a display and an operating system, comprising the steps of:a) providing class libraries for retention in the storage of the computer from which (1) a clock object may be instantiated having a current time value attribute, an offset value attribute, a rate value attribute, a member function for calculating the current time value as a predetermined function of a master time signal value, and a member function for synchronizing the clock object to the master time signal value by changing the rate value while keeping the current time value unchanged, and (2) a graphic sequence object may instantiated having a member function for receiving a time value, a member function for selecting, from a plurality of graphic objects each having image data and a duration value attribute, a graphic object corresponding to the received time value; and (3) a presentation object may be instantiated having a member function for obtaining the current time value from a clock object, a member function for providing the obtained current time value to a graphical sequence object and for receiving therefrom a selected graphic object, a member function for presenting the image data of the selected graphic object to the display; and (b) providing a run-time environment to (1) support the instantiation of the clock, graphic sequence and presentation objects and (2) selectively cause the transfer by the operating system of the image data to a specific display.
- 13. The method as recited in claim 12 wherein: the clock object further includesan attribute for receiving a new rate value, a member function for computing a new offset value based on the master time signal and the new rate value such that the predetermined function yields an unchanged current time value with the new rate value and the new offset value, and a member function for handling a wakeup request having a wakeup time value by initiating a wakeup message responsive to a comparison of the wakeup request time value with the current time value; and the presentation object further includes a member function for issuing a wakeup request having a wakeup time value corresponding to the obtained current time value plus the duration value of the selected graphic object, and a member function for blocking presentation object method execution until a wakeup message is received thereby.
- 14. A computer program product for enabling the synchronization of multimedia graphic presentations on a computer having a storage and a display, said computer program product including a computer-useable means for storing therein computer-readable code comprising: (a) program code for creating a clock object in the storage that includes means for accepting a synchronization request having a master time value attribute and means for providing a current time value corresponding to a predetermined function of a rate value and an offset value; (b) program code for creating a graphical sequence object in the storage that includes a plurality of graphic objects each having image data and a duration value attribute; (c) program code for obtaining the current time value from the clock object; (d) program code for providing the obtained current time value to the graphical sequence object and for selecting a corresponding one of the plurality of graphic objects; (e) program code for presenting the image data of the selected graphic object on the display; (f) program code for blocking execution of program codes (c) through (e) for a time duration corresponding to the duration value attribute of the selected graphic object; (g) program code for synchronizing the clock object to the master time value of a synchronization request by changing the rate value and the offset value such that the current time value remains unchanged.
- 15. The computer program product as recited in claim 14 wherein program code (f) comprises: (f1) program code for issuing a wakeup request having a wakeup time value responsive to the presentation to the display of image data from one of the plurality of graphic objects; (f2) program code for initiating a wakeup message responsive to a comparison of the wakeup time and current time values; and (f3) program code for unblocking program codes (c) through (e) responsive to the wakeup message.
- 16. The computer program product as recited in claim 14 further comprising:(h.1) program code for receiving a new rate value; (h.2) program code for computing a new offset value from the master time value and the new rate value such that the predetermined function yields an unchanged current time value with the new rate value and the new offset value; and (h.3) program code for changing the clock object attributes to correspond to the new rate and offset values.
- 17. The computer program product as recited in claim 14 wherein program code (a) further comprises: program code for causing the predetermined function to compute a current time value corresponding to the sum of the offset value and a multiplicative product of the rate value and the master time value.
Parent Case Info
This application is a Reissue of application Ser. No. 08/060,151, filed May 10, 1993, now U.S. Pat. No. 5,596,696.
US Referenced Citations (11)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0239884 |
Oct 1987 |
EP |
Non-Patent Literature Citations (2)
Entry |
Blakowski et al., “Tool Support for the Synchronization and Presentation of Distributed Multimedia”, Computer Communications, V.15(10), pp. 611-618, Dec. 1992.* |
Horn et al., “On programming and Supporting Multimedia Objecct Synchronization”, Computer journal, V36(1),pp4-18, Dec. 1992. |
Divisions (1)
|
Number |
Date |
Country |
Parent |
08/060151 |
May 1993 |
US |
Child |
09/229886 |
|
US |
Reissues (1)
|
Number |
Date |
Country |
Parent |
08/060151 |
May 1993 |
US |
Child |
09/229886 |
|
US |