| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 575 return -1; | 575 return -1; |
| 576 } | 576 } |
| 577 if (channelPtr->StopSend() != 0) { | 577 if (channelPtr->StopSend() != 0) { |
| 578 LOG_F(LS_WARNING) << "StopSend() failed to stop sending for channel " | 578 LOG_F(LS_WARNING) << "StopSend() failed to stop sending for channel " |
| 579 << channel; | 579 << channel; |
| 580 } | 580 } |
| 581 return StopSend(); | 581 return StopSend(); |
| 582 } | 582 } |
| 583 | 583 |
| 584 int VoEBaseImpl::GetVersion(char version[1024]) { | 584 int VoEBaseImpl::GetVersion(char version[1024]) { |
| 585 static_assert(kVoiceEngineVersionMaxMessageSize == 1024, ""); | |
| 586 | |
| 587 if (version == nullptr) { | 585 if (version == nullptr) { |
| 588 shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError); | 586 shared_->SetLastError(VE_INVALID_ARGUMENT, kTraceError); |
| 589 return (-1); | 587 return -1; |
| 590 } | 588 } |
| 591 | 589 |
| 592 char versionBuf[kVoiceEngineVersionMaxMessageSize]; | 590 std::string versionString = VoiceEngine::GetVersionString(); |
| 593 char* versionPtr = versionBuf; | 591 RTC_DCHECK_GT(1024u, versionString.size() + 1); |
| 594 | 592 char* end = std::copy(versionString.cbegin(), versionString.cend(), version); |
| 595 int32_t len = 0; | 593 end[0] = '\n'; |
| 596 int32_t accLen = 0; | 594 end[1] = '\0'; |
| 597 | |
| 598 len = AddVoEVersion(versionPtr); | |
| 599 if (len == -1) { | |
| 600 return -1; | |
| 601 } | |
| 602 versionPtr += len; | |
| 603 accLen += len; | |
| 604 assert(accLen < kVoiceEngineVersionMaxMessageSize); | |
| 605 | |
| 606 #ifdef WEBRTC_EXTERNAL_TRANSPORT | |
| 607 len = AddExternalTransportBuild(versionPtr); | |
| 608 if (len == -1) { | |
| 609 return -1; | |
| 610 } | |
| 611 versionPtr += len; | |
| 612 accLen += len; | |
| 613 assert(accLen < kVoiceEngineVersionMaxMessageSize); | |
| 614 #endif | |
| 615 | |
| 616 memcpy(version, versionBuf, accLen); | |
| 617 version[accLen] = '\0'; | |
| 618 | |
| 619 // to avoid the truncation in the trace, split the string into parts | |
| 620 char partOfVersion[256]; | |
| 621 for (int partStart = 0; partStart < accLen;) { | |
| 622 memset(partOfVersion, 0, sizeof(partOfVersion)); | |
| 623 int partEnd = partStart + 180; | |
| 624 while (version[partEnd] != '\n' && version[partEnd] != '\0') { | |
| 625 partEnd--; | |
| 626 } | |
| 627 if (partEnd < accLen) { | |
| 628 memcpy(partOfVersion, &version[partStart], partEnd - partStart); | |
| 629 } else { | |
| 630 memcpy(partOfVersion, &version[partStart], accLen - partStart); | |
| 631 } | |
| 632 partStart = partEnd; | |
| 633 } | |
| 634 | |
| 635 return 0; | 595 return 0; |
| 636 } | 596 } |
| 637 | 597 |
| 638 int32_t VoEBaseImpl::AddVoEVersion(char* str) const { | |
| 639 return sprintf(str, "VoiceEngine 4.1.0\n"); | |
| 640 } | |
| 641 | |
| 642 #ifdef WEBRTC_EXTERNAL_TRANSPORT | |
| 643 int32_t VoEBaseImpl::AddExternalTransportBuild(char* str) const { | |
| 644 return sprintf(str, "External transport build\n"); | |
| 645 } | |
| 646 #endif | |
| 647 | |
| 648 int VoEBaseImpl::LastError() { return (shared_->statistics().LastError()); } | 598 int VoEBaseImpl::LastError() { return (shared_->statistics().LastError()); } |
| 649 | 599 |
| 650 int32_t VoEBaseImpl::StartPlayout() { | 600 int32_t VoEBaseImpl::StartPlayout() { |
| 651 if (!shared_->audio_device()->Playing()) { | 601 if (!shared_->audio_device()->Playing()) { |
| 652 if (shared_->audio_device()->InitPlayout() != 0) { | 602 if (shared_->audio_device()->InitPlayout() != 0) { |
| 653 LOG_F(LS_ERROR) << "Failed to initialize playout"; | 603 LOG_F(LS_ERROR) << "Failed to initialize playout"; |
| 654 return -1; | 604 return -1; |
| 655 } | 605 } |
| 656 if (shared_->audio_device()->StartPlayout() != 0) { | 606 if (shared_->audio_device()->StartPlayout() != 0) { |
| 657 LOG_F(LS_ERROR) << "Failed to start playout"; | 607 LOG_F(LS_ERROR) << "Failed to start playout"; |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 867 shared_->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError, | 817 shared_->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError, |
| 868 "AssociateSendChannel() failed to locate accociate_send_channel"); | 818 "AssociateSendChannel() failed to locate accociate_send_channel"); |
| 869 return -1; | 819 return -1; |
| 870 } | 820 } |
| 871 | 821 |
| 872 channel_ptr->set_associate_send_channel(ch); | 822 channel_ptr->set_associate_send_channel(ch); |
| 873 return 0; | 823 return 0; |
| 874 } | 824 } |
| 875 | 825 |
| 876 } // namespace webrtc | 826 } // namespace webrtc |
| OLD | NEW |