Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / media / blink / texttrack_impl.h
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_BLINK_TEXTTRACK_IMPL_H_
6 #define MEDIA_BLINK_TEXTTRACK_IMPL_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "media/base/text_track.h"
13
14 namespace base {
15 class SingleThreadTaskRunner;
16 }
17
18 namespace blink {
19 class WebInbandTextTrackClient;
20 class WebMediaPlayerClient;
21 }
22
23 namespace media {
24
25 class WebInbandTextTrackImpl;
26
27 class TextTrackImpl : public TextTrack {
28  public:
29   // Constructor assumes ownership of the |text_track| object.
30   TextTrackImpl(const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
31                 blink::WebMediaPlayerClient* client,
32                 scoped_ptr<WebInbandTextTrackImpl> text_track);
33
34   ~TextTrackImpl() override;
35
36   void addWebVTTCue(const base::TimeDelta& start,
37                     const base::TimeDelta& end,
38                     const std::string& id,
39                     const std::string& content,
40                     const std::string& settings) override;
41
42  private:
43   static void OnAddCue(WebInbandTextTrackImpl* text_track,
44                        const base::TimeDelta& start,
45                        const base::TimeDelta& end,
46                        const std::string& id,
47                        const std::string& content,
48                        const std::string& settings);
49
50   static void OnRemoveTrack(blink::WebMediaPlayerClient* client,
51                             scoped_ptr<WebInbandTextTrackImpl> text_track);
52
53   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
54   blink::WebMediaPlayerClient* client_;
55   scoped_ptr<WebInbandTextTrackImpl> text_track_;
56   DISALLOW_COPY_AND_ASSIGN(TextTrackImpl);
57 };
58
59 }  // namespace media
60
61 #endif  // MEDIA_BLINK_TEXTTRACK_IMPL_H_