Lingo in a Nutshell and Director in a Nutshell banner
Undocumented Projector Build Options


Here is a neat (undocumented and unsupported) trick you can play with Director 7.0 and later. You can use a configuration file to change the Projector options after it is built! You can even add a message window to a projector to aid in debugging! During the beta period, this configuration was known as the OTTO.INI file. It is a text file that follows the Windows conventions for INI files, even when being used on a Macintosh.

You need to rename the .INI file to match your Projector name. If the Projector is named "MyProj.EXE" (on Windows) or "MyProj" (on Mac), you'd name the INI file "MyProj.INI".

As far back as version 4, Director for Windows used an unrelated Director.INI file under Windows, which you also need to rename to match your Projector, and we can't have two files named the same thing in the same folder! (That DIRECTOR.INI file is described in detail in Appendix D of Lingo in a Nutshell and is used to configure various graphics and sound settings.) Luckily, the Windows INI file format allows for unrelated section headings (the words in square brackets shown below) in a single INI file. If using a separate DIRECTOR.INI file already, you should be able to add the following to the existing INI file instead of creating a new one.

Regardless, on both Macintosh and Windows, the INI file needs to be placed in the same folder as the Projector. It is only read when the Projector starts. If it misbehaves on, say, Windows NT, but works on the Macintosh, open the file in a local text editor and make sure that there are no funny square characters at the beginning or end of the lines. It is a PLAIN text file, with no formatting (use NotePad or SimpleText, not MS-Word to create/edit it).

Below are the options I know about. 1 means "on" and 0 means "off". Do NOT use TRUE and FALSE as is typical in Lingo. They are not supported in the OTTO.INI file. (Don't confuse these with the unrelated LINGO.INI file also described in Appendix D of Lingo in a Nutshell.)

[Settings]

MessageWindow=1

MessageWindowRect=0 300 320 400

LoopPlayList=0

EscapeOk=0

FullScreen=0

UseTitleBar=0

BackgroundAnimation=1

SwitchColorDepth=0

CenterStage=1

ResizeStage=0

SingleInstance=1



[Movies]

Movie01=LastCall



[Memory]

ExtraMainMemory=8000

UseSecondaryMemory=0

ExtraSecondaryMemory=0

Here is my best guess about what these settings do. Many of them will override the settings in the File>Create Projector>Options dialog used to set your Projector options when you create the Projector. I assume that the Projector settings become the defaults in the absence of an overriding setting, but I could be wrong. That is, I'm not sure what the defaults are if you specify an INI file with some settings, but omit other settings.

[Settings]

The following belong under the "[Settings]" section heading in the INI file


MessageWindow - turns the Message window on if set to 1, or off if set to 0. You may not be able to see the Message window unless FullScreen is set to 0. If the MessageWindowRect is not specified, you may not see it or it may not appear in the desired location. Once it appears, you can move and resize the window. If you close it, I think you need to restart your Projector to open it again.

Default: Message window is off by default (except in D7.0 there was a bug in which dropping a file onto a Projector would create a Message window! This was remedied in D7.0.2)

  MessageWindow = 0

Example: This opens the Message window along with your Projector!

  MessageWindow = 1

See Also:

  MessageWindowRect, FullScreen


MessageWindowRect - specifies the coordinates of the Message window. Ignored unless the MessageWindow option is set to 1. Specify four coordinates: left, top, right and bottom with no punctuation or delimiters or parentheses, as shown below. Once it appears, you can move and resize the Message window. If you close the Message window, I think you need to restart your Projector to open it again.

Default: I'm not sure. I think it opens the rect in the upper left. Perhaps:

  MessageWindowRect=0 0 100 200

Example: This sets the Message window rectangle to the lower left side of the screen

  MessageWindowRect=0 300 320 400

See Also:

  MessageWindow, FullScreen


LoopPlayList - I think this corresponds to the "Play Every Movie" checkbox in the Projector creation options. I think it is irrelevent when using Lingo to navigate between movies. It only applies if you have multiple movies in a Projector and want them to play in sequence.

Default:

I think it defaults to the setting chosen for"Play Every Movie" when you created your Projector .

Example:

  LoopPlayList=1


EscapeOk - specifies whether the Escape key will quit a projector? I'm not sure whether it also prevents other "quit-key" sequences such as Command-period or Ctrl-Q. I assume this is overriden by the exitLock Lingo property and perhaps causes the exitLock to default to TRUE instead of the usual FALSE.

Default: I think it defaults to 1, which would allow the Escape key to quit the Projector, but can be overridden in Lingo.

  EscapeOk=1

Example: This prevents the Escape key (and other keys?) from quitting the Projector.

  EscapeOk=0

See Also:

  the exitLock

Note: It appears that EscapeOK is actually the logical opposite of the exitLock. Be sure to provide a button or key combination that allows your user to quit your Projector if you set the EscapeOK to 0 or set the exitLock to 1.


FullScreen - controls whether the Projector plays "in a window" or as a "full screen" application.This corresponds to the "Full Screen" checkbox in the Projector creation options. I think the UseTitleBar setting is ignored if FullScreen is 1. You may not see the Message window (if it is turned on) if FullScreen is 1. Even Macintosh Projectors can be played in a window! Prior to Director 7, only Windows Projectors could be played in a window--Macintosh Projectors were always Full Screen in D6.5 and earlier versions.

Default:

I assume it defaults to the setting chosen for"Full Screen" when you created your Projector .

Example: This plays the Projector "In a Window" instead of Full Screen

  FullScreen=0

See Also:

  UseTitleBar, MessageWindow, MessageWindowRect


UseTitleBar - controls whether the Projector is shown with or without a title bar. This corresponds to the "Show Title Bar" checkbox in the Projector creation options. I think the UseTitleBar setting is ignored if FullScreen is 1 (or the Projector is created with the "Full Screen" checkbox selected. You may be able to change the title of the window using the Lingo property (the stage).title or using a third-party Xtra such as Buddy API. To control whether MIAWs have title bars, you can change the windowType of window property as described in Chapter 6 of Director in a Nutshell.

Default:

I assume it defaults to the setting chosen for "Show Title Bar" when you created your Projector .

Example: This uses the Projector name in the title bar if the Projector is played in a window. (I'm not sure if it works when the Projector is played Full Screen.

  UseTitleBar=1

See Also:

  FullScreen, (the stage).title


BackgroundAnimation - controls whether the Projector continues to animate when it is no longer the foreground application or if the application is minimized under Windows. (I think the stage always animates when the Projector is the foremost application even if a MIAW is in the foreground). This corresponds to the "Animate in Background" checkbox in the Projector creation options.

Default:

I assume it defaults to the setting chosen for "Animate in Background" when you created your Projector .

Example: This causes the playback head to continue advancing even when the Projector is not the foreground application.

  BackgroundAnimation=1

Notes: There is a similar, but unrelated option that controls whether DIRECTOR continues to animate when it is not the foreground application. This is controlled with the "Animate in Background" checkbox under File>Preferences>General in Director. That option is handy to keep Director running when switching between applications during authoring. It is necessary when using the MPEG or DirectMedia Xtras from Tabuleiro de Baiana or the zOpen Xtra from Zeus Productions to prevent Director from halting when performing operations with those Xtras.


SwitchColorDepth - controls whether the Projector attempts to change the monitor's color depth to match the color depth of the movie. This corresponds to the "Reset Monitor to Match Movie's Color Depth" checkbox in the Projector creation options. Refer to the section entitled "Monitor Color Depth" on pages 412-417 of Director in a Nutshell for more details. You may be able to change the color depth on the fly using the colorDepth Lingo property. This may no t work under Windows and may require a third-party Xtra such as Buddy API.

Default:

I assume it defaults to the setting chosen for "Reset Monitor to Match Movie's Color Depth" when you created your Projector .

Example: This causes the Projector to try to switch the monitors color depth if it doesn't match the current movie's color depth.

  SwitchColorDepth=1

See Also:

  the colorDepth

Notes: A movie's color depth is determined by the highest color depth of any of its bitmaps. All your movies in a project should use the same color depth, so you don't want the depth switching between movies. You may want it to switch when the Projector starts, but I think it rude to switch someone's monitor color depth without their consent. I prefer to check the colorDepth property and provide a warning or suggestion for the user to change it. Refer to Chapter 13 of Director in a Nutshell for a full discussion.


CenterStage - controls whether the Projector attempts to center the stage on the monitor (keep in mind the monitor resolution of playback machines may vary. This corresponds to the "Center" checkbox in the Projector creation options. I've heard rumors of people having trouble with this option, but I've never had a problem. If your Projector is not centering, check that the stage is set to be centered under Modify>Movie>Properties in Director. Also try playing it both in a window and full screen. Also refer to "Use Movie Settings" and "Match First Movie" Projector creation options. I'm not sure what happens when using multiple monitors with this property. The Lingo property the desktopRectList will report the monitor size (and the size of multiple monitors).

Default:

I assume it defaults to the setting chosen for "Center" when you created your Projector .

Example: This causes the Projector to be centered regardless of the monitor's size.

  CenterStage=1

See Also:

  the deskTopRectList


ResizeStage - controls whether the Projector resizes the stage whenever a new movie is branched to. This corresponds to the "Use Movie Settings" and "Match First Movie" radio buttons in the Projector creation options.Your movies should ordinarily all use the same stage size and position, so I never worry about this setting. The Lingo property the rect of the stage will report the stage size.

Default:

If you've chosen "Match First Movie" when you created your Projector, I assume it defaults to 0. If you've chosen "Use Movie Settings" when you created your Projector, I assume it defaults to 1.

Example: This causes the Projector to resize the stage if necessary whenever a new movie starts.

  ResizeStage=1

See Also:

  (the stage).rect


SingleInstance - controls whether the a second Windows Projector can be launched if the Projector is already running. This is useful to prevent a user from accidentally launching multiple copies of the Projector by repeatedly clicking the desktop icon, or clicking it while a CD is auto-starting. I assume it has no effect on the Macintosh. Third-party Xtras such as Buddy API can also check if another instance of the Projector is already running.

Default: The default is 0 under Windows, which allows multiple instances of a Projector to launch. The default is 1 on the Macintosh, and the OS does not allow overriding it.

  SingleInstance=0

Example: This prevents multiple Projectors from being launched.

  SingleInstance=0

Notes: I assume that this affects only multiple copies of a single Projector. I don't know if it prevents two different Projectors from being launched at once. The latter isn't ordinarily necessary or desirable. You are better off using on Projector and having it branch to multiple DIR or DXR files if necessary.


[Movies]

The following options belong under the "[Movies]" section heading in the INI file.


Movie01 - specifies the first movie to run from the Projector. This would be an external DIR, DXR, or DCR file. This would allow you to launch different movies without ever rebuilding your Projector. For a full discussion of so-called Stub Projectors, see Chapter 8 of Director in a Nutshell or this old tech note which doesn't really apply any more, Stub Projectors

Default: I assume the default is the first movie built into the Projector usnig File>Create Projector. I've never tried overriding it.

Example: This presumably causes the Projector to run the movie named "Foo". If it can't be found, it will also look for "Foo.DIR", "Foo.DXR", or "FOO.DCR" I assume.

  Movie01=Foo

See Also:

  LoopPlayList

Notes: There are no quotes around the movie name and the extension should be optional. I think you can use Movie02 through Movie99 to specify additional movies, but this is meaningless when navigating between movies via Lingo.


[Memory]

The following options belong under the "[Memory]" section heading in the INI file.


ExtraMainMemory - I'm not sure what this option does. I guess it allows Projectors to use more memory than is allocated to them. I don't know if it applies to Mac or Windows or both. The units appear to be "bytes".

Default: I have no idea. I've seen settings of 8000, but I assume the default is 0. See Note below for possible cautions.

Example: This presumably set this option to 8000 (about 8 MB) but I'm not sure what this does exactly.

  ExtraMainMemory=8000

See Also:

  UseSecondaryMemory, ExtraSecondaryMemory.

Notes:

Sometimes a setting of 0 tells Director to use all available memory, not necessarily "none". I don't know if that is the case here. Refer to, for example, the preLoadRAM property. See also the memory related settings in the Director.INI file as discussed in Appendix D of Lingo in a Nutshell.


UseSecondaryMemory - I'm not sure what this option does. I guess it allows Projectors to use more memory than is allocated to them, but I don't know how it relates to ExtraMainMemory. I don't know if it applies to Mac or Windows or both. I assume that it controls whether the ExtraSecondaryMemory setting is obeyed. This setting may correspond to Mac-only "Use System Temporary Memory" checkbox in the Projector creation options.

Default:

I assume it defaults to the setting chosen for "Use System Temporary Memory" when you created your Projector on the Macintosh. I'm guessing that it is ignored under Windows.

Example: This causes the Projector use secondary memory.

  UseSecondaryMemory=1

See Also:

  ExtraSecondaryMemory, ExtraMainMemory.


ExtraSecondaryMemory - I'm not sure what this option does. I guess it allows Projectors to use more memory than is allocated to them, but I don't know how it differs from ExtraMainMemory. I don't know if it applies to Mac or Windows or both. I assume that it is obeyed only if UseSecondaryMemory is 1. I assume the units are "bytes".

Default: I have no idea. I've seen settings of 0, so I assume the default is 0, but sometimes a setting of 0 tells Director to use all available memory, not necessarily "none".

Example: This presumably set this option to 8000 (about 8 MB) but I'm not sure what this does exactly.

  ExtraSecondaryMemory=8000

See Also:

  UseSecondaryMemory, ExtraSecondaryMemory.

Notes:

Sometimes a setting of 0 tells Director to use all available memory, not necessarily "none". I don't know if that is the case here. Refer to, for example, the preLoadRAM property. See also the memory related settings in the Director.INI file as discussed in Appendix D of Lingo in a Nutshell.



Zeus Home Page | LIAN TOC | DIAN TOC | Links | E-Mail

Place an Order | Downloads | FAQ | GuestBook | Glossary

[End of Page]

Copyright © 1996-2000. Bruce A. Epstein. All Rights Reserved.

(The page last revised January 21, 2000)