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

quartz.cpp

Go to the documentation of this file.
00001 /********************************************************************
00002 Description: The Quartz ;)
00003 part of the 3Dsia project
00004 created: xandi, 250400
00005 
00006 History:
00007     date,   name,       changes,                    in funtion
00008 
00009 ********************************************************************/
00010 
00011 
00012 /*...................................................................
00013 Description: quartz
00014 Args: ThreadArgs* targs
00015 Returns: none
00016 Created: xandi, 250400
00017 [ToDo:]
00018 [Comments:]
00019 Changes:
00020 -------------------------------------------------------------------*/
00021 
00022 #include "misc.h"
00023 #include "quartz.h"
00024 
00025 QuartzClass::QuartzClass ( Buffer* bufferIn, int reqPackType, int freq )
00026     {
00027     qbuf = bufferIn;
00028     requestPacket = reqPackType;
00029     frequency = freq;
00030 
00031     #ifdef DEBUG
00032     fprintf(stderr,"[QUARTZCLASS (%d): %d %d %d\n",this,qbuf,requestPacket,frequency);
00033     #endif
00034     }
00035 
00036 void QuartzClass::setFrequency ( int freq )
00037     {
00038     frequency = freq;
00039     }
00040 
00041 int QuartzClass::getFrequency ( void )
00042     {
00043     return frequency;
00044     }
00045 
00046 int QuartzClass::getRequestPacket ( void )
00047     {
00048     return requestPacket;
00049     }
00050 
00051 Buffer* QuartzClass::getBuf ( void )
00052     {
00053     return qbuf;
00054     }
00055 
00056 void* QuartzThread ( void* qObj )
00057     {
00058     QuartzClass* myQuartzObject = (QuartzClass*) qObj;
00059 
00060     fprintf(stderr,"[qT] Quartz Thread started.. frequency: %d\n",myQuartzObject->getFrequency());
00061 
00062     while (1)
00063         {
00064         #ifdef DEBUGEXTREME
00065         fprintf(stderr,"[qT] %d,%d,%d,%d",myQuartzObject
00066                                          ,myQuartzObject->getFrequency()
00067                                          ,myQuartzObject->getRequestPacket()
00068                                          ,myQuartzObject->getBuf());
00069         #endif
00070 
00071         int test = myQuartzObject->getFrequency();
00072 
00073         if ( !test ) test = 1;
00074 
00075         usleep ( (int)( 1000000 / test ) );
00076 
00077         packet* pak;
00078         pak = new packet;
00079 
00080         pak->h.header[0] = myQuartzObject->getRequestPacket();
00081 
00082         #ifdef DEBUG
00083         fprintf(stderr,"[asking myQuartzObject(%p)->getBuf()]\n",myQuartzObject);
00084         #endif
00085 
00086         Buffer* myqbuf = myQuartzObject->getBuf();
00087 
00088         #ifdef DEBUG
00089         fprintf(stderr,"[attempting to write into buffer (%p)]\n",myqbuf);
00090         #endif
00091 
00092         if ( myqbuf )
00093             myqbuf->write ( pak );
00094         else
00095             exit(1);
00096 
00097         #ifdef DEBUG
00098         fprintf(stderr,"[sending update request successful]\n");
00099         #endif
00100         }
00101 
00102     }
00103 
00104 

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