• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 CONTENT_RENDERER_MEDIA_TEXTTRACK_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_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 MessageLoopProxy;
16 }
17 
18 namespace blink {
19 class WebInbandTextTrackClient;
20 class WebMediaPlayerClient;
21 }
22 
23 namespace content {
24 
25 class WebInbandTextTrackImpl;
26 
27 class TextTrackImpl : public media::TextTrack {
28  public:
29   // Constructor assumes ownership of the |text_track| object.
30   TextTrackImpl(const scoped_refptr<base::MessageLoopProxy>& message_loop,
31                 blink::WebMediaPlayerClient* client,
32                 scoped_ptr<WebInbandTextTrackImpl> text_track);
33 
34   virtual ~TextTrackImpl();
35 
36   virtual 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::MessageLoopProxy> message_loop_;
54   blink::WebMediaPlayerClient* client_;
55   scoped_ptr<WebInbandTextTrackImpl> text_track_;
56   DISALLOW_COPY_AND_ASSIGN(TextTrackImpl);
57 };
58 
59 }  // namespace content
60 
61 #endif  // CONTENT_RENDERER_MEDIA_TEXTTRACK_IMPL_H_
62 
63