/* * --- GSMP-COPYRIGHT-NOTE-BEGIN --- * * This copyright note is auto-generated by ./scripts/Create-CopyPatch. * Please add additional copyright information _after_ the line containing * the GSMP-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by * the ./scripts/Create-CopyPatch script. Do not edit this copyright text! * * GSMP: dam/example/spec2cc/IO_Machine.spec * General Sound Manipulation Program is Copyright (C) 2000 - 2004 * Valentin Ziegler and René Rebe * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; version 2. A copy of the GNU General * Public License can be found in the file LICENSE. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANT- * ABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General * Public License for more details. * * --- GSMP-COPYRIGHT-NOTE-END --- */ prelude {% #include "Data.hh" %} automaton IO_Machine {%IO_Notifications%} {%Utility::Empty%} { /* states list : * good states are marked by '+' * bad states are marked by '-' * the starting state is chosen by '$' */ + Running $+ Sleeping - Error }{ /* list of notifications */ X_Run NewConfig }{ /* There are no queries for IO_Machine */ } watcher TransportBar (fixed IO_Machine machine) { /* watcher helping states */ }{ /* state handling */ {machine.Running} {% PlayButton.Disable (); StopButton.Enable (); %} {machine.Sleeping} {% PlayButton.Enable (); StopButton.Disable (); %} {machine.Error} {% PlayButton.Disable (); StopButton.Disable (); %} }{ {machine.X_Run, machine.NewConfig} {% UpdateHardwareDisplay () %} }{% /* Critical Situation: Machine Terminated */ DisableAll (); %} watcher ConfigDialog (fixed IO_Machine machine) { DialogEnabled !machine.Running }{ {machine.Running, DialogEnabled} {% DisableDialog (); %} {DialogEnabled false;} {machine.?, !DialogEnabled} {% EnableDialog (); %} {DialogEnabled true;} }{ {machine.NewConfig} {% UpdateDialog (); %} }{% DisableDialog (); %}