| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2011 Google Inc. All rights reserved. | 2  * Copyright (C) 2011 Google Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions are | 5  * modification, are permitted provided that the following conditions are | 
| 6  * met: | 6  * met: | 
| 7  * | 7  * | 
| 8  *     * Redistributions of source code must retain the above copyright | 8  *     * Redistributions of source code must retain the above copyright | 
| 9  * notice, this list of conditions and the following disclaimer. | 9  * notice, this list of conditions and the following disclaimer. | 
| 10  *     * Redistributions in binary form must reproduce the above | 10  *     * Redistributions in binary form must reproduce the above | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 50 | 50 | 
| 51   WebMediaStreamSource::ExtraData* getExtraData() { return m_extraData.get(); } | 51   WebMediaStreamSource::ExtraData* getExtraData() { return m_extraData.get(); } | 
| 52 | 52 | 
| 53  private: | 53  private: | 
| 54   std::unique_ptr<WebMediaStreamSource::ExtraData> m_extraData; | 54   std::unique_ptr<WebMediaStreamSource::ExtraData> m_extraData; | 
| 55 }; | 55 }; | 
| 56 | 56 | 
| 57 }  // namespace | 57 }  // namespace | 
| 58 | 58 | 
| 59 WebMediaStreamSource WebMediaStreamSource::ExtraData::owner() { | 59 WebMediaStreamSource WebMediaStreamSource::ExtraData::owner() { | 
| 60   ASSERT(m_owner); | 60   DCHECK(m_owner); | 
| 61   return WebMediaStreamSource(m_owner); | 61   return WebMediaStreamSource(m_owner); | 
| 62 } | 62 } | 
| 63 | 63 | 
| 64 void WebMediaStreamSource::ExtraData::setOwner(MediaStreamSource* owner) { | 64 void WebMediaStreamSource::ExtraData::setOwner(MediaStreamSource* owner) { | 
| 65   ASSERT(!m_owner); | 65   DCHECK(!m_owner); | 
| 66   m_owner = owner; | 66   m_owner = owner; | 
| 67 } | 67 } | 
| 68 | 68 | 
| 69 WebMediaStreamSource::WebMediaStreamSource(MediaStreamSource* mediaStreamSource) | 69 WebMediaStreamSource::WebMediaStreamSource(MediaStreamSource* mediaStreamSource) | 
| 70     : m_private(mediaStreamSource) {} | 70     : m_private(mediaStreamSource) {} | 
| 71 | 71 | 
| 72 WebMediaStreamSource& WebMediaStreamSource::operator=( | 72 WebMediaStreamSource& WebMediaStreamSource::operator=( | 
| 73     MediaStreamSource* mediaStreamSource) { | 73     MediaStreamSource* mediaStreamSource) { | 
| 74   m_private = mediaStreamSource; | 74   m_private = mediaStreamSource; | 
| 75   return *this; | 75   return *this; | 
| 76 } | 76 } | 
| 77 | 77 | 
| 78 void WebMediaStreamSource::assign(const WebMediaStreamSource& other) { | 78 void WebMediaStreamSource::assign(const WebMediaStreamSource& other) { | 
| 79   m_private = other.m_private; | 79   m_private = other.m_private; | 
| 80 } | 80 } | 
| 81 | 81 | 
| 82 void WebMediaStreamSource::reset() { | 82 void WebMediaStreamSource::reset() { | 
| 83   m_private.reset(); | 83   m_private.reset(); | 
| 84 } | 84 } | 
| 85 | 85 | 
| 86 WebMediaStreamSource::operator MediaStreamSource*() const { | 86 WebMediaStreamSource::operator MediaStreamSource*() const { | 
| 87   return m_private.get(); | 87   return m_private.get(); | 
| 88 } | 88 } | 
| 89 | 89 | 
| 90 void WebMediaStreamSource::initialize(const WebString& id, | 90 void WebMediaStreamSource::initialize(const WebString& id, | 
| 91                                       Type type, | 91                                       Type type, | 
| 92                                       const WebString& name) { | 92                                       const WebString& name) { | 
| 93   m_private = MediaStreamSource::create( | 93   m_private = MediaStreamSource::create( | 
| 94       id, static_cast<MediaStreamSource::StreamType>(type), name); | 94       id, static_cast<MediaStreamSource::StreamType>(type), name, false); | 
|  | 95 } | 
|  | 96 | 
|  | 97 void WebMediaStreamSource::initialize(const WebString& id, | 
|  | 98                                       Type type, | 
|  | 99                                       const WebString& name, | 
|  | 100                                       bool remote) { | 
|  | 101   m_private = MediaStreamSource::create( | 
|  | 102       id, static_cast<MediaStreamSource::StreamType>(type), name, remote); | 
| 95 } | 103 } | 
| 96 | 104 | 
| 97 WebString WebMediaStreamSource::id() const { | 105 WebString WebMediaStreamSource::id() const { | 
| 98   ASSERT(!m_private.isNull()); | 106   DCHECK(!m_private.isNull()); | 
| 99   return m_private.get()->id(); | 107   return m_private.get()->id(); | 
| 100 } | 108 } | 
| 101 | 109 | 
| 102 WebMediaStreamSource::Type WebMediaStreamSource::getType() const { | 110 WebMediaStreamSource::Type WebMediaStreamSource::getType() const { | 
| 103   ASSERT(!m_private.isNull()); | 111   DCHECK(!m_private.isNull()); | 
| 104   return static_cast<Type>(m_private.get()->type()); | 112   return static_cast<Type>(m_private.get()->type()); | 
| 105 } | 113 } | 
| 106 | 114 | 
| 107 WebString WebMediaStreamSource::name() const { | 115 WebString WebMediaStreamSource::name() const { | 
| 108   ASSERT(!m_private.isNull()); | 116   DCHECK(!m_private.isNull()); | 
| 109   return m_private.get()->name(); | 117   return m_private.get()->name(); | 
| 110 } | 118 } | 
| 111 | 119 | 
|  | 120 bool WebMediaStreamSource::remote() const { | 
|  | 121   DCHECK(!m_private.isNull()); | 
|  | 122   return m_private.get()->remote(); | 
|  | 123 } | 
|  | 124 | 
| 112 void WebMediaStreamSource::setReadyState(ReadyState state) { | 125 void WebMediaStreamSource::setReadyState(ReadyState state) { | 
| 113   ASSERT(!m_private.isNull()); | 126   DCHECK(!m_private.isNull()); | 
| 114   m_private->setReadyState(static_cast<MediaStreamSource::ReadyState>(state)); | 127   m_private->setReadyState(static_cast<MediaStreamSource::ReadyState>(state)); | 
| 115 } | 128 } | 
| 116 | 129 | 
| 117 WebMediaStreamSource::ReadyState WebMediaStreamSource::getReadyState() const { | 130 WebMediaStreamSource::ReadyState WebMediaStreamSource::getReadyState() const { | 
| 118   ASSERT(!m_private.isNull()); | 131   DCHECK(!m_private.isNull()); | 
| 119   return static_cast<ReadyState>(m_private->getReadyState()); | 132   return static_cast<ReadyState>(m_private->getReadyState()); | 
| 120 } | 133 } | 
| 121 | 134 | 
| 122 WebMediaStreamSource::ExtraData* WebMediaStreamSource::getExtraData() const { | 135 WebMediaStreamSource::ExtraData* WebMediaStreamSource::getExtraData() const { | 
| 123   ASSERT(!m_private.isNull()); | 136   DCHECK(!m_private.isNull()); | 
| 124   MediaStreamSource::ExtraData* data = m_private->getExtraData(); | 137   MediaStreamSource::ExtraData* data = m_private->getExtraData(); | 
| 125   if (!data) | 138   if (!data) | 
| 126     return 0; | 139     return 0; | 
| 127   return static_cast<ExtraDataContainer*>(data)->getExtraData(); | 140   return static_cast<ExtraDataContainer*>(data)->getExtraData(); | 
| 128 } | 141 } | 
| 129 | 142 | 
| 130 void WebMediaStreamSource::setExtraData(ExtraData* extraData) { | 143 void WebMediaStreamSource::setExtraData(ExtraData* extraData) { | 
| 131   ASSERT(!m_private.isNull()); | 144   DCHECK(!m_private.isNull()); | 
| 132 | 145 | 
| 133   if (extraData) | 146   if (extraData) | 
| 134     extraData->setOwner(m_private.get()); | 147     extraData->setOwner(m_private.get()); | 
| 135 | 148 | 
| 136   m_private->setExtraData( | 149   m_private->setExtraData( | 
| 137       WTF::wrapUnique(new ExtraDataContainer(WTF::wrapUnique(extraData)))); | 150       WTF::wrapUnique(new ExtraDataContainer(WTF::wrapUnique(extraData)))); | 
| 138 } | 151 } | 
| 139 | 152 | 
| 140 WebMediaConstraints WebMediaStreamSource::constraints() { | 153 WebMediaConstraints WebMediaStreamSource::constraints() { | 
| 141   ASSERT(!m_private.isNull()); | 154   DCHECK(!m_private.isNull()); | 
| 142   return m_private->constraints(); | 155   return m_private->constraints(); | 
| 143 } | 156 } | 
| 144 | 157 | 
| 145 bool WebMediaStreamSource::requiresAudioConsumer() const { | 158 bool WebMediaStreamSource::requiresAudioConsumer() const { | 
| 146   ASSERT(!m_private.isNull()); | 159   DCHECK(!m_private.isNull()); | 
| 147   return m_private->requiresAudioConsumer(); | 160   return m_private->requiresAudioConsumer(); | 
| 148 } | 161 } | 
| 149 | 162 | 
| 150 class ConsumerWrapper final : public AudioDestinationConsumer { | 163 class ConsumerWrapper final : public AudioDestinationConsumer { | 
| 151   USING_FAST_MALLOC(ConsumerWrapper); | 164   USING_FAST_MALLOC(ConsumerWrapper); | 
| 152 | 165 | 
| 153  public: | 166  public: | 
| 154   static ConsumerWrapper* create(WebAudioDestinationConsumer* consumer) { | 167   static ConsumerWrapper* create(WebAudioDestinationConsumer* consumer) { | 
| 155     return new ConsumerWrapper(consumer); | 168     return new ConsumerWrapper(consumer); | 
| 156   } | 169   } | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 180   size_t numberOfChannels = bus->numberOfChannels(); | 193   size_t numberOfChannels = bus->numberOfChannels(); | 
| 181   WebVector<const float*> busVector(numberOfChannels); | 194   WebVector<const float*> busVector(numberOfChannels); | 
| 182   for (size_t i = 0; i < numberOfChannels; ++i) | 195   for (size_t i = 0; i < numberOfChannels; ++i) | 
| 183     busVector[i] = bus->channel(i)->data(); | 196     busVector[i] = bus->channel(i)->data(); | 
| 184 | 197 | 
| 185   m_consumer->consumeAudio(busVector, numberOfFrames); | 198   m_consumer->consumeAudio(busVector, numberOfFrames); | 
| 186 } | 199 } | 
| 187 | 200 | 
| 188 void WebMediaStreamSource::addAudioConsumer( | 201 void WebMediaStreamSource::addAudioConsumer( | 
| 189     WebAudioDestinationConsumer* consumer) { | 202     WebAudioDestinationConsumer* consumer) { | 
| 190   ASSERT(isMainThread()); | 203   DCHECK(isMainThread()); | 
| 191   ASSERT(!m_private.isNull() && consumer); | 204   DCHECK(!m_private.isNull() && consumer); | 
| 192 | 205 | 
| 193   m_private->addAudioConsumer(ConsumerWrapper::create(consumer)); | 206   m_private->addAudioConsumer(ConsumerWrapper::create(consumer)); | 
| 194 } | 207 } | 
| 195 | 208 | 
| 196 bool WebMediaStreamSource::removeAudioConsumer( | 209 bool WebMediaStreamSource::removeAudioConsumer( | 
| 197     WebAudioDestinationConsumer* consumer) { | 210     WebAudioDestinationConsumer* consumer) { | 
| 198   ASSERT(isMainThread()); | 211   DCHECK(isMainThread()); | 
| 199   ASSERT(!m_private.isNull() && consumer); | 212   DCHECK(!m_private.isNull() && consumer); | 
| 200 | 213 | 
| 201   const HashSet<AudioDestinationConsumer*>& consumers = | 214   const HashSet<AudioDestinationConsumer*>& consumers = | 
| 202       m_private->audioConsumers(); | 215       m_private->audioConsumers(); | 
| 203   for (AudioDestinationConsumer* it : consumers) { | 216   for (AudioDestinationConsumer* it : consumers) { | 
| 204     ConsumerWrapper* wrapper = static_cast<ConsumerWrapper*>(it); | 217     ConsumerWrapper* wrapper = static_cast<ConsumerWrapper*>(it); | 
| 205     if (wrapper->consumer() == consumer) { | 218     if (wrapper->consumer() == consumer) { | 
| 206       m_private->removeAudioConsumer(wrapper); | 219       m_private->removeAudioConsumer(wrapper); | 
| 207       return true; | 220       return true; | 
| 208     } | 221     } | 
| 209   } | 222   } | 
| 210   return false; | 223   return false; | 
| 211 } | 224 } | 
| 212 | 225 | 
| 213 }  // namespace blink | 226 }  // namespace blink | 
| OLD | NEW | 
|---|