Home | History | Annotate | Download | only in graphics
      1 /*
      2  * Copyright (C) 2012, 2013 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 #ifndef InbandTextTrackPrivateClient_h
     27 #define InbandTextTrackPrivateClient_h
     28 
     29 #include "core/platform/graphics/Color.h"
     30 #include "wtf/Noncopyable.h"
     31 #include "wtf/text/WTFString.h"
     32 
     33 namespace WebCore {
     34 
     35 class InbandTextTrackPrivate;
     36 
     37 class GenericCueData {
     38     WTF_MAKE_NONCOPYABLE(GenericCueData); WTF_MAKE_FAST_ALLOCATED;
     39 public:
     40     GenericCueData()
     41         : m_startTime(0)
     42         , m_endTime(0)
     43         , m_line(-1)
     44         , m_position(-1)
     45         , m_size(-1)
     46         , m_align(None)
     47         , m_baseFontSize(0)
     48         , m_relativeFontSize(0)
     49     {
     50     }
     51     virtual ~GenericCueData() { }
     52 
     53     double startTime() const { return m_startTime; }
     54     void setStartTime(double startTime) { m_startTime = startTime; }
     55 
     56     double endTime() const { return m_endTime; }
     57     void setEndTime(double endTime) { m_endTime = endTime; }
     58 
     59     String id() const { return m_id; }
     60     void setId(String id) { m_id = id; }
     61 
     62     String content() const { return m_content; }
     63     void setContent(String content) { m_content = content; }
     64 
     65     double line() const { return m_line; }
     66     void setLine(double line) { m_line = line; }
     67 
     68     double position() const { return m_position; }
     69     void setPosition(double position) { m_position = position; }
     70 
     71     double size() const { return m_size; }
     72     void setSize(double size) { m_size = size; }
     73 
     74     enum Alignment {
     75         None,
     76         Start,
     77         Middle,
     78         End
     79     };
     80     Alignment align() const { return m_align; }
     81     void setAlign(Alignment align) { m_align = align; }
     82 
     83     String fontName() const { return m_fontName; }
     84     void setFontName(String fontName) { m_fontName = fontName; }
     85 
     86     double baseFontSize() const { return m_baseFontSize; }
     87     void setBaseFontSize(double baseFontSize) { m_baseFontSize = baseFontSize; }
     88 
     89     double relativeFontSize() const { return m_relativeFontSize; }
     90     void setRelativeFontSize(double relativeFontSize) { m_relativeFontSize = relativeFontSize; }
     91 
     92     Color foregroundColor() const { return m_foregroundColor; }
     93     void setForegroundColor(RGBA32 color) { m_foregroundColor.setRGB(color); }
     94 
     95     Color backgroundColor() const { return m_backgroundColor; }
     96     void setBackgroundColor(RGBA32 color) { m_backgroundColor.setRGB(color); }
     97 
     98 private:
     99     double m_startTime;
    100     double m_endTime;
    101     String m_id;
    102     String m_content;
    103     double m_line;
    104     double m_position;
    105     double m_size;
    106     Alignment m_align;
    107     String m_fontName;
    108     double m_baseFontSize;
    109     double m_relativeFontSize;
    110     Color m_foregroundColor;
    111     Color m_backgroundColor;
    112 };
    113 
    114 class InbandTextTrackPrivateClient {
    115 public:
    116     virtual ~InbandTextTrackPrivateClient() { }
    117 
    118     virtual void addWebVTTCue(InbandTextTrackPrivate*, double /*start*/, double /*end*/, const String& /*id*/, const String& /*content*/, const String& /*settings*/) = 0;
    119     virtual void addGenericCue(InbandTextTrackPrivate*, GenericCueData*) = 0;
    120 };
    121 
    122 } // namespace WebCore
    123 
    124 #endif
    125