mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
spa: libcamera: source: use union for transferring control value
Use a union since only one member is active at a time, and use the
proper `libcamera::ControlType` enum to store the type instead of a
bare number. Also remove an unnecessary cast.
(cherry picked from commit 0022fc90b7)
This commit is contained in:
parent
8181e2e051
commit
7414d948ad
1 changed files with 7 additions and 5 deletions
|
|
@ -861,11 +861,13 @@ enum_end:
|
||||||
}
|
}
|
||||||
|
|
||||||
struct val {
|
struct val {
|
||||||
uint32_t type;
|
ControlType type;
|
||||||
float f_val;
|
|
||||||
int32_t i_val;
|
|
||||||
bool b_val;
|
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
|
union {
|
||||||
|
bool b_val;
|
||||||
|
int32_t i_val;
|
||||||
|
float f_val;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
static int do_update_ctrls(struct spa_loop *loop,
|
static int do_update_ctrls(struct spa_loop *loop,
|
||||||
|
|
@ -885,7 +887,7 @@ static int do_update_ctrls(struct spa_loop *loop,
|
||||||
impl->ctrls.set(d->id, d->f_val);
|
impl->ctrls.set(d->id, d->f_val);
|
||||||
break;
|
break;
|
||||||
case ControlTypeInteger32:
|
case ControlTypeInteger32:
|
||||||
impl->ctrls.set(d->id, (int32_t)d->i_val);
|
impl->ctrls.set(d->id, d->i_val);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue