1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef MEDIA_BASE_TEXT_CUE_H_
6#define MEDIA_BASE_TEXT_CUE_H_
7
8#include <string>
9
10#include "base/memory/ref_counted.h"
11#include "base/time/time.h"
12#include "media/base/media_export.h"
13
14namespace media {
15
16// A text buffer to carry the components of a text track cue.
17class MEDIA_EXPORT TextCue
18    : public base::RefCountedThreadSafe<TextCue> {
19 public:
20  TextCue(const base::TimeDelta& timestamp,
21          const base::TimeDelta& duration,
22          const std::string& id,
23          const std::string& settings,
24          const std::string& text);
25
26  // Access to constructor parameters.
27  base::TimeDelta timestamp() const { return timestamp_; }
28  base::TimeDelta duration() const { return duration_; }
29  const std::string& id() const { return id_; }
30  const std::string& settings() const { return settings_; }
31  const std::string& text() const { return text_; }
32
33 private:
34  friend class base::RefCountedThreadSafe<TextCue>;
35  ~TextCue();
36
37  base::TimeDelta timestamp_;
38  base::TimeDelta duration_;
39  std::string id_;
40  std::string settings_;
41  std::string text_;
42
43  DISALLOW_IMPLICIT_CONSTRUCTORS(TextCue);
44};
45
46}  // namespace media
47
48#endif  // MEDIA_BASE_TEXT_CUE_H_
49