Making this uint8_t arbitrarily limits us to 256 ADCs.  256 is a lot but there's really no advantage to making this smaller than uint32_t since it will be carried in a register.  Also, if channel can be uint32_t then offset should be at least on the same order of magnitude since it is basically used as an index while searching up to channel.