190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#ifndef MEDIA_BASE_TEXT_TRACK_H_
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define MEDIA_BASE_TEXT_TRACK_H_
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include <string>
990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/callback.h"
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h"
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace media {
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class TextTrackConfig;
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class TextTrack {
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) public:
2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual ~TextTrack() {}
2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void addWebVTTCue(const base::TimeDelta& start,
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const base::TimeDelta& end,
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const std::string& id,
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const std::string& content,
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const std::string& settings) = 0;
2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)};
2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)typedef base::Callback<void
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    (scoped_ptr<TextTrack>)> AddTextTrackDoneCB;
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)typedef base::Callback<void
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    (const TextTrackConfig& config,
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     const AddTextTrackDoneCB& done_cb)> AddTextTrackCB;
3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}  // namespace media
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif  // MEDIA_BASE_TEXT_TRACK_H_
38