-
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
-
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
-
99
-
100
// Copyright 2025 Shota FUJI
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0
using GLib;
using Roon.JsonHelper;
namespace Roon {
namespace Transport {
public class OutputVolume : Object {
public string volume_type { get; construct; }
public bool has_min { get; construct; }
public double min { get; construct; }
public bool has_max { get; construct; }
public double max { get; construct; }
public bool has_value { get; construct; }
public double value { get; construct; }
public bool has_step { get; construct; }
public double step { get; construct; }
public bool is_muted { get; construct; }
internal OutputVolume.from_json_node(Json.Node node, FieldPath? obj_path = null) throws Error {
var obj = get_object(node, obj_path);
string type;
bool has_min = false;
double min = 0.0;
bool has_max = false;
double max = 0.0;
bool has_value = false;
double value = 0.0;
bool has_step = false;
double step = 0.0;
bool is_muted = false;
var type_path = new FieldPath("type", obj_path);
type = get_string(get_member(obj, type_path), type_path);
var min_path = new FieldPath("min", obj_path);
var min_node = get_optional_member(obj, min_path);
if (min_node != null) {
min = get_double(min_node, min_path);
has_min = true;
}
var max_path = new FieldPath("max", obj_path);
var max_node = get_optional_member(obj, max_path);
if (max_node != null) {
max = get_double(max_node, max_path);
has_max = true;
}
var value_path = new FieldPath("value", obj_path);
var value_node = get_optional_member(obj, value_path);
if (value_node != null) {
value = get_double(value_node, value_path);
has_value = true;
}
var step_path = new FieldPath("step", obj_path);
var step_node = get_optional_member(obj, step_path);
if (step_node != null) {
step = get_double(step_node, step_path);
has_step = true;
}
var is_muted_path = new FieldPath("is_muted", obj_path);
var is_muted_node = get_optional_member(obj, is_muted_path);
if (is_muted_node != null) {
is_muted = get_boolean(is_muted_node, is_muted_path);
}
Object(
volume_type: type,
has_min: has_min,
min: min,
has_max: has_max,
max: max,
has_value: has_value,
value: value,
has_step: has_step,
step: step,
is_muted: is_muted
);
}
}
}
}