Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

textonlyFrontEnd.cpp

Go to the documentation of this file.
00001 /********************************************************************
00002 Description:
00003 part of the 3Dsia project
00004 created: StonedBones, 24.2.2000
00005 
00006 History:
00007     date,   name,       changes,                    in funtion
00008     240200  StonedBones modified server-frontend-
00009                         plugin for use with client
00010 
00011 ********************************************************************/
00012 
00013 #include "textonlyFrontEnd.h"
00014 
00015 #include "../../../common/config.h"
00016 #include "../../../common/options.h"
00017 #include "../../../common/intToChar.h"
00018 
00019 #include "../../devicePlugIn.h"
00020 
00021 #include <linux/joystick.h>
00022 #include <sys/ioctl.h>
00023 #include <dlfcn.h>
00024 #include <fcntl.h>
00025 #include <stdio.h>
00026 #include <malloc.h>
00027 #include <unistd.h>
00028 #include <string.h>
00029 #include <stdlib.h>
00030 
00031 /*...................................................................
00032 Description: returns pointer to frontend
00033 Args: <none>
00034 Returns: see description
00035 Created: Xandi, ??.2.2000
00036 [ToDo:]
00037 [Comments:]
00038 Changes:
00039 - 24.2.2000, StonedBones: fixed type names
00040 - 26.2.2000, Xandi: fixed C++ plug-in
00041 - 26.2.2000, StonedBones: added joystick configuration
00042 -------------------------------------------------------------------*/
00043 
00044 extern "C" { struct ConfigFrontEndPlugIn *GetConfigFrontEndPlugIn ( void ); };
00045 
00046 struct ConfigFrontEndPlugIn *GetConfigFrontEndPlugIn ( void )
00047     {
00048     return &textonly;
00049     }
00050 
00051 /*...................................................................
00052 Description: init
00053 Args: <none>
00054 Returns: <none>
00055 Created: Xandi, ??.2.2000
00056 [ToDo:]
00057 [Comments:]
00058 Changes:
00059 - 24.2.2000, StonedBones: modified text string
00060 -------------------------------------------------------------------*/
00061 
00062 void init ( void )
00063     {
00064     fprintf ( stderr, "\n3Dsia client\ntextonly configuration frontend plugin\n" );
00065     };
00066 
00067 /*...................................................................
00068 Description: runs the configuration
00069 Args: <none>
00070 Returns: <none>
00071 Created: StonedBones, 24.2.2000
00072 [ToDo:]
00073 [Comments:]
00074 Changes:
00075 - 26.2.2000, StonedBones: added joystick support
00076 -------------------------------------------------------------------*/
00077 
00078 void run (int argc, char** argv) {
00079     Config* conf;
00080     char*   tmpStr;
00081     
00082     conf   = new Config ();
00083     tmpStr = (char*) malloc (1000);
00084     
00085     
00086     if (conf->openConfig (CLIENT_CONFIG_FILE)) {
00087     printf ("Configuration file opened (if it didn't exist, it was created)\n");
00088     printf ("\n\n\n\n\n\n");
00089     printf ("3Dsia client setup\n");
00090     printf ("==================\n\n");
00091     
00092     printf ("> Devices setup:\n");
00093     printf ("   1. Keyboard\n");
00094     printf ("   2. Joystick\n");
00095     printf ("   3. Mouse\n");
00096     printf ("\nEnter device number for STANDARD device: ");
00097     
00098     int i;
00099     cin >> i;
00100     
00101     switch (i) {
00102         case 1: {
00103             if (!conf->searchTag ("Devices")) {
00104                 conf->createTag ("Devices");
00105             };
00106         
00107             conf->setVariable ("DefaultDevice", "Keyboard");
00108             break;
00109         };
00110         
00111         case 2: {
00112             if (!conf->searchTag ("Devices")) {
00113                 conf->createTag ("Devices");
00114             };
00115         
00116             conf->setVariable ("DefaultDevice", "Joystick");
00117             break;
00118         };
00119         
00120         case 3: {
00121             if (!conf->searchTag ("Devices")) {
00122                 conf->createTag ("Devices");
00123             };
00124         
00125             conf->setVariable ("DefaultDevice", "Mouse");
00126             break;
00127         };
00128         
00129         default: {
00130             printf ("Unknown device number ! Giving up...");
00131             exit (1);
00132         };
00133     };
00134     
00135     if (!conf->searchTag ("User")) {
00136         conf->createTag ("User");
00137     };
00138     
00139     string str;
00140     
00141     cout << "\n\n\nEnter default username: ";
00142     cin >> str;
00143     conf->setVariable ("Name", const_cast<char*> (str.c_str ()));
00144     
00145     cout << "Enter default password: ";
00146     cin >> str;
00147     conf->setVariable ("Password", const_cast<char*> (str.c_str ()));
00148     
00149     cout << "Enter default server (dots-n-numbers, e.g. 127.0.0.1): ";
00150     cin >> str;
00151     conf->setVariable ("Server", const_cast<char*> (str.c_str ()));
00152     } else {
00153         printf ("Unknown error while opening/creating configuration file !\n");
00154         exit (1);
00155     };
00156     
00157     free (tmpStr);
00158     delete conf;
00159 };
00160 

Generated at Sat May 13 13:50:23 2000 for 3Dsia by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000