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