1/*
2 * Copyright (C) 2015 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#pragma once
27
28#include <wtf/text/WTFString.h>
29
30namespace WebCore {
31
32class MediaPlayerEnums {
33public:
34 enum NetworkState { Empty, Idle, Loading, Loaded, FormatError, NetworkError, DecodeError };
35 enum ReadyState { HaveNothing, HaveMetadata, HaveCurrentData, HaveFutureData, HaveEnoughData };
36 enum MovieLoadType { Unknown, Download, StoredStream, LiveStream };
37 enum Preload { None, MetaData, Auto };
38 enum VideoGravity { VideoGravityResize, VideoGravityResizeAspect, VideoGravityResizeAspectFill };
39 enum SupportsType { IsNotSupported, IsSupported, MayBeSupported };
40 enum {
41 VideoFullscreenModeNone = 0,
42 VideoFullscreenModeStandard = 1 << 0,
43 VideoFullscreenModePictureInPicture = 1 << 1,
44 };
45 typedef uint32_t VideoFullscreenMode;
46
47 enum class BufferingPolicy {
48 Default,
49 LimitReadAhead,
50 MakeResourcesPurgeable,
51 PurgeResources,
52 };
53};
54
55WTF::String convertEnumerationToString(MediaPlayerEnums::ReadyState);
56WTF::String convertEnumerationToString(MediaPlayerEnums::NetworkState);
57WTF::String convertEnumerationToString(MediaPlayerEnums::Preload);
58WTF::String convertEnumerationToString(MediaPlayerEnums::SupportsType);
59WTF::String convertEnumerationToString(MediaPlayerEnums::BufferingPolicy);
60
61} // namespace WebCore
62
63
64namespace WTF {
65
66template<typename Type>
67struct LogArgument;
68
69template <>
70struct LogArgument<WebCore::MediaPlayerEnums::ReadyState> {
71 static WTF::String toString(const WebCore::MediaPlayerEnums::ReadyState state)
72 {
73 return convertEnumerationToString(state);
74 }
75};
76
77template <>
78struct LogArgument<WebCore::MediaPlayerEnums::NetworkState> {
79 static WTF::String toString(const WebCore::MediaPlayerEnums::NetworkState state)
80 {
81 return convertEnumerationToString(state);
82 }
83};
84
85template <>
86struct LogArgument<WebCore::MediaPlayerEnums::BufferingPolicy> {
87 static WTF::String toString(const WebCore::MediaPlayerEnums::BufferingPolicy policy)
88 {
89 return convertEnumerationToString(policy);
90 }
91};
92
93}; // namespace WTF
94