blob: 941b5e6a09f479485719251395b71dfa95ef767f [file] [log] [blame]
// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Implementation of Pipeline.
#ifndef MEDIA_BASE_PIPELINE_IMPL_H_
#define MEDIA_BASE_PIPELINE_IMPL_H_
#include "base/scoped_ptr.h"
#include "media/base/pipeline.h"
namespace media {
class PipelineImpl : public Pipeline {
public:
PipelineImpl();
// Pipeline implementation.
virtual bool Initialize(FilterFactoryInterface* filter_factory,
const std::string& uri);
virtual bool Play();
virtual bool Pause();
virtual bool Seek(int64 seek_position);
virtual void Shutdown();
virtual int64 GetTime() const;
virtual int64 GetDuration() const;
virtual void SetStateChangedCallback(
Callback1<PipelineState>::Type* callback);
virtual void SetTimeChangedCallback(Callback1<int64>::Type* callback);
protected:
virtual ~PipelineImpl();
private:
int64 time_;
int64 duration_;
scoped_ptr<Callback1<PipelineState>::Type> state_changed_callback_;
scoped_ptr<Callback1<int64>::Type> time_changed_callback_;
DISALLOW_COPY_AND_ASSIGN(PipelineImpl);
};
} // namespace media
#endif // MEDIA_BASE_PIPELINE_IMPL_H_