00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "clientAnalogDevice.h"
00017
00018 #include "indent.h"
00019
00020 TypeHandle ClientAnalogDevice::_type_handle;
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 void ClientAnalogDevice::
00032 ensure_control_index(int index) {
00033 nassertv(index >= 0);
00034
00035 _controls.reserve(index + 1);
00036 while ((int)_controls.size() <= index) {
00037 _controls.push_back(AnalogState());
00038 }
00039 }
00040
00041
00042
00043
00044
00045
00046 void ClientAnalogDevice::
00047 write(ostream &out, int indent_level) const {
00048 indent(out, indent_level) << get_type() << " " << get_device_name() << ":\n";
00049 write_controls(out, indent_level + 2);
00050 }
00051
00052
00053
00054
00055
00056
00057
00058 void ClientAnalogDevice::
00059 write_controls(ostream &out, int indent_level) const {
00060 bool any_controls = false;
00061 Controls::const_iterator ai;
00062 for (ai = _controls.begin(); ai != _controls.end(); ++ai) {
00063 const AnalogState &state = (*ai);
00064 if (state._known) {
00065 any_controls = true;
00066
00067 indent(out, indent_level)
00068 << (int)(ai - _controls.begin()) << ". " << state._state << "\n";
00069 }
00070 }
00071
00072 if (!any_controls) {
00073 indent(out, indent_level)
00074 << "(no known analog controls)\n";
00075 }
00076 }