Switch to using separate struct for channel data; pass as user_data for signal callbacks.