| /* Copyright 2023 The ChromiumOS Authors | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| // NOLINTNEXTLINE(build/include) | |
| #include "tools/mctk/entity.h" | |
| #include <linux/types.h> | |
| #include <unistd.h> | |
| #include <optional> | |
| #include <vector> | |
| #include "tools/mctk/control.h" | |
| #include "tools/mctk/debug.h" | |
| #include "tools/mctk/pad.h" | |
| V4lMcEntity::~V4lMcEntity() { | |
| if (fd_) | |
| close(*fd_); | |
| } | |
| V4lMcControl* V4lMcEntity::ControlById(__u32 id) { | |
| for (auto& control : controls_) { | |
| if (control->desc_.id == id) | |
| return control.get(); | |
| } | |
| return nullptr; | |
| } | |
| V4lMcPad* V4lMcEntity::PadByIndex(__u16 index) { | |
| for (auto& pad : pads_) { | |
| if (pad->desc_.index == index) | |
| return pad.get(); | |
| } | |
| return nullptr; | |
| } |