LightWrap++
AC++wrapperfortheLightWave3DSDK
command.h
Go to the documentation of this file.
1 #ifndef LWPP_COMMAND_H
2 #define LWPP_COMMAND_H
3 
4 #include <lwpp/global.h>
5 #include <string>
6 
7 typedef int LWCommandFunc (const char*);
8 
9 namespace lwpp
10 {
12 
15  inline int SendCommand(const char *cmdname, const char *fmt, ... )
16  {
17  static char cmd[ 512 ], arg[ 512 ];
18  //LWCommandFunc *lwcom = 0;
19  static LWCommandFunc *lwcom = (LWCommandFunc *) lwpp::SuperGlobal (LWPP_COMMANDFUNC_GLOBAL, GFUSE_TRANSIENT);
20  //if ((lwcom = (LWCommandFunc *) lwpp::SuperGlobal (LWPP_COMMANDFUNC_GLOBAL, GFUSE_TRANSIENT)) != 0)
21  if (lwcom)
22  {
23  if ( fmt )
24  {
25  va_list ap;
26  va_start( ap, fmt );
27  vsprintf( arg, fmt, ap );
28  va_end( ap );
29  sprintf( cmd, "%s %s", cmdname, arg );
30  //lwpp::LWMessage::Info("Command:", cmd);
31  return (lwcom)( cmd );
32  }
33  else
34  {
35  //message->info("Command:", cmdname);
36  return (lwcom)( cmdname );
37  }
38  }
39  return AFUNC_BADGLOBAL;
40  }
41  inline int SendCommand(const std::string cmd)
42  {
43 #ifdef _DEBUG
44  lwpp::dostream dout;
45  dout << "Command: " << cmd << std::endl;
46 #endif
47  //LWCommandFunc *lwcom = 0;
48  static LWCommandFunc *lwcom = (LWCommandFunc *) lwpp::SuperGlobal (LWPP_COMMANDFUNC_GLOBAL, GFUSE_TRANSIENT);
49  //if ((lwcom = (LWCommandFunc *) lwpp::SuperGlobal (LWPP_COMMANDFUNC_GLOBAL, GFUSE_TRANSIENT)) != 0)
50  if (lwcom)
51  {
52  return (lwcom)( cmd.c_str() );
53  }
54  return AFUNC_BADGLOBAL;
55  }
56 }
57 
58 #endif // LWPP_COMMAND_H