home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / flash078.zip / flashsource-r0_7_8.zip / FControl.cpp < prev    next >
C/C++ Source or Header  |  2001-07-26  |  5KB  |  254 lines

  1. #include "FControl.h"
  2.  
  3.  
  4. std::ostream &operator << (std::ostream &out, FlashTagDefineBitsPtr &data)
  5. {
  6.     out << FlashTagHeader(1023, sizeof(UDWORD));
  7.     WRITE_UDWORD(data.ref)
  8.     return out;
  9. }
  10.  
  11. std::istream &operator >> (std::istream &in,  FlashTagDefineBitsPtr &data)
  12. {
  13.     READ_UDWORD(data.ref)
  14.     return in;
  15. }
  16.  
  17. std::ostream &operator << (std::ostream &out, FlashTagProtect &data)
  18. {
  19.     if(data.hasPass){
  20.         out << FlashTagHeader(24, data.md5Pass.size() + 1);
  21.         out << data.md5Pass;
  22.         out.put((char)0);
  23.     } else out << FlashTagHeader(24, 0);    
  24.     return out;
  25. }
  26.  
  27. std::istream &operator >> (std::istream &in,  FlashTagProtect &data)
  28. {    
  29.     char c;
  30.     while((c = in.get()) != 0)
  31.     {
  32.         data.md5Pass.push_back((char)c);        
  33.     }
  34.     return in;
  35. }
  36.  
  37. std::ostream &operator << (std::ostream &out, FlashTagEnableDebugger &data)
  38. {
  39.     if(data.hasPass){
  40.         out << FlashTagHeader(58, data.md5Pass.size() + 1);
  41.         out << data.md5Pass;
  42.         out.put((char)0);
  43.     } else out << FlashTagHeader(58, 0);
  44.     return out;
  45. }
  46.  
  47. std::istream &operator >> (std::istream &in,  FlashTagEnableDebugger &data)
  48. {    
  49.     char c;
  50.     while((c = in.get()) != 0)
  51.     {
  52.         data.md5Pass.push_back((char)c);        
  53.     }
  54.     return in;
  55. }
  56.  
  57.  
  58. std::ostream &operator << (std::ostream &out, FlashTagBackgroundColor &data)
  59. {
  60.     out << FlashTagHeader(0x09,3);
  61.     out.put(data.r);
  62.     out.put(data.g);
  63.     out.put(data.b);
  64.     return out;
  65. }
  66. std::istream &operator >> (std::istream &in,  FlashTagBackgroundColor &data)
  67. {
  68.     data.r = in.get();
  69.     data.g = in.get();
  70.     data.b = in.get();
  71.     return in;
  72. }
  73. std::ostream &operator << (std::ostream &out, FlashTagLabelFrame &data)
  74. {
  75.     out << FlashTagHeader(43,strlen(data.str)+1);
  76.     out << data.str;
  77.     out.put((char)0);
  78.     return out;
  79. }
  80. std::istream &operator >> (std::istream &in,  FlashTagLabelFrame &data)
  81. {
  82.     int c;
  83.     std::vector<char> str;
  84.     while((c = in.get()) != 0)
  85.     {
  86.         str.push_back((char)c);        
  87.     }
  88.     data.str = (char*)malloc(str.size()+1);
  89.     data.gc.push_back(data.str);
  90.     for(unsigned int i = 0; i < str.size(); i++)
  91.     {
  92.         data.str[i]=str[i];
  93.     }
  94.     return in;
  95. }
  96.  
  97. DEFINE_SIMPLE_TAG(FlashTagEnd,0x00)
  98.  
  99. void FlashTagExportAssets::AddAsset(char *str, UWORD id)
  100. {
  101.     assets_str.push_back(str);
  102.     assets_id.push_back(id);
  103. }
  104.  
  105. std::ostream &operator << (std::ostream &out, FlashTagExportAssets &data)
  106. {
  107.     UWORD len = 2;
  108.     {
  109.         for(UWORD i=0; i < (UWORD)data.assets_str.size(); i++)
  110.         {
  111.             len+=2;
  112.             len+=strlen(data.assets_str[i])+1;        
  113.         }
  114.     }
  115.     out << FlashTagHeader(56,len);
  116.  
  117.     WRITE_UWORD(data.assets_str.size());
  118.     {
  119.         for(UWORD i=0; i < (UWORD)data.assets_str.size(); i++)
  120.         {
  121.             WRITE_UWORD(data.assets_id[i]);
  122.             out << data.assets_str[i];
  123.             out.put((char)0);        
  124.         }
  125.     }
  126.     return out;
  127. }
  128.  
  129. std::istream &operator >> (std::istream &in,  FlashTagExportAssets &data)
  130. {    
  131.     UWORD size;
  132.     READ_UWORD(size);
  133.     {
  134.         data.assets_id.clear();
  135.         data.assets_str.clear();
  136.                 
  137.         for(UWORD i=0; i < size; i++)
  138.         {
  139.             data.assets_id.push_back(0);
  140.             READ_UWORD(data.assets_id[i]);
  141.             int c;
  142.             std::vector<char> tmp;
  143.             while((c = in.get()) != 0)
  144.             {
  145.                 tmp.push_back(c);
  146.             }
  147.             char * tmpp = ((char*)malloc(tmp.size()+1));
  148.             data.assets_str.push_back(tmpp);
  149.             data.gc.push_back(tmpp);
  150.             for(unsigned int i2 = 0; i2 < tmp.size(); i2++)
  151.             {
  152.                 (data.assets_str[i])[i2]=tmp[i2];
  153.             }
  154.             (data.assets_str[i])[tmp.size()] = 0;
  155.         }
  156.     }
  157.     return in;
  158. }
  159.  
  160. void FlashTagImportAssets::AddAsset(char *str, UWORD id)
  161. {
  162.     assets_str.push_back(str);
  163.     assets_id.push_back(id);
  164. }
  165.  
  166.  
  167. std::ostream &operator << (std::ostream &out, FlashTagImportAssets &data)
  168. {
  169.     
  170.     UWORD len = 2;
  171.     {
  172.         for(UWORD i=0; i < (UWORD)data.assets_str.size(); i++)
  173.         {
  174.             len+=2;
  175.             len+=strlen(data.assets_str[i])+1;        
  176.         }
  177.     }
  178.     len+=strlen(data.swfurl)+1;
  179.  
  180.     out << FlashTagHeader(57,len);
  181.  
  182.     out << data.swfurl;
  183.     out.put((char)0);
  184.     WRITE_UWORD(data.assets_str.size());
  185.     {
  186.         for(UWORD i=0; i < (UWORD)data.assets_str.size(); i++)
  187.         {
  188.             WRITE_UWORD(data.assets_id[i]);
  189.             out << data.assets_str[i];
  190.             out.put((char)0);
  191.         }
  192.     }
  193.     return out;
  194.  
  195. }
  196.  
  197. std::istream &operator >> (std::istream &in,  FlashTagImportAssets &data)
  198. {
  199.     unsigned int i2;
  200.     int c;
  201.     std::vector<char> tmp;
  202.     while((c = in.get()) != 0)
  203.     {
  204.         tmp.push_back(c);
  205.     }
  206.     data.swfurl = ((char*)malloc(tmp.size()+1));
  207.     for(i2 = 0; i2 < tmp.size(); i2++)
  208.     {
  209.         data.swfurl[i2]=tmp[i2];
  210.     }
  211.     data.swfurl[tmp.size()] = 0;
  212.     
  213.     UWORD size;
  214.     READ_UWORD(size);
  215.     {
  216.         data.assets_id.clear();
  217.         data.assets_str.clear();
  218.                 
  219.         for(UWORD i=0; i < size; i++)
  220.         {
  221.             data.assets_id.push_back(0);
  222.             READ_UWORD(data.assets_id[i]);
  223.             int c;
  224.             std::vector<char> tmp;
  225.             while((c = in.get()) != 0)
  226.             {
  227.                 tmp.push_back(c);
  228.             }
  229.             char * tmpp = ((char*)malloc(tmp.size()+1));
  230.             data.assets_str.push_back(tmpp);
  231.             data.gc.push_back(tmpp);
  232.             {
  233.                 (data.assets_str[i])[i2]=tmp[i2];
  234.             }
  235.             (data.assets_str[i])[tmp.size()] = 0;
  236.         }
  237.     }
  238.  
  239.     return in;
  240. }
  241.  
  242. std::ostream &operator << (std::ostream &out, FlashTagFreeCharacter &data)
  243. {
  244.     out << FlashTagHeader(3,2);
  245.     WRITE_UWORD(data.id);
  246.     return out;
  247. }
  248. std::istream &operator >> (std::istream &in,  FlashTagFreeCharacter &data)
  249. {
  250.     READ_UWORD(data.id);
  251.     return in;
  252. }
  253.  
  254.