String MediaControlsHost::displayNameForTrack(TextTrack* track) { if (!track) return emptyString(); Page* page = m_mediaElement->document().page(); if (!page) return emptyString(); CaptionUserPreferences* captionPreferences = page->group().captionPreferences(); return captionPreferences->displayNameForTrack(track); }
Vector<RefPtr<TextTrack>> MediaControlsHost::sortedTrackListForMenu(TextTrackList* trackList) { if (!trackList) return Vector<RefPtr<TextTrack>>(); Page* page = m_mediaElement->document().page(); if (!page) return Vector<RefPtr<TextTrack>>(); CaptionUserPreferences* captionPreferences = page->group().captionPreferences(); return captionPreferences->sortedTrackListForMenu(trackList); }
void MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu() { #if ENABLE(VIDEO_TRACK) // Remove any existing content. removeChildren(); m_menuItems.clear(); m_menuToTrackMap.clear(); if (!mediaController()->hasClosedCaptions()) return; HTMLMediaElement* mediaElement = toParentMediaElement(this); if (!mediaElement) return; TextTrackList* trackList = mediaElement->textTracks(); if (!trackList || !trackList->length()) return; Document* doc = document(); if (!document()->page()) return; CaptionUserPreferences* captionPreferences = document()->page()->group().captionPreferences(); Vector<RefPtr<TextTrack> > tracksForMenu = captionPreferences->sortedTrackListForMenu(trackList); RefPtr<Element> captionsHeader = doc->createElement(h3Tag, ASSERT_NO_EXCEPTION); captionsHeader->appendChild(doc->createTextNode(textTrackSubtitlesText())); appendChild(captionsHeader); RefPtr<Element> captionsMenuList = doc->createElement(ulTag, ASSERT_NO_EXCEPTION); for (unsigned i = 0, length = tracksForMenu.size(); i < length; ++i) { RefPtr<TextTrack> textTrack = tracksForMenu[i]; RefPtr<Element> menuItem = doc->createElement(liTag, ASSERT_NO_EXCEPTION); menuItem->appendChild(doc->createTextNode(captionPreferences->displayNameForTrack(textTrack.get()))); captionsMenuList->appendChild(menuItem); m_menuItems.append(menuItem); m_menuToTrackMap.add(menuItem, textTrack); } appendChild(captionsMenuList); #endif }
void InternalSettings::setShouldDisplayTrackKind(const String& kind, bool enabled, ExceptionCode& ec) { InternalSettingsGuardForSettings(); #if ENABLE(VIDEO_TRACK) if (!page()) return; CaptionUserPreferences* captionPreferences = page()->group().captionPreferences(); if (equalIgnoringCase(kind, "Subtitles")) captionPreferences->setUserPrefersSubtitles(enabled); else if (equalIgnoringCase(kind, "Captions")) captionPreferences->setUserPrefersCaptions(enabled); else if (equalIgnoringCase(kind, "TextDescriptions")) captionPreferences->setUserPrefersTextDescriptions(enabled); else ec = SYNTAX_ERR; #else UNUSED_PARAM(kind); UNUSED_PARAM(enabled); #endif }
bool InternalSettings::shouldDisplayTrackKind(const String& kind, ExceptionCode& ec) { InternalSettingsGuardForSettingsReturn(false); #if ENABLE(VIDEO_TRACK) if (!page()) return false; CaptionUserPreferences* captionPreferences = page()->group().captionPreferences(); if (equalIgnoringCase(kind, "Subtitles")) return captionPreferences->userPrefersSubtitles(); if (equalIgnoringCase(kind, "Captions")) return captionPreferences->userPrefersCaptions(); if (equalIgnoringCase(kind, "TextDescriptions")) return captionPreferences->userPrefersTextDescriptions(); ec = SYNTAX_ERR; return false; #else UNUSED_PARAM(kind); return false; #endif }