00001 00010 #if !defined(AFX_VPCONTROL_H__FC551DAD_F111_4F6C_97CA_4D532CD51012__INCLUDED_) 00011 #define AFX_VPCONTROL_H__FC551DAD_F111_4F6C_97CA_4D532CD51012__INCLUDED_ 00012 00013 #if _MSC_VER > 1000 00014 #pragma once 00015 #pragma warning ( disable : 4786 ) 00016 #endif // _MSC_VER > 1000 00017 00019 00022 class vpControl 00023 { 00024 public: 00026 00034 inline vpControl(unsigned char source_type, 00035 unsigned char source_numID, 00036 unsigned char source_channel); 00037 00039 00044 inline void set(unsigned char source_type, 00045 unsigned char source_numID, 00046 unsigned char source_channel); 00047 00049 00052 inline unsigned char Type(); 00053 00055 00058 inline unsigned char NumID(); 00059 00061 00064 inline unsigned char Channel(); 00065 00067 vpControl(); 00068 00070 virtual ~vpControl(); 00071 00073 friend bool operator < (const vpControl &x,const vpControl &y); 00074 00075 private: 00077 00082 unsigned long unity; 00083 }; 00084 00086 inline bool operator < (const vpControl &x,const vpControl &y) { 00087 return (x.unity < y.unity); 00088 } 00089 00090 inline vpControl::vpControl(unsigned char source_type, 00091 unsigned char source_numID, 00092 unsigned char source_channel) { 00093 unity=(((long) source_type) << 16) | 00094 (((long) source_numID) << 8) | 00095 (((long) source_channel)); 00096 00097 }; 00098 00099 00100 inline void vpControl::set(unsigned char source_type, 00101 unsigned char source_numID, 00102 unsigned char source_channel) { 00103 unity=(((long) source_type) << 16) | 00104 (((long) source_numID) << 8) | 00105 (((long) source_channel)); 00106 00107 }; 00108 00109 inline unsigned char vpControl::Type() { 00110 return (unsigned char) ((unity & 0x00FF0000) >> 16); 00111 }; 00112 00113 inline unsigned char vpControl::NumID() { 00114 return (unsigned char) ((unity & 0x00FF00) >> 8); 00115 }; 00116 00117 inline unsigned char vpControl::Channel() { 00118 return (unsigned char) (unity & 0x00FF); 00119 }; 00120 00121 00122 #include <map> 00123 #include "ActionTriple.h" 00124 00125 using namespace std; 00126 00133 typedef map<vpControl,ActionTriple,less< vpControl > > vpHash; 00134 00139 typedef vpHash::const_iterator vpHashPtr; 00140 00141 #endif // !defined(AFX_VPCONTROL_H__FC551DAD_F111_4F6C_97CA_4D532CD51012__INCLUDED_)