root/content/common/media/media_stream_options.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. GetFirstConstraintByName
  2. GetFirstConstraintByName
  3. video_requested
  4. video_requested
  5. value
  6. GetFirstAudioConstraintByName
  7. GetFirstVideoConstraintByName
  8. GetConstraintsByName
  9. session_id
  10. session_id
  11. IsEqual

// Copyright (c) 2012 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.

#include "content/common/media/media_stream_options.h"

#include "base/logging.h"

namespace content {

const char kMediaStreamSource[] = "chromeMediaSource";
const char kMediaStreamSourceId[] = "chromeMediaSourceId";
const char kMediaStreamSourceInfoId[] = "sourceId";
const char kMediaStreamSourceTab[] = "tab";
const char kMediaStreamSourceScreen[] = "screen";
const char kMediaStreamSourceDesktop[] = "desktop";
const char kMediaStreamSourceSystem[] = "system";
const char kMediaStreamRenderToAssociatedSink[] =
    "chromeRenderToAssociatedSink";
// The prefix of this constant is 'goog' to match with other getUserMedia
// constraints for audio.
const char kMediaStreamAudioDucking[] = "googDucking";

namespace {

bool GetFirstConstraintByName(const StreamOptions::Constraints& constraints,
                              const std::string& name,
                              std::string* value) {
  for (StreamOptions::Constraints::const_iterator it = constraints.begin();
      it != constraints.end(); ++it ) {
    if (it->name == name) {
      *value = it->value;
      return true;
    }
  }
  return false;
}

bool GetFirstConstraintByName(const StreamOptions::Constraints& mandatory,
                              const StreamOptions::Constraints& optional,
                              const std::string& name,
                              std::string* value,
                              bool* is_mandatory) {
  if (GetFirstConstraintByName(mandatory, name, value)) {
      if (is_mandatory)
        *is_mandatory = true;
      return true;
    }
    if (is_mandatory)
      *is_mandatory = false;
    return GetFirstConstraintByName(optional, name, value);
}

} // namespace

StreamOptions::StreamOptions()
    : audio_requested(false),
      video_requested(false) {}

StreamOptions::StreamOptions(bool request_audio, bool request_video)
    :  audio_requested(request_audio), video_requested(request_video) {
}

StreamOptions::~StreamOptions() {}

StreamOptions::Constraint::Constraint() {}

StreamOptions::Constraint::Constraint(const std::string& name,
                                      const std::string& value)
    : name(name), value(value) {
}

bool StreamOptions::GetFirstAudioConstraintByName(const std::string& name,
                                                  std::string* value,
                                                  bool* is_mandatory) const {
  return GetFirstConstraintByName(mandatory_audio, optional_audio, name, value,
                                  is_mandatory);
}

bool StreamOptions::GetFirstVideoConstraintByName(const std::string& name,
                                                  std::string* value,
                                                  bool* is_mandatory) const {
  return GetFirstConstraintByName(mandatory_video, optional_video, name, value,
                                  is_mandatory);
}

// static
void StreamOptions::GetConstraintsByName(
    const StreamOptions::Constraints& constraints,
    const std::string& name,
    std::vector<std::string>* values) {
  for (StreamOptions::Constraints::const_iterator it = constraints.begin();
      it != constraints.end(); ++it ) {
    if (it->name == name)
      values->push_back(it->value);
  }
}

// static
const int StreamDeviceInfo::kNoId = -1;

StreamDeviceInfo::StreamDeviceInfo()
    : session_id(kNoId) {}

StreamDeviceInfo::StreamDeviceInfo(MediaStreamType service_param,
                                   const std::string& name_param,
                                   const std::string& device_param)
    : device(service_param, device_param, name_param),
      session_id(kNoId) {
}

StreamDeviceInfo::StreamDeviceInfo(MediaStreamType service_param,
                                   const std::string& name_param,
                                   const std::string& device_param,
                                   int sample_rate,
                                   int channel_layout,
                                   int frames_per_buffer)
    : device(service_param, device_param, name_param, sample_rate,
             channel_layout, frames_per_buffer),
      session_id(kNoId) {
}

// static
bool StreamDeviceInfo::IsEqual(const StreamDeviceInfo& first,
                               const StreamDeviceInfo& second) {
  return first.device.IsEqual(second.device) &&
      first.session_id == second.session_id;
}

}  // namespace content

/* [<][>][^][v][top][bottom][index][help] */