# @(#) cx100.dat 1.0 1995-01-09
# For the Sony CDP-CX100 100 CD changer/player
# John H. DuBois III 
# Modified from data for the RM-D505, which has similar codes

name=Sony CD Player Remote RM-DX100

# Sony remote sensor works well with a transmitter rate of 1600
# transitions/sec

# carrier is the carrier frequency required, in Hz.
# This information may be used by a driver that has access to more than
# one transmitter, or with a system that can set the transmitter frequency.
carrier=40000

# cd player needs power for ~380 mS before it will accept remote commands

# Transmitter codes are given as a string of 1's and 0's in the function code
# table.  The actual IR pulse codes emitted for each 1 and 0 are given by the
# value that "one" and "zero" are set to.  Each character of the values of 
# "one" and "zero" indicates whether the 40 kHz IR transmitter is on for a unit
# of time.  The duration of the unit of time represented by each character of
# the values of "one" and "zero" is given by the value of "cycles".

# cycles is the number of 40 kHz cycles (25 uS periods) represented by each
# character in the definitions of "one" and "zero".
cycles=24

# repeat is the number of times the code should be sent
repeat=2

# pause is the length of time to wait between code repeats.
# It is given in the units given by the definition of "cycles"
# instead of in mS so that equipment that requires a very short
# pause can be accommodated.
pause=41

# sleep is the length of time to wait between sending different codes, 
# in milliseconds
# Actual minimum measured at 60 mS
sleep=100

# zero and one describe the waveform used to transmit a zero and one as given
# in the function table.  A '~' represents a period of tranmitter "on" time,
# during which time the emitter will be modulated by a 40 kHz square wave.
# For each '~', <cycles> IR pulses will be transmitted.  A '_' (underscore)
# represents a period of transmitter "off" time.  The period is given by the
# value of cycles.  
zero=~_
one=~~_

# start and stop give start and stop codes, if any, that cannot be described
# using ones and zeros as used in the function table and so cannot be given
# as prefixes and suffixes.
# start and stop are given in the same representation as zero and one.
# start and stop are the first and last codes transmitted (they are sent
# before and after prefix and suffix, respectively).
start=~~~~_
stop=

# prefix and suffix give the standard preamble and postamble, if any,
# that come immediately before and after the function code.
# Prefix and suffix are given in the same representation as function codes.
prefix=
suffix=10001
# The RM-DX100 has a switch to select between CD players 1, 2, and 3.
# The position of the switch changes the suffix.  The default suffix given
# here is for the remote with the switch set to player 1.
# The suffixes for players 2 and 3 are 10011100 and 10001010

component=cd

# Remote functions are given as a line of tab-separated fields:
# Code	Key	Word	Label	Vars	Description
# Code is given as a string of 0's and 1's whose meaning is
# in turn given by the definitions of "zero" and "one".
# Remote is the name of the remote that this function is for.
# Key and Word are the key and word that can be used to send this code.
# If Word is a single character, it should be the same as Key.
# Label is the label to put on a button representation of this function.
# Variable assignments that should only have effect for one function
# are given in the Vars field.
# Description is a description of what this function does.
# Any further fields are appended to Description preceded by a newline.
# A function line can be extended onto multiple lines by beginning the
# extension lines with a tab.
# The tab is included in the value, so a field boundary always exists
# between extention lines.

#Code	Key	Word	Label	Vars	Description
#cd:continue,shuffle	a	shufall	shuffle all	*
#	Shuffle-play all disks
#cd:continue,shuffle,shuffle	S	shufone	shuffle one	*
#	Shuffle-play a single disk
1011100	c	continue	continue	*
	Select continuous (unshuffled) play, then select one/all disk play
1010110	s	shuffle	shuffle	*
	Select shuffle play, then select one/all disk play
1111100	P	program	program	*
	Select programmed selection play/enter selection in program.
	To use the program feature, send program, then disk n/disk skip to get 
	to a disk, then last/next selection to get to a selection, then 
	program to enter the selection in the program.  Repeat to enter more 
	selections.  To select an entire disk, send program immediately after 
	selecting a disk.  The program can contain up to 32 selections 
	(selection of an entire disk counts as a single selection).  The 
	program is cleared by using stop, or by selecting another play mode, 
	or by pressing the tray eject button, or if power is turned off.
0011010	r	repeat	repeat	*
	Continuously repeat selections in current mode/cancel repeat
#cd:shuffle,continue	A	contall	continuous all	*
#	Play all disks in continuous (unshuffled) mode
#cd:shuffle,continue,continue	C	contone	continuous one	*
#	Play a single disk in continuous (unshuffled) mode
#0001010	t	time	time	*
#	Display time: elapsed in sel/remaining in sel/remaining on disk
0111110	+	skip+	next disk	*	Go to next disk
1011110	-	skip-	prev disk	*	Go to prev disk
0100110	p	play	play	*	Play disk
#1111101	f	fade	fader	*	Fade out & pause/Unpause & fade in
1001110	"	pause	pause	*	Pause/Unpause
0000110	l	last	last selection		*
	Start of current selection, or prior selection
1000110	n	next	next selection		*
	Start of next selection (random in shuffle mode)
0001110	.	stop	stop		*
	Stop playing/Delete selection from program
1100110	<	reverse	reverse	*	Reverse search
0010110	>	forward	fast forward	*	Forward search
0101001	d	disc	select disc	*	Select disc by number
1101001	t	track	select track	*	Select track by number
0011001	g	group	select group	*	Select group by number
0000000	1	1	1	*	Enter 1 for disk/track/group number
1000000	2	2	2	*	Enter 2 for disk/track/group number
0100000	3	3	3	*	Enter 3 for disk/track/group number
1100000	4	4	4	*	Enter 4 for disk/track/group number
0010000	5	5	5	*	Enter 5 for disk/track/group number
1010000	6	6	6	*	Enter 6 for disk/track/group number
0110000	7	7	7	*	Enter 7 for disk/track/group number
1110000	8	8	8	*	Enter 8 for disk/track/group number
0001000	9	9	9	*	Enter 9 for disk/track/group number
0000010	0	10/0	10/0	*	Enter 10/0 for disk/track/group number
1101000	e	enter	enter	*	Enter number for disk/track/group
0001010	m	memo	enter	*	Enter memo
1100100	D	down	volume	*	Line level down
0100100	U	up	volume	*	Line level up
0000011	]	jog+	jog up	sleep=60	Jog-select next disc
1000011	[	jog-	jog down	sleep=60,repeat=1	
	Jog-select prev disc/letter
0100011	}	jog+!	double jog up	sleep=60	
	Jog-select next disc/letter
0010011	)	jog+!!	quad jog up	sleep=60	
	Jog-select next disc/letter


# These are codes not sent by the remote that produce a change in the display
# of unknown meaning
# 0010011
# 0100011
# 1010011
# 1011000
# 1100011
# 1111000	This one once changed the display to '1 DELETE'...