Home | History | Annotate | Download | only in media
      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_WEBMEDIAPLAYER_PARAMS_H_
      6 #define CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PARAMS_H_
      7 
      8 #include "base/callback.h"
      9 #include "base/memory/ref_counted.h"
     10 
     11 namespace base {
     12 class MessageLoopProxy;
     13 }
     14 
     15 namespace media {
     16 class AudioRendererSink;
     17 class GpuVideoAcceleratorFactories;
     18 class MediaLog;
     19 }
     20 
     21 namespace content {
     22 
     23 // Holds parameters for constructing WebMediaPlayerImpl without having
     24 // to plumb arguments through various abstraction layers.
     25 class WebMediaPlayerParams {
     26  public:
     27   // |message_loop_proxy| and |media_log| are the only required parameters;
     28   // all others may be null.
     29   WebMediaPlayerParams(
     30       const scoped_refptr<base::MessageLoopProxy>& message_loop_proxy,
     31       const base::Callback<void(const base::Closure&)>& defer_load_cb,
     32       const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink,
     33       const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories,
     34       const scoped_refptr<media::MediaLog>& media_log);
     35   ~WebMediaPlayerParams();
     36 
     37   const scoped_refptr<base::MessageLoopProxy>& message_loop_proxy() const {
     38     return message_loop_proxy_;
     39   }
     40 
     41   base::Callback<void(const base::Closure&)> defer_load_cb() const {
     42     return defer_load_cb_;
     43   }
     44 
     45   const scoped_refptr<media::AudioRendererSink>& audio_renderer_sink() const {
     46     return audio_renderer_sink_;
     47   }
     48 
     49   const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories()
     50       const {
     51     return gpu_factories_;
     52   }
     53 
     54   const scoped_refptr<media::MediaLog>& media_log() const {
     55     return media_log_;
     56   }
     57 
     58  private:
     59   scoped_refptr<base::MessageLoopProxy> message_loop_proxy_;
     60   base::Callback<void(const base::Closure&)> defer_load_cb_;
     61   scoped_refptr<media::AudioRendererSink> audio_renderer_sink_;
     62   scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_;
     63   scoped_refptr<media::MediaLog> media_log_;
     64 
     65   DISALLOW_IMPLICIT_CONSTRUCTORS(WebMediaPlayerParams);
     66 };
     67 
     68 }  // namespace media
     69 
     70 #endif  // CONTENT_RENDERER_MEDIA_WEBMEDIAPLAYER_PARAMS_H_
     71