JSValue jsHTMLMediaElementNetworkState(ExecState* exec, JSValue slotBase, const Identifier&) { JSHTMLMediaElement* castedThis = static_cast<JSHTMLMediaElement*>(asObject(slotBase)); UNUSED_PARAM(exec); HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(castedThis->impl()); JSValue result = jsNumber(imp->networkState()); return result; }
void HTMLSourceElement::insertedIntoDocument() { HTMLElement::insertedIntoDocument(); if (parentNode() && (parentNode()->hasTagName(audioTag) || parentNode()->hasTagName(videoTag))) { HTMLMediaElement* media = static_cast<HTMLMediaElement*>(parentNode()); if (media->networkState() == HTMLMediaElement::NETWORK_EMPTY) media->scheduleLoad(); } }
static bool paintMediaMuteButton(RenderObject* object, const RenderObject::PaintInfo& paintInfo, const IntRect& rect) { HTMLMediaElement* mediaElement = toParentMediaElement(object); if (!mediaElement) return false; static Image* soundFull = platformResource("mediaSoundFull"); static Image* soundNone = platformResource("mediaSoundNone"); static Image* soundDisabled = platformResource("mediaSoundDisabled"); if (mediaElement->networkState() == HTMLMediaElement::NETWORK_NO_SOURCE || !mediaElement->hasAudio()) return paintMediaButton(paintInfo.context, rect, soundDisabled); return paintMediaButton(paintInfo.context, rect, mediaElement->muted() ? soundNone: soundFull); }
static bool paintMediaPlayButton(RenderObject* object, const RenderObject::PaintInfo& paintInfo, const IntRect& rect) { HTMLMediaElement* mediaElement = toParentMediaElement(object); if (!mediaElement) return false; static Image* mediaPlay = platformResource("mediaPlay"); static Image* mediaPause = platformResource("mediaPause"); static Image* mediaPlayDisabled = platformResource("mediaPlayDisabled"); if (mediaElement->networkState() == HTMLMediaElement::NETWORK_EMPTY || mediaElement->networkState() == HTMLMediaElement::NETWORK_NO_SOURCE) return paintMediaButton(paintInfo.context, rect, mediaPlayDisabled); return paintMediaButton(paintInfo.context, rect, mediaElement->paused() ? mediaPlay : mediaPause); }
JSValue* JSHTMLMediaElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case ErrorAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->error())); } case SrcAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsString(exec, imp->src()); } case CurrentSrcAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsString(exec, imp->currentSrc()); } case NetworkStateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->networkState()); } case BufferingRateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->bufferingRate()); } case BufferedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->buffered())); } case ReadyStateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->readyState()); } case SeekingAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->seeking()); } case CurrentTimeAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->currentTime()); } case DurationAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->duration()); } case PausedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->paused()); } case DefaultPlaybackRateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->defaultPlaybackRate()); } case PlaybackRateAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->playbackRate()); } case PlayedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->played())); } case SeekableAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return toJS(exec, WTF::getPtr(imp->seekable())); } case EndedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->ended()); } case AutoplayAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->autoplay()); } case StartAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->start()); } case EndAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->end()); } case LoopStartAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->loopStart()); } case LoopEndAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->loopEnd()); } case PlayCountAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->playCount()); } case CurrentLoopAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->currentLoop()); } case ControlsAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->controls()); } case VolumeAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsNumber(exec, imp->volume()); } case MutedAttrNum: { HTMLMediaElement* imp = static_cast<HTMLMediaElement*>(impl()); return jsBoolean(imp->muted()); } case ConstructorAttrNum: return getConstructor(exec); } return 0; }