File: audio_node.cc

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (89 lines) | stat: -rw-r--r-- 3,482 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromeos/ash/components/dbus/audio/audio_node.h"

#include <stdint.h>

#include "base/check.h"
#include "base/format_macros.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "third_party/cros_system_api/dbus/service_constants.h"

namespace ash {

AudioNode::AudioNode() = default;

AudioNode::AudioNode(bool is_input,
                     uint64_t id,
                     bool has_v2_stable_device_id,
                     uint64_t stable_device_id_v1,
                     uint64_t stable_device_id_v2,
                     std::string device_name,
                     std::string type,
                     std::string name,
                     bool active,
                     uint64_t plugged_time,
                     uint32_t max_supported_channels,
                     uint32_t audio_effect,
                     int32_t number_of_volume_steps)
    : is_input(is_input),
      id(id),
      has_v2_stable_device_id(has_v2_stable_device_id),
      stable_device_id_v1(stable_device_id_v1),
      stable_device_id_v2(stable_device_id_v2),
      device_name(device_name),
      type(type),
      name(name),
      active(active),
      plugged_time(plugged_time),
      max_supported_channels(max_supported_channels),
      audio_effect(audio_effect),
      number_of_volume_steps(number_of_volume_steps) {
  DCHECK(!(audio_effect & (~(cras::EFFECT_TYPE_NOISE_CANCELLATION |
                             cras::EFFECT_TYPE_HFP_MIC_SR |
                             cras::EFFECT_TYPE_STYLE_TRANSFER))));
  if (!is_input && number_of_volume_steps <= 0) {
    this->number_of_volume_steps = NUMBER_OF_VOLUME_STEPS_DEFAULT;
  }
}

AudioNode::AudioNode(const AudioNode& other) = default;

AudioNode::~AudioNode() = default;

std::string AudioNode::ToString() const {
  std::string result;
  base::StringAppendF(&result, "is_input = %s ", is_input ? "true" : "false");
  base::StringAppendF(&result, "id = 0x%" PRIx64 " ", id);
  base::StringAppendF(&result, "stable_device_id_version = %d",
                      StableDeviceIdVersion());
  base::StringAppendF(&result, "stable_device_id_v1 = 0x%" PRIx64 " ",
                      stable_device_id_v1);
  base::StringAppendF(&result, "stable_device_id_v2 = 0x%" PRIx64 " ",
                      stable_device_id_v2);
  base::StringAppendF(&result, "device_name = %s ", device_name.c_str());
  base::StringAppendF(&result, "type = %s ", type.c_str());
  base::StringAppendF(&result, "name = %s ", name.c_str());
  base::StringAppendF(&result, "active = %s ", active ? "true" : "false");
  base::StringAppendF(&result, "plugged_time= %s ",
                      base::NumberToString(plugged_time).c_str());
  base::StringAppendF(&result, "max_supported_channels= %s ",
                      base::NumberToString(max_supported_channels).c_str());
  base::StringAppendF(&result, "audio_effect = 0x%" PRIx32 " ", audio_effect);
  base::StringAppendF(&result, "number_of_volume_steps= %s",
                      base::NumberToString(number_of_volume_steps).c_str());
  return result;
}

int AudioNode::StableDeviceIdVersion() const {
  return has_v2_stable_device_id ? 2 : 1;
}

uint64_t AudioNode::StableDeviceId() const {
  return has_v2_stable_device_id ? stable_device_id_v2 : stable_device_id_v1;
}

}  // namespace ash