/**
 * The zapchannel file format specifies tuning parameters for channels. Each line describes
 * a single channel, and consists of multiple options separated by ':'. The exact
 * format of each line depends on the DVB type of the channel (i.e. DVBS, DVBT, DVBC, or ATSC).
 *
 * Note: the lines have been split across multiple lines in the following due to length issues.
 *
 * The format for DVBT channels is:
 *
 * <name>:<frequency>:<inversion>:<bandwidth>:<fec_hp>:<fec_lp>:
 * <constellation>:<transmission>:<guard_interval>:<hierarchy>:
 * <video_pid>:<audio_pid>:<channel_number>
 *
 * 	name: name of the channel
 * 	frequency: frequency in Hz
 * 	inversion: one of INVERSION_OFF, INVERSION_ON, or INVERSION_AUTO.
 * 	bandwidth: one of BANDWIDTH_6_MHZ, BANDWIDTH_7_MHZ, or BANDWIDTH_8_MHZ.
 * 	fec_hp: FEC of the high priority stream, one of: FEC_1_2, FEC_2_3,
 * 		FEC_3_4, FEC_4_5, FEC_5_6, FEC_6_7, FEC_7_8, FEC_8_9, or FEC_AUTO.
 * 	fec_lp: FEC of the low priority stream, one of: FEC_1_2, FEC_2_3,
 * 		FEC_3_4, FEC_4_5, FEC_5_6, FEC_6_7, FEC_7_8, FEC_8_9, FEC_AUTO, or FEC_NONE.
 * 	constellation: one of QPSK, QAM_128, QAM_16, QAM_256, QAM_32, or QAM_64.
 * 	transmission: one of TRANSMISSION_MODE_2K, or TRANSMISSION_MODE_8K.
 * 	guard_interval: one of GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, or GUARD_INTERVAL_1_4.
 * 	hierarchy: one of HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, or HIERARCHY_4.
 * 	video_pid: PID of the video stream.
 * 	audio_pid: PID of the audio stream.
 * 	channel_number: Transport stream channel number of the program.
 *
 * DVBC:
 *
 * <name>:<frequency>:<inversion>:<symbol_rate>:<fec>:
 * <modulation>:<video_pid>:<audio_pid>:<channel_number>
 *
 * 	name: name of the channel
 * 	frequency: frequency in Hz
 * 	inversion: one of INVERSION_OFF, INVERSION_ON, or INVERSION_AUTO.
 * 	symbol_rate: Symbol rate of the channel in ksyms.
 * 	fec: One of: FEC_1_2, FEC_2_3, FEC_3_4, FEC_4_5, FEC_5_6, FEC_6_7,
 * 			FEC_7_8, FEC_8_9, or FEC_AUTO.
 * 	modulation: one of QAM_16, QAM_32, QAM_64, QAM_128, QAM_256, QAM_AUTO.
 * 	video_pid: PID of the video stream.
 * 	audio_pid: PID of the audio stream.
 * 	channel_number: Transport stream channel number of the program.
 *
 * DVBS:
 *
 * <name>:<frequency>:<polarization>:<satellite_switches>:<symbol_rate>:<video_pid>:<audio_pid>:<channel_number>
 *
 * 	name: name of the channel
 * 	frequency: frequency in kHz
 * 	polarization: one of H,V,L, or R.
 * 	satellite_switches: Treated as a 2 bit value controlling switches in SEC equipment:
 * 		bit 0: controls "satellite switch", 0: A, 1: B
 * 		bit 1: controls "switch option", 0: A, 1: B
 * 	symbol_rate: Symbol rate of the channel in ksyms.
 * 	video_pid: PID of the video stream.
 * 	audio_pid: PID of the audio stream.
 * 	channel_number: Transport stream channel number of the program.
 *
 * ATSC:
 *
 * <name>:<frequency>:<inversion>:<modulation>:<video_pid>:<audio_pid>:<channel_number>
 *
 * 	name: name of the channel
 * 	frequency: frequency in GHz
 * 	inversion: one of INVERSION_OFF, INVERSION_ON, or INVERSION_AUTO.
 * 	modulation: one of 8VSB, 16VSB, QAM_64, or QAM_256.
 * 	video_pid: PID of the video stream.
 * 	audio_pid: PID of the audio stream.
 * 	channel_number: Transport stream channel number of the program.
 */
