
124
Part II: Home Entertainment
For example, say you’re watching cable TV and you decide to watch a
movie. The component video input on the TV is already active. If enabling
DVD mode indiscriminately tells your TV to switch to component video
inputs, your TV will assume that since it’s already using component video
inputs it should cycle to the next component input. By “managing state,”
you can switch the TV input only when necessary.
Think of your TV as being in one of two states with respect to the inputs
you’re using: component video or S-Video. Similarly, the receiver can be in
one of three states for modes that require the TV: DVD, VCR, and TV. In
LUA, all variables are
global: the state of a variable defined in one script
is available to all scripts unless declared using the
local keyword. So, you
can create two state variables to indicate what the current state is. To keep
track of which input on the TV is currently active, create a variable called
tv_mode; create another variable, receiver_mode, to watch over the state of
the receiver’s modes. We’ll use strings as the values of the variables in this
project, but integers or even bitfields would work fine, too. The following
table shows the two state variables and their possible values.
Variable Possible values
tv_mode component
s-video
receiver_mode dvd
vcr
tv
Now, instead of blindly trying to switch my ...