tge/lib/maxsdk31/client.h
2017-04-17 06:17:10 -06:00

150 lines
4.6 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// -------------------
// File ....: Client.h
// -------------------
// Author...: Gus J Grubba
// Date ....: November 1995
// O.S. ....: Windows NT 3.51
//
// History .: Nov, 18 1995 - Created
//
// 3D Studio Max Network Rendering
//
// Client
//
//-----------------------------------------------------------------------------
#ifndef _CLIENTINCLUDE_
#define _CLIENTINCLUDE_
#ifndef NETCEXPORT
#define NETCEXPORT __declspec( dllimport )
#endif
//-----------------------------------------------------------------------------
//-- Interface Class ---------------------------------------------------------
//-----------------------------------------------------------------------------
class ClientInterface {
public:
virtual HINSTANCE HostInst () = 0;
virtual HWND HostWnd () = 0;
virtual TCHAR *GetDir (int i) = 0;
virtual TCHAR *GetAppDir () = 0;
virtual TSTR GetMaxFileName () = 0;
virtual BOOL SaveMaxFile (TCHAR *name, TCHAR *archivename, bool archive = false) = 0;
};
//-----------------------------------------------------------------------------
//-- Base Class Definition ---------------------------------------------------
//-----------------------------------------------------------------------------
// #> Client
//
class Client {
private:
TCPcomm *tcp;
ConnectionInfo ci;
#define DEFNUMMANAGERS 4
char manager[DEFNUMMANAGERS][MAX_PATH];
WORD mgrport;
Tab<ServerList> Servers;
ServerReg sReg;
ClientInterface *iface;
Interface *max;
int curServer;
int numSel;
int *selBuf;
int start,end,step;
int progressNFrames;
BOOL alertFailure,alertProgress,alertCompletion;
BOOL alertEnabled;
//-- Flags defined in Common.h (NewJob flags)
DWORD flags;
//-- Windows Specific -------------------------------------------------
HWND hWnd;
HBITMAP hBmpBulbOn,hBmpBulbBusy,hBmpBulbOff,hBmpBulbError;
HBITMAP hBmpBulbOnSel,hBmpBulbBusySel,hBmpBulbOffSel,hBmpBulbErrorSel;
//-- Miscelaneous Functions -------------------------------------------
void UpdateManagerList ( HWND hWnd );
BOOL GetMaxFile ( HWND hWnd, TCHAR *name );
public:
//-- Job Info
NewJob *TheJob;
//-- Constructors/Destructors -----------------------------------------
NETCEXPORT Client ( ClientInterface *i, Interface *max );
NETCEXPORT ~Client ( );
void Close ( );
//-- Public Interface -------------------------------------------------
//
NETCEXPORT BOOL JobAssignment ( HWND hWnd, NewJob *job);
NETCEXPORT BOOL QueueManagement ( HWND hWnd );
NETCEXPORT BOOL JobMonitor ( HWND hWnd );
//-- Dialog Functions -------------------------------------------------
//
BOOL JobDlg ( HWND,UINT,WPARAM,LPARAM );
BOOL PropDlg ( HWND,UINT,WPARAM,LPARAM );
BOOL AlertDlg ( HWND,UINT,WPARAM,LPARAM );
BOOL QueueDlg ( HWND,UINT,WPARAM,LPARAM );
BOOL OutputExists ( HWND,UINT,WPARAM,LPARAM );
BOOL SubmitJob ( HWND hWnd );
void LoadServerList ( HWND hWnd );
void ResetServerList ( HWND hWnd );
void HandleButtonState ( HWND hWnd );
void ShowServerProp ( HWND hWnd );
void FixJobName ( HWND hWnd );
BOOL CanConnect ( HWND );
void ConnectManager ( HWND );
//-- Miscelaneous -----------------------------------------------------
//
Interface* Max ( ) { return max; }
void ReadCfg ( );
void WriteCfg ( );
BOOL IsFile ( const TCHAR *filename );
void GetIniFile ( TCHAR *name );
};
//-----------------------------------------------------------------------------
//-- Interface
NETCEXPORT void *ClientCreate ( ClientInterface *i, Interface *m );
NETCEXPORT void ClientDestroy ( Client *v);
#endif
//-- EOF: Client.h ------------------------------------------------------------