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