text_track.h revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
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)
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Specifies the varieties of text tracks.
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)enum TextKind {
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  kTextSubtitles,
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  kTextCaptions,
2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  kTextDescriptions,
2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  kTextMetadata,
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  kTextNone
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)};
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class TextTrack {
2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) public:
2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual ~TextTrack() {}
2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void addWebVTTCue(const base::TimeDelta& start,
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const base::TimeDelta& end,
3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const std::string& id,
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const std::string& content,
3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                            const std::string& settings) = 0;
3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)};
3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)typedef base::Callback<scoped_ptr<TextTrack>
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    (TextKind kind,
3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     const std::string& label,
3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)     const std::string& language)> AddTextTrackCB;
3990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
4090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}  // namespace media
4190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
4290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif  // MEDIA_BASE_TEXT_TRACK_H_
43