void
CBCI2000Controller::get_state_variable( ArgList& ioArgs )
{
  double result = 0;
  CALL( GetStateVariable( ioArgs.GetString( 1 ), result ) );
  ioArgs.SetInt( 0, static_cast<unsigned int>( result ) );
}
void
CBCI2000Controller::get_script( ArgList& ioArgs )
{
  std::string result;
  CALL( GetScript( ioArgs.GetString( 1 ), result ) );
  ioArgs.SetString( 0, result );
}
void
CBCI2000Controller::get_parameter( ArgList& ioArgs )
{
  std::string result;
  CALL( GetParameter( ioArgs.GetString( 1 ), result ) );
  ioArgs.SetString( 0, result );
}
void
CBCI2000Controller::execute( ArgList& ioArgs )
{
  std::string command = ioArgs.GetString( 1 );
  int exitCode = 0,
      result = mBCI2000.Execute( command, &exitCode );
  if( ioArgs.size() > 2 )
    ioArgs.SetInt( 1, exitCode );
  ioArgs.SetString( 2, com::DualString( mBCI2000.Result() ).ToWin() );
  ioArgs.SetInt( 0, result );
}
void
CBCI2000Controller::constructor_string( ArgList& ioArgs )
{
  DataPortSettings settings;
  std::wstring arg = ioArgs.GetString( 1 );
  bool isNetworkAddress = ( arg.find_first_of( L"\\/" ) == std::wstring::npos );
  if( isNetworkAddress )
  {
    settings[DataPortSettings::StartBCI2000] = L"";
    settings[DataPortSettings::TelnetAddress] = arg;
  }
  else
  {
    settings[DataPortSettings::StartBCI2000] = L"1";
    settings[DataPortSettings::OperatorPath] = arg;
  }
  mpDataPort = new CBCI2000ActiveDataPort;
  mpDataPort->Initialize( settings );
  mBCI2000.Connect( mpDataPort->BCI2000() );
}
void
CBCI2000Controller::set_script( ArgList& ioArgs )
{
  CALL( SetScript( ioArgs.GetString( 1 ), ioArgs.GetString( 2 ) ) );
}
void
CBCI2000Controller::set_state_variable( ArgList& ioArgs )
{
  CALL( SetStateVariable( ioArgs.GetString( 1 ), ioArgs.GetInt( 2 ) ) );
}
void
CBCI2000Controller::add_state_variable( ArgList& ioArgs )
{
  CALL( AddStateVariable( ioArgs.GetString( 1 ), ioArgs.GetInt( 2 ), ioArgs.GetInt( 3 ) ) );
}
void
CBCI2000Controller::load_parameters_remote( ArgList& ioArgs )
{
  CALL( LoadParametersRemote( ioArgs.GetString( 1 ) ) );
}
void
CBCI2000Controller::load_parameters_local( ArgList& ioArgs )
{
  CALL( LoadParametersLocal( ioArgs.GetString( 1 ) ) );
}
void
CBCI2000Controller::set_parameter( ArgList& ioArgs )
{
  CALL( SetParameter( ioArgs.GetString( 1 ), ioArgs.GetString( 2 ) ) );
}
void
CBCI2000Controller::set_data_directory( ArgList& ioArgs )
{
  mBCI2000.DataDirectory( ioArgs.GetString( 1 ) );
}
void
CBCI2000Controller::set_session( ArgList& ioArgs )
{
  mBCI2000.SessionID( ioArgs.GetString( 1 ) );
}
void
CBCI2000Controller::set_subject( ArgList& ioArgs )
{
  mBCI2000.SubjectID( ioArgs.GetString( 1 ) );
}
void
CBCI2000Controller::set_window_title( ArgList& ioArgs )
{
  mBCI2000.WindowTitle( ioArgs.GetString( 1 ) );
}