Make/Model  Device VersionConnection Type
Sony/DVP-777ESN/ASerial

Description:

This driver is for the Sony 777ES 400 disc DVD changer/player. The 777ES is a commonly used changer in automated home theaters. The serial control protocol it provides allows the automation system to select slots, get information about the state of the changer, and to do transport control. When combined with a program that provides meta-data about the DVDs in the changer and the slots that they are in, CQC will allow you to browse through your DVDs and select them for playing, then control the changer as a player and to get feedback from it on its state.

Note that normally you will not talk to this driver directly. This is not a formal media renderer driver, it is just a low level driver for the changer. Normally you will talk to the Changer Manager driver, and it will talk to the changer. The Changer Manager driver also allows you to have more than one changer in the system, but to treat them like one big player.

The Changer Manager keeps up with the active changer. When you select a new title to play, you tell the Changer Manager, and it makes the changer that contains that title the new active changer. If you then send transport controls to the Changer Manager, it sends the commands on to the active changer. It also polls some information from the active changer and makes that information available via its own fields. And it provides metadata on the active title. All of this allows you to deal with a single driver from your macros or user interfaces, while actually controlling multiple changers behind the scene.

Quirks and Limitations:

When you power on the changer, it will start playing the disc in the first slot. If this disc has any sort of non-stoppable content, you won't be able to stop it until it gets to the main menu. You can select another disc, but you can't stop the player. So you may want to be sure that the disc in slot one is a simple one that goes directly to the main menu.

When you power on the box, it will not be coherent for about 25 seconds. So after a power up, you will need to wait for about that long before attempting to interact with it. Unfortunately there doesn't seem to be any really good indication that it is in the coherent state. The power on indication comes back from it almost immediately, and therefore the Power field goes true very quickly, but it will not respond to other commands until it goes through its power up cycle.

During various operations, the disc, title, and track numbers will go zero and can actually cycle back and forth between valid values and zero a few times. So it is really difficult to do anything reliably based on changes in these fields, or at least you will probably only want to use 'positive' results, i.e. non-zero values. Attempting to use zero as a 'no longer used' value will cause various amounts of thrashing about as these values do their bouncing back and forth between zero and non-zero values.

Connection Details

The connection is serial, and a 3 wire style serial connection is fine. The connection settings are 9600, 8 data bits, no parity, and 1 stop bit. The cable must be a null modem cable, female on each end in most cases, so if you are not making the cable yourself you will probably need a gender changer on one end.

Driver Fields

This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...

NameTypeR/WDescription/Limits
CurrentDiscCardR/WReading gets the currently active disc, which can be zero if there is not one. Writing will select a new disc slot. If the slot has no disc in it, the operation will silently fail. The range is 0 to 400, but zero is only valid for reading, not for writing.
CurrentTitleCardRIndicates the currently active title. This can be zero if there is not a currently active title. The range is 0 to 499.
CurrentTrackCardRIndicates the currently active track. This can be zero if there is not a currently active track. The range is 0 to 999.
PlayModeStringRIndicates the current play mode of the changer. This is an enumerated field with the values: Stop, Pause, and Play.
PowerBooleanR/WReading gets the current power state and writing sets the power state, actually the standby state.
TransportStringWProvides transport control of the player. This is an enumerated field with the values: Angle, Audio, Down, Enter, Left, Menu, Next, Next Disc, Pause, Play, Previous, Prev Disc, Right, Stop, Subtitle, TopMenu, Unknown, Up, Foward, Reverse, Return, Folder, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.