Multimedia bindings

This commit is contained in:
David Botton 2021-01-24 19:26:30 -05:00
parent f5c95ee2fa
commit c7a2f05dad
3 changed files with 1007 additions and 14 deletions

View file

@ -16,6 +16,568 @@
(defclass clog-multimedia (clog-element)()
(:documentation "CLOG Multimedia base class."))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Properties - clog-multimedia
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;
;; loop-mediap ;;
;;;;;;;;;;;;;;;;;
(defgeneric loop-mediap (clog-multimedia)
(:documentation "Get/Setf loop media property."))
(defmethod loop-mediap ((obj clog-multimedia))
(js-true-p (property obj "loop")))
(defgeneric set-loop-mediap (clog-multimedia value)
(:documentation "Set loop-media VALUE for CLOG-MULTIMEDIA"))
(defmethod set-loop-mediap ((obj clog-multimedia) value)
(setf (property obj "loop") (p-true-js value)))
(defsetf loop-mediap set-loop-mediap)
;;;;;;;;;;;;;;;;;;;;
;; media-duration ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric media-duration (clog-multimedia)
(:documentation "Get/Setf media in seconds property."))
(defmethod media-duration ((obj clog-multimedia))
(parse-integer (property obj "loop")))
;;;;;;;;;;;;;;;;;;
;; media-source ;;
;;;;;;;;;;;;;;;;;;
(defgeneric media-source (clog-multimedia)
(:documentation "Get/Setf media source/url."))
(defmethod media-source ((obj clog-multimedia))
(property obj "src"))
(defgeneric set-media-source (clog-multimedia value)
(:documentation "Set media source VALUE for CLOG-MULTIMEDIA"))
(defmethod set-media-source ((obj clog-multimedia) value)
(setf (property obj "src") value))
(defsetf media-source set-media-source)
;;;;;;;;;;;;;;;;;;;;
;; media-position ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric media-position (clog-multimedia)
(:documentation "Get/Setf postion of media in seconds."))
(defmethod media-position ((obj clog-multimedia))
(parse-integer (property obj "currentTime")))
(defgeneric set-media-position (clog-multimedia value)
(:documentation "Set media source VALUE for CLOG-MULTIMEDIA"))
(defmethod set-media-position ((obj clog-multimedia) value)
(setf (property obj "currentTime") value))
(defsetf media-position set-media-position)
;;;;;;;;;;;;
;; mutedp ;;
;;;;;;;;;;;;
(defgeneric mutedp (clog-multimedia)
(:documentation "Get/Setf muted property."))
(defmethod mutedp ((obj clog-multimedia))
(js-true-p (property obj "muted")))
(defgeneric set-mutedp (clog-multimedia value)
(:documentation "Set muted VALUE for CLOG-MULTIMEDIA"))
(defmethod set-mutedp ((obj clog-multimedia) value)
(setf (property obj "muted") (p-true-js value)))
(defsetf mutedp set-mutedp)
;;;;;;;;;;;;;
;; pausedp ;;
;;;;;;;;;;;;;
(defgeneric pausedp (clog-multimedia)
(:documentation "Get/Setf paused property."))
(defmethod pausedp ((obj clog-multimedia))
(js-true-p (property obj "paused")))
;;;;;;;;;;;;;;
;; seekingp ;;
;;;;;;;;;;;;;;
(defgeneric seekingp (clog-multimedia)
(:documentation "Get/Setf seeking property."))
(defmethod seekingp ((obj clog-multimedia))
(js-true-p (property obj "seeking")))
;;;;;;;;;;;;;;;;;;;;;;
;; playback-ended-p ;;
;;;;;;;;;;;;;;;;;;;;;;
(defgeneric playback-ended-p (clog-multimedia)
(:documentation "Get/Setf true of Media position has reached end of its duration."))
(defmethod playback-ended-p ((obj clog-multimedia))
(js-true-p (property obj "ended")))
;;;;;;;;;;;;;;;;;;;
;; playback-rate ;;
;;;;;;;;;;;;;;;;;;;
(defgeneric playback-rate (clog-multimedia)
(:documentation "Get/Setf playback rate.
Common values - 1.0 normal, 0.5 half speed, -1.0 reverse"))
(defmethod playback-rate ((obj clog-multimedia))
(property obj "playbackRate"))
(defgeneric set-playback-rate (clog-multimedia value)
(:documentation "Set media source VALUE for CLOG-MULTIMEDIA"))
(defmethod set-playback-rate ((obj clog-multimedia) value)
(setf (property obj "playbackRate") value))
(defsetf playback-rate set-playback-rate)
;;;;;;;;;;;;;;;;;;;;;
;; ready-to-play-p ;;
;;;;;;;;;;;;;;;;;;;;;
(defgeneric ready-to-play-p (clog-multimedia)
(:documentation "Get/Setf true of Media position has reached end of its duration."))
(defmethod ready-to-play-p ((obj clog-multimedia))
(js-true-p (property obj "readyState")))
;;;;;;;;;;;;;;;;;;
;; media-volume ;;
;;;;;;;;;;;;;;;;;;
(defgeneric media-volume (clog-multimedia)
(:documentation "Get/Setf media volume, not system volume. 0.0 .. 1.0"))
(defmethod media-volume ((obj clog-multimedia))
(parse-integer (property obj "volume")))
(defgeneric set-media-volume (clog-multimedia value)
(:documentation "Set media source VALUE for CLOG-MULTIMEDIA"))
(defmethod set-media-volume ((obj clog-multimedia) value)
(setf (property obj "volume") value))
(defsetf media-volume set-media-volume)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Methods - clog-multimedia
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
;; play-media ;;
;;;;;;;;;;;;;;;;
(defgeneric play-media (clog-multimedia)
(:documentation "Play media."))
(defmethod play-media ((obj clog-multimedia))
(execute obj "play()"))
;;;;;;;;;;;;;;;;;
;; pause-media ;;
;;;;;;;;;;;;;;;;;
(defgeneric pause-media (clog-multimedia)
(:documentation "Pause media."))
(defmethod pause-media ((obj clog-multimedia))
(execute obj "pause()"))
;;;;;;;;;;;;;;;;
;; load-media ;;
;;;;;;;;;;;;;;;;
(defgeneric load-media (clog-multimedia)
(:documentation "Load/Reload media."))
(defmethod load-media ((obj clog-multimedia))
(execute obj "load()"))
;;;;;;;;;;;;;;;;;;;;;
;; can-play-type-p ;;
;;;;;;;;;;;;;;;;;;;;;
(defgeneric can-play-type-p (clog-multimedia media-type)
(:documentation "Returns true if browser claims support of a media type.
Browsers report possibility but not guarantees of being able to support a
media type.
Common values:
video/ogg
video/mp4
video/webm
audio/mpeg
audio/ogg
audio/mp4
audio/mp3
Common values, including codecs:
video/ogg; codecs=\"theora, vorbis\"
video/mp4; codecs=\"avc1.4D401E, mp4a.40.2\"
video/webm; codecs=\"vp8.0, vorbis\"
audio/ogg; codecs=\"vorbis\"
audio/mp4; codecs=\"mp4a.40.5\""))
(defmethod can-play-type-p ((obj clog-multimedia) media-type)
(js-true-p (query obj (format nil "canPlayType('~A')" media-type))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Events - clog-multimedia
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; The standard event order for a normal file load is:
;; On_Load_Start
;; On_Duration_Change
;; On_Loaded_Meta_Data
;; On_Loaded_Data
;; On_Progress
;; On_Can_Play
;; On_Can_Play_Though
;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-media-abort ;;
;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-media-abort (clog-multimedia handler)
(:documentation "Set the ON-MEDIA-ABORT-HANDLER for CLOG-MULTIMEDIA. HANDLER
is nil unbind the event."))
(defmethod set-on-media-abort ((obj clog-multimedia) handler)
(set-event obj "abort"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-media-error ;;
;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-media-error (clog-multimedia handler)
(:documentation "Set the ON-MEDIA-ERROR-HANDLER for CLOG-MULTIMEDIA. HANDLER
is nil unbind the event."))
(defmethod set-on-media-error ((obj clog-multimedia) handler)
(set-event obj "error"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;
;; set-on-can-play ;;
;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-can-play (clog-multimedia handler)
(:documentation "Set the ON-CAN-PLAY-HANDLER for CLOG-MULTIMEDIA. HANDLER
is nil unbind the event."))
(defmethod set-on-can-play ((obj clog-multimedia) handler)
(set-event obj "canplay"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-can-play-through ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-can-play-through (clog-multimedia handler)
(:documentation "Set the ON-CAN-PLAY-THROUGH-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-can-play-through ((obj clog-multimedia) handler)
(set-event obj "canplaythrough"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-duration-change ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-duration-change (clog-multimedia handler)
(:documentation "Set the ON-DURATION-CHANGE-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-duration-change ((obj clog-multimedia) handler)
(set-event obj "durationchange"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;
;; set-on-emptied ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-emptied (clog-multimedia handler)
(:documentation "Set the ON-EMPTIED-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-emptied ((obj clog-multimedia) handler)
(set-event obj "emptied"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;
;; set-on-ended ;;
;;;;;;;;;;;;;;;;;;
(defgeneric set-on-ended (clog-multimedia handler)
(:documentation "Set the ON-ENDED-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-ended ((obj clog-multimedia) handler)
(set-event obj "ended"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-loaded-data ;;
;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-loaded-data (clog-multimedia handler)
(:documentation "Set the ON-LOADED-DATA-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-loaded-data ((obj clog-multimedia) handler)
(set-event obj "loadeddata"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-loaded-meta-data ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-loaded-meta-data (clog-multimedia handler)
(:documentation "Set the ON-LOADED-META-DATA-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-loaded-meta-data ((obj clog-multimedia) handler)
(set-event obj "loadedmetadata"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-load-start ;;
;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-load-start (clog-multimedia handler)
(:documentation "Set the ON-LOAD-START-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-load-start ((obj clog-multimedia) handler)
(set-event obj "loadstart"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;
;; set-on-play ;;
;;;;;;;;;;;;;;;;;
(defgeneric set-on-play (clog-multimedia handler)
(:documentation "Set the ON-PLAY-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-play ((obj clog-multimedia) handler)
(set-event obj "play"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;
;; set-on-pause ;;
;;;;;;;;;;;;;;;;;;
(defgeneric set-on-pause (clog-multimedia handler)
(:documentation "Set the ON-PAUSE-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-pause ((obj clog-multimedia) handler)
(set-event obj "pause"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;
;; set-on-playing ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-playing (clog-multimedia handler)
(:documentation "Set the ON-PLAYING-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-playing ((obj clog-multimedia) handler)
(set-event obj "playing"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;
;; set-on-progress ;;
;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-progress (clog-multimedia handler)
(:documentation "Set the ON-PROGRESS-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-progress ((obj clog-multimedia) handler)
(set-event obj "progress"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-rate-change ;;
;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-rate-change (clog-multimedia handler)
(:documentation "Set the ON-RATE-CHANGE-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-rate-change ((obj clog-multimedia) handler)
(set-event obj "ratechange"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;
;; set-on-seeked ;;
;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-seeked (clog-multimedia handler)
(:documentation "Set the ON-SEEKED-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-seeked ((obj clog-multimedia) handler)
(set-event obj "seeked"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;
;; set-on-seeking ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-seeking (clog-multimedia handler)
(:documentation "Set the ON-SEEKING-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-seeking ((obj clog-multimedia) handler)
(set-event obj "seeking"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;
;; set-on-stalled ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-stalled (clog-multimedia handler)
(:documentation "Set the ON-STALLED-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-stalled ((obj clog-multimedia) handler)
(set-event obj "stalled"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;
;; set-on-suspend ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-suspend (clog-multimedia handler)
(:documentation "Set the ON-SUSPEND-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-suspend ((obj clog-multimedia) handler)
(set-event obj "suspend"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-time-update ;;
;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-time-update (clog-multimedia handler)
(:documentation "Set the ON-TIME-UPDATE-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-time-update ((obj clog-multimedia) handler)
(set-event obj "timeupdate"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; set-on-volume-change ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-volume-change (clog-multimedia handler)
(:documentation "Set the ON-VOLUME-CHANGE-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-volume-change ((obj clog-multimedia) handler)
(set-event obj "volumechange"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;
;; set-on-waiting ;;
;;;;;;;;;;;;;;;;;;;;
(defgeneric set-on-waiting (clog-multimedia handler)
(:documentation "Set the ON-WAITING-HANDLER for CLOG-MULTIMEDIA.
HANDLER is nil unbind the event."))
(defmethod set-on-waiting ((obj clog-multimedia) handler)
(set-event obj "waiting"
(when handler
(lambda (data)
(declare (ignore data))
(funcall handler obj)))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Implementation - clog-audio
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View file

@ -435,9 +435,50 @@ embedded in a native template application.)"
"CLOG-Multimedia - Base Class for CLOG multimedia objects"
(clog-multimedia class)
(loop-mediap generic-function)
(media-duration generic-function)
(media-source generic-function)
(media-position generic-function)
(mutedp generic-function)
(pausedp generic-function)
(seekingp generic-function)
(playback-ended-p generic-function)
(playback-rate generic-function)
(ready-to-play-p generic-function)
(media-volume generic-function)
(play-media generic-function)
(pause-media generic-function)
(load-media generic-function)
(can-play-type-p generic-function)
(set-on-media-abort generic-function)
(set-on-media-error generic-function)
(set-on-can-play generic-function)
(set-on-can-play-through generic-function)
(set-on-duration-change generic-function)
(set-on-emptied generic-function)
(set-on-ended generic-function)
(set-on-loaded-data generic-function)
(set-on-loaded-meta-data generic-function)
(set-on-load-start generic-function)
(set-on-play generic-function)
(set-on-pause generic-function)
(set-on-playing generic-function)
(set-on-progress generic-function)
(set-on-rate-change generic-function)
(set-on-seeked generic-function)
(set-on-seeking generic-function)
(set-on-stalled generic-function)
(set-on-suspend generic-function)
(set-on-time-update generic-function)
(set-on-volume-change generic-function)
(set-on-waiting generic-function)
"Clog-Audio - Class for CLOG Audio Control"
(clog-audio class)
(create-audio generic-function)
"Clog-Video - Class for CLOG Video Control"
(clog-video class)
(create-video generic-function))

View file

@ -44,12 +44,13 @@
<li><a href="#x-28CLOG-3A-40CLOG-ELEMENT-COMMON-20MGL-PAX-3ASECTION-29" title="Common CLOG Elements">8 Common CLOG Elements</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-FORM-20MGL-PAX-3ASECTION-29" title="CLOG Form Objects">9 CLOG Form Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29" title="CLOG Canvas Objects">10 CLOG Canvas Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">11 CLOG Body Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29" title="CLOG Window Objects">12 CLOG Window Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29" title="CLOG Document Objects">13 CLOG Document Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29" title="CLOG Location Objects">14 CLOG Location Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29" title="CLOG Navigator Objects">15 CLOG Navigator Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-INTERNALS-20MGL-PAX-3ASECTION-29" title="CLOG Framework internals and extensions">16 CLOG Framework internals and extensions</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-MULTIMEDIA-20MGL-PAX-3ASECTION-29" title="CLOG Multimedia Objects">11 CLOG Multimedia Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">12 CLOG Body Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29" title="CLOG Window Objects">13 CLOG Window Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29" title="CLOG Document Objects">14 CLOG Document Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29" title="CLOG Location Objects">15 CLOG Location Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29" title="CLOG Navigator Objects">16 CLOG Navigator Objects</a></li>
<li><a href="#x-28CLOG-3A-40CLOG-INTERNALS-20MGL-PAX-3ASECTION-29" title="CLOG Framework internals and extensions">17 CLOG Framework internals and extensions</a></li>
</ul>
<h6>[in package CLOG]</h6>
@ -2700,7 +2701,7 @@ optionally fill in with contents of data-list.</p></li>
<p><a id='x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29'></a></p>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-FORM-20MGL-PAX-3ASECTION-29" title="CLOG Form Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29" title="CLOG Canvas Objects">&#8634;</a></span></span></p>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-FORM-20MGL-PAX-3ASECTION-29" title="CLOG Form Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-MULTIMEDIA-20MGL-PAX-3ASECTION-29" title="CLOG Multimedia Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29" title="CLOG Canvas Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29">10 CLOG Canvas Objects</a></h2>
@ -3046,11 +3047,400 @@ https://developer.mozilla.org/en-US/docs/Web/CSS/font</p></li>
<p>Restore canvas from stack</p></li>
</ul>
<p><a id='x-28CLOG-3A-40CLOG-MULTIMEDIA-20MGL-PAX-3ASECTION-29'></a></p>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29" title="CLOG Canvas Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-MULTIMEDIA-20MGL-PAX-3ASECTION-29" title="CLOG Multimedia Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-MULTIMEDIA-20MGL-PAX-3ASECTION-29">11 CLOG Multimedia Objects</a></h2>
<p>CLOG-Multimedia - Base Class for <code>CLOG</code> multimedia objects</p>
<p><a id='x-28CLOG-3ACLOG-MULTIMEDIA-20CLASS-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[class]</span> <span class="reference-object"><a href="#x-28CLOG-3ACLOG-MULTIMEDIA-20CLASS-29" >CLOG-MULTIMEDIA</a></span></span> <span class="locative-args"><a href="#x-28CLOG-3ACLOG-ELEMENT-20CLASS-29" title="(CLOG:CLOG-ELEMENT CLASS)">CLOG-ELEMENT</a></span></span></p>
<p><code>CLOG</code> Multimedia base class.</p></li>
</ul>
<p><a id='x-28CLOG-3ALOOP-MEDIAP-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ALOOP-MEDIAP-20GENERIC-FUNCTION-29" >LOOP-MEDIAP</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf loop media property.</p></li>
</ul>
<p><a id='x-28CLOG-3AMEDIA-DURATION-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3AMEDIA-DURATION-20GENERIC-FUNCTION-29" >MEDIA-DURATION</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf media in seconds property.</p></li>
</ul>
<p><a id='x-28CLOG-3AMEDIA-SOURCE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3AMEDIA-SOURCE-20GENERIC-FUNCTION-29" >MEDIA-SOURCE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf media source/url.</p></li>
</ul>
<p><a id='x-28CLOG-3AMEDIA-POSITION-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3AMEDIA-POSITION-20GENERIC-FUNCTION-29" >MEDIA-POSITION</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf postion of media in seconds.</p></li>
</ul>
<p><a id='x-28CLOG-3AMUTEDP-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3AMUTEDP-20GENERIC-FUNCTION-29" >MUTEDP</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf muted property.</p></li>
</ul>
<p><a id='x-28CLOG-3APAUSEDP-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3APAUSEDP-20GENERIC-FUNCTION-29" >PAUSEDP</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf paused property.</p></li>
</ul>
<p><a id='x-28CLOG-3ASEEKINGP-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASEEKINGP-20GENERIC-FUNCTION-29" >SEEKINGP</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf seeking property.</p></li>
</ul>
<p><a id='x-28CLOG-3APLAYBACK-ENDED-P-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3APLAYBACK-ENDED-P-20GENERIC-FUNCTION-29" >PLAYBACK-ENDED-P</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf true of Media position has reached end of its duration.</p></li>
</ul>
<p><a id='x-28CLOG-3APLAYBACK-RATE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3APLAYBACK-RATE-20GENERIC-FUNCTION-29" >PLAYBACK-RATE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf playback rate.
Common values - 1.0 normal, 0.5 half speed, -1.0 reverse</p></li>
</ul>
<p><a id='x-28CLOG-3AREADY-TO-PLAY-P-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3AREADY-TO-PLAY-P-20GENERIC-FUNCTION-29" >READY-TO-PLAY-P</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf true of Media position has reached end of its duration.</p></li>
</ul>
<p><a id='x-28CLOG-3AMEDIA-VOLUME-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3AMEDIA-VOLUME-20GENERIC-FUNCTION-29" >MEDIA-VOLUME</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Get/Setf media volume, not system volume. 0.0 .. 1.0</p></li>
</ul>
<p><a id='x-28CLOG-3APLAY-MEDIA-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3APLAY-MEDIA-20GENERIC-FUNCTION-29" >PLAY-MEDIA</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Play media.</p></li>
</ul>
<p><a id='x-28CLOG-3APAUSE-MEDIA-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3APAUSE-MEDIA-20GENERIC-FUNCTION-29" >PAUSE-MEDIA</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Pause media.</p></li>
</ul>
<p><a id='x-28CLOG-3ALOAD-MEDIA-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ALOAD-MEDIA-20GENERIC-FUNCTION-29" >LOAD-MEDIA</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA</span></span></p>
<p>Load/Reload media.</p></li>
</ul>
<p><a id='x-28CLOG-3ACAN-PLAY-TYPE-P-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ACAN-PLAY-TYPE-P-20GENERIC-FUNCTION-29" >CAN-PLAY-TYPE-P</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA MEDIA-TYPE</span></span></p>
<p>Returns true if browser claims support of a media type.
Browsers report possibility but not guarantees of being able to support a
media type.
Common values:
video/ogg
video/mp4
video/webm
audio/mpeg
audio/ogg
audio/mp4
audio/mp3</p>
<pre><code> Common values, including codecs:
video/ogg; codecs=&quot;theora, vorbis&quot;
video/mp4; codecs=&quot;avc1.4D401E, mp4a.40.2&quot;
video/webm; codecs=&quot;vp8.0, vorbis&quot;
audio/ogg; codecs=&quot;vorbis&quot;
audio/mp4; codecs=&quot;mp4a.40.5&quot;
</code></pre></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-MEDIA-ABORT-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-MEDIA-ABORT-20GENERIC-FUNCTION-29" >SET-ON-MEDIA-ABORT</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-MEDIA-ABORT-HANDLER for <code>CLOG-MULTIMEDIA</code>. <code>HANDLER</code>
is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-MEDIA-ERROR-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-MEDIA-ERROR-20GENERIC-FUNCTION-29" >SET-ON-MEDIA-ERROR</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-MEDIA-ERROR-HANDLER for <code>CLOG-MULTIMEDIA</code>. <code>HANDLER</code>
is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-CAN-PLAY-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-CAN-PLAY-20GENERIC-FUNCTION-29" >SET-ON-CAN-PLAY</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-CAN-PLAY-HANDLER for <code>CLOG-MULTIMEDIA</code>. <code>HANDLER</code>
is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-CAN-PLAY-THROUGH-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-CAN-PLAY-THROUGH-20GENERIC-FUNCTION-29" >SET-ON-CAN-PLAY-THROUGH</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-CAN-PLAY-THROUGH-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-DURATION-CHANGE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-DURATION-CHANGE-20GENERIC-FUNCTION-29" >SET-ON-DURATION-CHANGE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-DURATION-CHANGE-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-EMPTIED-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-EMPTIED-20GENERIC-FUNCTION-29" >SET-ON-EMPTIED</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-EMPTIED-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-ENDED-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-ENDED-20GENERIC-FUNCTION-29" >SET-ON-ENDED</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-ENDED-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-LOADED-DATA-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-LOADED-DATA-20GENERIC-FUNCTION-29" >SET-ON-LOADED-DATA</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-LOADED-DATA-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-LOADED-META-DATA-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-LOADED-META-DATA-20GENERIC-FUNCTION-29" >SET-ON-LOADED-META-DATA</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-LOADED-META-DATA-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-LOAD-START-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-LOAD-START-20GENERIC-FUNCTION-29" >SET-ON-LOAD-START</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-LOAD-START-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-PLAY-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-PLAY-20GENERIC-FUNCTION-29" >SET-ON-PLAY</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-PLAY-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-PAUSE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-PAUSE-20GENERIC-FUNCTION-29" >SET-ON-PAUSE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-PAUSE-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-PLAYING-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-PLAYING-20GENERIC-FUNCTION-29" >SET-ON-PLAYING</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-PLAYING-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-PROGRESS-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-PROGRESS-20GENERIC-FUNCTION-29" >SET-ON-PROGRESS</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-PROGRESS-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-RATE-CHANGE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-RATE-CHANGE-20GENERIC-FUNCTION-29" >SET-ON-RATE-CHANGE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-RATE-CHANGE-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-SEEKED-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-SEEKED-20GENERIC-FUNCTION-29" >SET-ON-SEEKED</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-SEEKED-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-SEEKING-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-SEEKING-20GENERIC-FUNCTION-29" >SET-ON-SEEKING</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-SEEKING-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-STALLED-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-STALLED-20GENERIC-FUNCTION-29" >SET-ON-STALLED</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-STALLED-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-SUSPEND-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-SUSPEND-20GENERIC-FUNCTION-29" >SET-ON-SUSPEND</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-SUSPEND-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-TIME-UPDATE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-TIME-UPDATE-20GENERIC-FUNCTION-29" >SET-ON-TIME-UPDATE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-TIME-UPDATE-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-VOLUME-CHANGE-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-VOLUME-CHANGE-20GENERIC-FUNCTION-29" >SET-ON-VOLUME-CHANGE</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-VOLUME-CHANGE-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p><a id='x-28CLOG-3ASET-ON-WAITING-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ASET-ON-WAITING-20GENERIC-FUNCTION-29" >SET-ON-WAITING</a></span></span> <span class="locative-args">CLOG-MULTIMEDIA HANDLER</span></span></p>
<p>Set the ON-WAITING-HANDLER for <code>CLOG-MULTIMEDIA</code>.
<code>HANDLER</code> is nil unbind the event.</p></li>
</ul>
<p>Clog-Audio - Class for <code>CLOG</code> Audio Control</p>
<p><a id='x-28CLOG-3ACLOG-AUDIO-20CLASS-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[class]</span> <span class="reference-object"><a href="#x-28CLOG-3ACLOG-AUDIO-20CLASS-29" >CLOG-AUDIO</a></span></span> <span class="locative-args"><a href="#x-28CLOG-3ACLOG-MULTIMEDIA-20CLASS-29" title="(CLOG:CLOG-MULTIMEDIA CLASS)">CLOG-MULTIMEDIA</a></span></span></p>
<p><code>CLOG</code> Audio class.</p></li>
</ul>
<p><a id='x-28CLOG-3ACREATE-AUDIO-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ACREATE-AUDIO-20GENERIC-FUNCTION-29" >CREATE-AUDIO</a></span></span> <span class="locative-args">CLOG-OBJ &amp;KEY SOURCE CONTROLS PRELOAD AUTOPLAY AUTOLOOP MUTED AUTO-PLACE</span></span></p>
<p>Create a <code>CLOG</code> Audio control</p></li>
</ul>
<p>Clog-Video - Class for <code>CLOG</code> Video Control</p>
<p><a id='x-28CLOG-3ACLOG-VIDEO-20CLASS-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[class]</span> <span class="reference-object"><a href="#x-28CLOG-3ACLOG-VIDEO-20CLASS-29" >CLOG-VIDEO</a></span></span> <span class="locative-args"><a href="#x-28CLOG-3ACLOG-MULTIMEDIA-20CLASS-29" title="(CLOG:CLOG-MULTIMEDIA CLASS)">CLOG-MULTIMEDIA</a></span></span></p>
<p><code>CLOG</code> Video class.</p></li>
</ul>
<p><a id='x-28CLOG-3ACREATE-VIDEO-20GENERIC-FUNCTION-29'></a></p>
<ul>
<li><p><span class=reference-bullet><span class=reference><span class="locative-type">[generic-function]</span> <span class="reference-object"><a href="#x-28CLOG-3ACREATE-VIDEO-20GENERIC-FUNCTION-29" >CREATE-VIDEO</a></span></span> <span class="locative-args">CLOG-OBJ &amp;KEY SOURCE CONTROLS PRELOAD POSTER AUTOPLAY AUTOLOOP MUTED AUTO-PLACE</span></span></p>
<p>Create a <code>CLOG</code> video control</p></li>
</ul>
<p><a id='x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29'></a></p>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-CANVAS-20MGL-PAX-3ASECTION-29" title="CLOG Canvas Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29" title="CLOG Window Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">&#8634;</a></span></span></p>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-MULTIMEDIA-20MGL-PAX-3ASECTION-29" title="CLOG Multimedia Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29" title="CLOG Window Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29">11 CLOG Body Objects</a></h2>
<h2><a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29">12 CLOG Body Objects</a></h2>
<p>CLOG-Body - <code>CLOG</code> Body Objects</p>
@ -3110,7 +3500,7 @@ or global objects.</p></li>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-BODY-20MGL-PAX-3ASECTION-29" title="CLOG Body Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29" title="CLOG Document Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29" title="CLOG Window Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29">12 CLOG Window Objects</a></h2>
<h2><a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29">13 CLOG Window Objects</a></h2>
<p>CLOG-Window - <code>CLOG</code> Window Objects</p>
@ -3461,7 +3851,7 @@ on-storage event is fired for changes to :local storage keys.</p></li>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-WINDOW-20MGL-PAX-3ASECTION-29" title="CLOG Window Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29" title="CLOG Location Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29" title="CLOG Document Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29">13 CLOG Document Objects</a></h2>
<h2><a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29">14 CLOG Document Objects</a></h2>
<p>CLOG-Document - <code>CLOG</code> Document Objects</p>
@ -3595,7 +3985,7 @@ on-storage event is fired for changes to :local storage keys.</p></li>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-DOCUMENT-20MGL-PAX-3ASECTION-29" title="CLOG Document Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29" title="CLOG Navigator Objects">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29" title="CLOG Location Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29">14 CLOG Location Objects</a></h2>
<h2><a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29">15 CLOG Location Objects</a></h2>
<p>CLOG-Location - <code>CLOG</code> Location Objects</p>
@ -3711,7 +4101,7 @@ on-storage event is fired for changes to :local storage keys.</p></li>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-LOCATION-20MGL-PAX-3ASECTION-29" title="CLOG Location Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-INTERNALS-20MGL-PAX-3ASECTION-29" title="CLOG Framework internals and extensions">&#8594;</a> <a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29" title="CLOG Navigator Objects">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29">15 CLOG Navigator Objects</a></h2>
<h2><a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29">16 CLOG Navigator Objects</a></h2>
<p>CLOG-Navigator - <code>CLOG</code> Navigator Objects</p>
@ -3761,7 +4151,7 @@ on-storage event is fired for changes to :local storage keys.</p></li>
<p><span class="outer-navigation"><span class="navigation"> <a href="#x-28CLOG-3A-40CLOG-NAVIGATOR-20MGL-PAX-3ASECTION-29" title="CLOG Navigator Objects">&#8592;</a> <a href="#x-28CLOG-3A-40CLOG-MANUAL-20MGL-PAX-3ASECTION-29" title="The CLOG manual">&#8593;</a> <a href="#x-28CLOG-3A-40CLOG-INTERNALS-20MGL-PAX-3ASECTION-29" title="CLOG Framework internals and extensions">&#8634;</a></span></span></p>
<h2><a href="#x-28CLOG-3A-40CLOG-INTERNALS-20MGL-PAX-3ASECTION-29">16 CLOG Framework internals and extensions</a></h2>
<h2><a href="#x-28CLOG-3A-40CLOG-INTERNALS-20MGL-PAX-3ASECTION-29">17 CLOG Framework internals and extensions</a></h2>
<p>Responding to new java script DOM events</p>