"videodisc" A means of controlling videodisc equipment via ARexx Introduction ------------ The "videodisc" program was designed to let ARexx scripts (and applications capable of sending ARexx messages) control any of the video devices supported by the Amiga "player.device". Player.device is an Amiga shared device that provides mid-level support for the play back of audio/visual materials from supported video disc players and video tape decks. It commonly distributed with the AmigaVision authoring system. When run, "videodisc" opens an ARexx port, accepts straight-forward English commands, and translates them into the necessary "player.device" commands. "Videodisc" does not reply to your script or application until after it has completed an operation. For example, if told to play from frame 1 to frame 100, (using one command) your ARexx script won't continue until frame 100 has been reached. This prevents search latency from affecting the timing of a script or application. Setup ----- "Player.device" should be in your DEVS: directory. This file is the actual shared device that accepts commands and sends them to another smaller program that is specific to each player. The file is included in the devs directory of the "videodisc" distribution disk. It's also in the devs directory of the AmigaVision Boot Disk. The directory "players," and all the files in it, should be in your DEVS: directory. These files are the individual programs that accept mid-level commands from "player.device," and convert them to player-specific commands to be sent out the designated port. Some video devices need different code for different baud rates, so there may be more than one file for a particular player. The file "player-units" should be in your DEVS: directory. When "player.device" initial izes, this file is read to determine which type of player should be used, which serial de vice should be used, which port number, and the baud rate to be used. See Appendix A for a sample "player-units" file. YOU configure this file to let player.device know what you're using. Operation --------- You start "videodisc" by simply RUNning it from a CLI or shell. "Videodisc" will display an ARexx port name (usually VIDEODISC.1) and send an INITIALIZE command to the current video device. When you wish to terminate "videodisc", send it a QUIT command. This can be accomplished from the command line by typing: RX "address videodisc.1 quit" ARexx Command Set ----------------- You send "videodisc" commands by addressing the port named when "videodisc" is run. Usually this will be "videodisc.1" If it's not it means there is another copy of "videodisc" running. Having two (or more) copies of "videodisc" running at the same time does not provide any benefits. (You cannot, for example, drive two players simultaneously this way.) The basic commands are listed below. Items in brackets are optional, items in parenthe ses are defaults, and items separated by slashes are mutually exclusive. Capitalized words are actual commands or keywords, lower case words describe arguments. VIDEO [(ON) / OFF] INDEX [CHAPTER / (FRAME)] [(ON) / OFF] CX [(ON) / OFF] STILL [frame number / (current frame)] SEARCH [CHAPTER / FRAME] [number / (0)] STEP [(FORWARD) / REVERSE] [number of frames / (1)] WAITFOR [CHAPTER / (FRAME)] number PLAY [SLOW / (NORMAL) / FAST] [(FORWARD) / REVERSE]... [FROM [(FRAME) / CHAPTER] number]... [UNTIL [(TIME) / CHAPTER] number] INITIALIZE RESET IDLE QUIT The valid ranges for standard arguments are as follows. frame numbers = 1-54000 (Most players will go to the last frame on a disc if told to search to 54000, some will return an error, others will go to frame 1. Most players will go to frame 1 if told to go to frame 0, others will return an error, some do both.) chapter numbers = 0-99 (Most players will go to the last chapter if told to search to 99, some will return an error.) Known Bugs ---------- Gets a lock on shell (shell window can't be closed.) Cannot be stopped if a videodisc command fails. Fixed parsing order on PLAY command Revision History ---------------- 91.11.14 Version .12 Removed debugging info 91.11.04 Version .11 Added WAITFOR command 91.10.15 Version .1 First (sort of) working version. Appendix A - Layout of "devs:player-units" file ----------------------------------------------- The "player-units" file is a plain ASCII text file that is loaded and parsed when player.device starts up. It is up to you to make sure that the file is properly configured for your setup. Here's a sample file: --- file begins here --- 0 Sony_1200_9600 9600 serial.device 3 --- file ends here --- And an explanation: The first number, in this case "0", is simply the "device number" -- it will always be zero. Next is the filename of the "player file" that is to be used, in this case "Sony_1200_9600". Note that you should not include the path, as these files must be in devs:players/. Also note that some players have different files for different baud rates. Always use a file that is greater than or equal to the actual baud rate that you plan to use. Next comes the actual baud rate that the player is configured for, in this case, "9600". Note that most players have DIP switches which allow you to change the baud rate, but some have a fixed rate while others have an electronic menu that allows the rate to be changed. Next, the name of a shared device that is to be used when communicating with the player. This should usually be "serial.device". Do not give a path, as the file should be in devs: Finally, there's the "unit number" that is to be used with the serial.device (or whatever other device is being used.) This will usually be "0", as that is the unit number for the default port. In the sample, it is set to "3" because I'm using an A2232 multi-serial port board, and that's the unit number of my player. These argument must be in the stated order, separated by spaces, and the line should be terminated with a \n. (Or a press of the return key if you're editing the file by hand.)