// 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_