Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4bca74f authored by Ismael Luceno's avatar Ismael Luceno Committed by Mauro Carvalho Chehab
Browse files

[media] solo6x10: Simplify solo_enum_ext_input



Additionally, now it specifies which channels it's showing.

Signed-off-by: default avatarIsmael Luceno <ismael@iodev.co.uk>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 9c41e690
Loading
Loading
Loading
Loading
+16 −18
Original line number Diff line number Diff line
@@ -386,26 +386,24 @@ static int solo_querycap(struct file *file, void *priv,
static int solo_enum_ext_input(struct solo_dev *solo_dev,
			       struct v4l2_input *input)
{
	static const char * const dispnames_1[] = { "4UP" };
	static const char * const dispnames_2[] = { "4UP-1", "4UP-2" };
	static const char * const dispnames_5[] = {
		"4UP-1", "4UP-2", "4UP-3", "4UP-4", "16UP"
	};
	const char * const *dispnames;
	int ext = input->index - solo_dev->nr_chans;
	unsigned int nup, first;

	if (input->index >= (solo_dev->nr_chans + solo_dev->nr_ext))
	if (ext >= solo_dev->nr_ext)
		return -EINVAL;

	if (solo_dev->nr_ext == 5)
		dispnames = dispnames_5;
	else if (solo_dev->nr_ext == 2)
		dispnames = dispnames_2;
	else
		dispnames = dispnames_1;

	snprintf(input->name, sizeof(input->name), "Multi %s",
		 dispnames[input->index - solo_dev->nr_chans]);

	nup   = (ext == 4) ? 16 : 4;
	first = (ext & 3) << 2; /* first channel in the n-up */
	snprintf(input->name, sizeof(input->name),
		 "Multi %d-up (cameras %d-%d)",
		 nup, first + 1, first + nup);
	/* Possible outputs:
	 *  Multi 4-up (cameras 1-4)
	 *  Multi 4-up (cameras 5-8)
	 *  Multi 4-up (cameras 9-12)
	 *  Multi 4-up (cameras 13-16)
	 *  Multi 16-up (cameras 1-16)
	 */
	return 0;
}