Commit 9057738d431bd2d8f0b7d2a87c4fa7f7950bd5ed

Authored by ezequiel
1 parent 95e4b2e6
Exists in master

Nova versão do update

@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 ############################################################################ 8 ############################################################################
9 9
10 # Includes 10 # Includes
11 -CFLAGS = -I C:\Python27\include -I include -I "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include" 11 +CFLAGS = -I C:\Python27\include -I include -I update\include -I "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include"
12 12
13 # Link com as libs utilizadas 13 # Link com as libs utilizadas
14 LFLAGS = -link C:\Python27\libs\python27.lib 14 LFLAGS = -link C:\Python27\libs\python27.lib
@@ -23,10 +23,10 @@ OUT = testLibras @@ -23,10 +23,10 @@ OUT = testLibras
23 23
24 24
25 # Arquivos de implementação 25 # Arquivos de implementação
26 -FILES = src\pyTradutor.cpp src\pyClip.cpp src\util.cpp 26 +FILES = src\pyTradutor.cpp src\pyClip.cpp update\src\checkVersion.cpp
27 27
28 #Headers 28 #Headers
29 -INCLUDES = include\pyTradutor.h include\pyClip.h include\util.h 29 +INCLUDES = include\pyTradutor.h include\pyClip.h update\include\checkVersion.h
30 30
31 CLEAN_OBJ = del -q *.obj 31 CLEAN_OBJ = del -q *.obj
32 32
@@ -40,7 +40,7 @@ all: $(FILES) $(INCLUDES) src\testLibras.cpp @@ -40,7 +40,7 @@ all: $(FILES) $(INCLUDES) src\testLibras.cpp
40 #Gera dll na arquitetura x86 40 #Gera dll na arquitetura x86
41 plugin-x86: $(FILES) $(INCLUDES) 41 plugin-x86: $(FILES) $(INCLUDES)
42 IF NOT EXIST plugin\Plugin-x86 mkdir plugin\Plugin-x86 42 IF NOT EXIST plugin\Plugin-x86 mkdir plugin\Plugin-x86
43 - $(CC) -Feplugin\Plugin-x86\CorePlugin -LD plugin\corePlugin.cpp $(FILES) -I plugin\corePlugin.h -clr $(CFLAGS) $(LFLAGS) 43 + $(CC) -Feplugin\Plugin-x86\CorePlugin -LD plugin\corePlugin.cpp $(FILES) -I plugin\corePlugin.h -EHsc $(CFLAGS) $(LFLAGS)
44 $(CLEAN_OBJ) 44 $(CLEAN_OBJ)
45 45
46 #Gera dll na arquitetura x64 46 #Gera dll na arquitetura x64
include/util.h
1 #using <System.dll> 1 #using <System.dll>
2 #using <System.Xml.dll> 2 #using <System.Xml.dll>
3 -#using <System.IO.Compression.FileSystem.dll>  
4 3
5 #include <iostream> 4 #include <iostream>
6 #include <string> 5 #include <string>
@@ -9,12 +8,11 @@ @@ -9,12 +8,11 @@
9 8
10 using namespace std; 9 using namespace std;
11 using namespace System; 10 using namespace System;
12 -using namespace System::ComponentModel; 11 +
13 using namespace System::Net; 12 using namespace System::Net;
14 using namespace System::IO; 13 using namespace System::IO;
15 using namespace System::Xml; 14 using namespace System::Xml;
16 -using namespace System::Threading;  
17 -using namespace System::IO::Compression; 15 +
18 16
19 17
20 18
@@ -35,13 +33,10 @@ using namespace System::IO::Compression; @@ -35,13 +33,10 @@ using namespace System::IO::Compression;
35 Util(); 33 Util();
36 34
37 bool downloading; 35 bool downloading;
38 - static bool saveNewXmlVersion(string playerVersion,string dictionaryVersion);  
39 - static string Download(DownloadProgressChangedEventHandler^ dpch ,string url, string fileName); 36 +
40 static bool checkNet(void); 37 static bool checkNet(void);
41 static vector <string> checkVersion(bool atualize); 38 static vector <string> checkVersion(bool atualize);
42 - static bool extractZip(string zipFile, string outPath);  
43 - static bool backup(void);  
44 - static bool restore(void); 39 +
45 40
46 }; 41 };
47 42
install/inno setup/user_install.iss
@@ -26,7 +26,7 @@ DisableDirPage=yes @@ -26,7 +26,7 @@ DisableDirPage=yes
26 DefaultGroupName={#MyAppName} 26 DefaultGroupName={#MyAppName}
27 OutputBaseFilename=vlibras_desktop_win_2.0.0 27 OutputBaseFilename=vlibras_desktop_win_2.0.0
28 DisableProgramGroupPage=yes 28 DisableProgramGroupPage=yes
29 -OutputDir="C:\Users\ezequiel\Desktop\vlibras_desktop_win_2.0.0" 29 +OutputDir="C:\Users\ezequiel\Desktop\vlibras_installer_2.0.0"
30 SetupIconFile="C:\Users\ezequiel\Desktop\user_install\icons\icon_vlibras.ico" 30 SetupIconFile="C:\Users\ezequiel\Desktop\user_install\icons\icon_vlibras.ico"
31 Compression=lzma 31 Compression=lzma
32 SolidCompression=yes 32 SolidCompression=yes
@@ -43,8 +43,8 @@ Name: &quot;desktopicon&quot;; Description: &quot;{cm:CreateDesktopIcon}&quot;; GroupDescription: &quot;{ @@ -43,8 +43,8 @@ Name: &quot;desktopicon&quot;; Description: &quot;{cm:CreateDesktopIcon}&quot;; GroupDescription: &quot;{
43 Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1 43 Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
44 44
45 [Files] 45 [Files]
46 -Source: "C:\Users\ezequiel\Desktop\vc_redist.x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall;  
47 -Source: "C:\Users\ezequiel\Desktop\dotNetFx40_Client_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall; 46 +;Source: "C:\Users\ezequiel\Desktop\vc_redist.x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall;
  47 +;Source: "C:\Users\ezequiel\Desktop\dotNetFx40_Client_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall;
48 Source: "C:\Users\ezequiel\Desktop\user_install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 48 Source: "C:\Users\ezequiel\Desktop\user_install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
49 49
50 50
@@ -58,10 +58,10 @@ Name: &quot;{commondesktop}\{#MyAppName}&quot;; Filename: &quot;{app}\Player\{#MyAppExeName}&quot;; @@ -58,10 +58,10 @@ Name: &quot;{commondesktop}\{#MyAppName}&quot;; Filename: &quot;{app}\Player\{#MyAppExeName}&quot;;
58 Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\Player\{#MyAppExeName}"; Tasks: quicklaunchicon; IconFilename: "{app}\icons\icon_vlibras.ico" 58 Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\Player\{#MyAppExeName}"; Tasks: quicklaunchicon; IconFilename: "{app}\icons\icon_vlibras.ico"
59 59
60 [Run] 60 [Run]
61 -Filename: {tmp}\dotNetFx40_Client_x86.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando .NET Framework 4.5  
62 -Filename: {tmp}\vc_redist.x86.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando Visual C++ ...  
63 -Filename: {sd}\vlibras-libs\required\user_install.bat; Flags: runhidden; StatusMsg: Instalando dependências...  
64 -Filename: {sd}\vlibras-libs\update\vlibras-up.exe; Parameters: silence; StatusMsg: Instalando atualização... 61 +;Filename: {tmp}\dotNetFx40_Client_x86.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando .NET Framework 4.5
  62 +;Filename: {tmp}\vc_redist.x86.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando Visual C++ ...
  63 +Filename: {sd}\vlibras-libs\required\user_install.bat; Flags: runhidden; StatusMsg: Finalizando Instalação...
  64 +Filename: {sd}\vlibras-libs\update\vlibrasCheckUp.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando atualização...
65 65
66 66
67 67
plugin/corePlugin.cpp
@@ -5,22 +5,22 @@ @@ -5,22 +5,22 @@
5 #define EXPORT_API __declspec(dllimport) 5 #define EXPORT_API __declspec(dllimport)
6 #endif 6 #endif
7 7
8 - 8 +#include <process.h>
9 #include "corePlugin.h" 9 #include "corePlugin.h"
10 10
11 11
12 12
  13 +
13 extern "C" 14 extern "C"
14 { 15 {
15 16
16 -  
17 -  
18 - 17 +
19 18
20 EXPORT_API int coreInitialize() 19 EXPORT_API int coreInitialize()
21 { 20 {
22 //Objeto usado para traduzir 21 //Objeto usado para traduzir
23 tradutor = new PyTradutor(); 22 tradutor = new PyTradutor();
  23 + checkversion = new CheckVersion();
24 check =0; 24 check =0;
25 25
26 //Objeto usado para copiar texto da área de transferência 26 //Objeto usado para copiar texto da área de transferência
@@ -41,14 +41,69 @@ @@ -41,14 +41,69 @@
41 41
42 EXPORT_API int coreUpdateInstall_player() 42 EXPORT_API int coreUpdateInstall_player()
43 { 43 {
44 - System::Diagnostics::Process::Start("C:\\vlibras-libs\\update\\vlibras-up.exe"); 44 +
  45 + char szPath[] = "C:\\vlibras-libs\\update\\vlibras-up.exe";
  46 + string params = "C:\\vlibras-libs\\update\\vlibras-up.exe ";
  47 + params.append(checkversion->playerUrl);
  48 + params.append(" installer ");
  49 + params.append(checkversion->playerVersionFull);
  50 + PROCESS_INFORMATION pif; //Gives info on the thread and..
  51 + //..process for the new process
  52 + STARTUPINFO si; //Defines how to start the program
  53 +
  54 + ZeroMemory(&si,sizeof(si)); //Zero the STARTUPINFO struct
  55 + si.cb = sizeof(si); //Must set size of structure
  56 +
  57 + BOOL bRet = CreateProcess(
  58 + szPath, //Path to executable file
  59 + (LPSTR)params.c_str(), //Command string - not needed here
  60 + NULL, //Process handle not inherited
  61 + NULL, //Thread handle not inherited
  62 + FALSE, //No inheritance of handles
  63 + 0, //No special flags
  64 + NULL, //Same environment block as this prog
  65 + NULL, //Current directory - no separate path
  66 + &si, //Pointer to STARTUPINFO
  67 + &pif); //Pointer to PROCESS_INFORMATION
  68 +
  69 +
  70 +
  71 + CloseHandle(pif.hProcess); //Close handle to process
  72 + CloseHandle(pif.hThread);
  73 +
45 return 1; 74 return 1;
46 } 75 }
47 76
48 77
49 EXPORT_API int coreUpdateInstall_dict() 78 EXPORT_API int coreUpdateInstall_dict()
50 { 79 {
51 - System::Diagnostics::Process::Start("C:\\vlibras-libs\\update\\vlibras-up.exe"); 80 + char szPath[] = "C:\\vlibras-libs\\update\\vlibras-up.exe";
  81 + string params = "C:\\vlibras-libs\\update\\vlibras-up.exe ";
  82 + params.append(checkversion->dictUrl.c_str());
  83 + params.append(" dictionary ");
  84 + params.append(checkversion->dictVersionFull);
  85 + PROCESS_INFORMATION pif; //Gives info on the thread and..
  86 + //..process for the new process
  87 + STARTUPINFO si; //Defines how to start the program
  88 +
  89 + ZeroMemory(&si,sizeof(si)); //Zero the STARTUPINFO struct
  90 + si.cb = sizeof(si); //Must set size of structure
  91 +
  92 + BOOL bRet = CreateProcess(
  93 + szPath, //Path to executable file
  94 + (LPSTR)params.c_str(), //Command string - not needed here
  95 + NULL, //Process handle not inherited
  96 + NULL, //Thread handle not inherited
  97 + FALSE, //No inheritance of handles
  98 + 0, //No special flags
  99 + NULL, //Same environment block as this prog
  100 + NULL, //Current directory - no separate path
  101 + &si, //Pointer to STARTUPINFO
  102 + &pif); //Pointer to PROCESS_INFORMATION
  103 +
  104 + CloseHandle(pif.hProcess); //Close handle to process
  105 + CloseHandle(pif.hThread);
  106 +
52 return 1; 107 return 1;
53 } 108 }
54 109
@@ -56,33 +111,10 @@ @@ -56,33 +111,10 @@
56 111
57 EXPORT_API int coreUpdateCheck() 112 EXPORT_API int coreUpdateCheck()
58 { 113 {
  114 +
  115 + checkversion->checkRefresh();
59 116
60 -  
61 - vector<string> updates = Util::checkVersion(false);  
62 - if(updates.size()>2)  
63 - {  
64 -  
65 - switch (updates.size())  
66 - {  
67 - case 3:  
68 - if(updates[0]=="playerVersion")  
69 - {  
70 - return 1;  
71 - }  
72 - else if(updates[0]=="dictionaryVersion")  
73 - {  
74 - return 2;  
75 - }  
76 - break;  
77 - case 6:  
78 - return 1;  
79 -  
80 - break;  
81 - }  
82 -  
83 - } else if(updates.size()==1)  
84 - return -1;  
85 - return 0; 117 + return checkversion->vstatus;
86 } 118 }
87 119
88 EXPORT_API int coreFinalize() 120 EXPORT_API int coreFinalize()
plugin/corePlugin.h
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 VLibras: Plugin para integração com Unity 3 VLibras: Plugin para integração com Unity
4 4
5 Bruno santos 5 Bruno santos
  6 +Ezequiel Silva
  7 +ezequielsilva@lavid.ufpb.br
6 VLibras-Core 8 VLibras-Core
7 2015 9 2015
8 */ 10 */
@@ -10,8 +12,8 @@ VLibras-Core @@ -10,8 +12,8 @@ VLibras-Core
10 12
11 /** 13 /**
12 * \file corePlugin.h 14 * \file corePlugin.h
13 -* \authors Bruno Santos  
14 -* \date Janeiro 2015 15 +* \authors Bruno Santos, Ezequiel Silva
  16 +* \date Janeiro 2015 / Outubro 2015
15 */ 17 */
16 #ifndef _COREPLUGIN_H 18 #ifndef _COREPLUGIN_H
17 #define _COREPLUGIN_H 19 #define _COREPLUGIN_H
@@ -19,8 +21,9 @@ VLibras-Core @@ -19,8 +21,9 @@ VLibras-Core
19 21
20 #include "pyClip.h" 22 #include "pyClip.h"
21 #include "pyTradutor.h" 23 #include "pyTradutor.h"
  24 +#include "checkVersion.h"
22 #include <string.h> 25 #include <string.h>
23 -#include "Util.h" 26 +
24 27
25 using namespace std; 28 using namespace std;
26 29
@@ -32,6 +35,8 @@ extern &quot;C&quot; @@ -32,6 +35,8 @@ extern &quot;C&quot;
32 //Usado para copiar texto da área de transferência 35 //Usado para copiar texto da área de transferência
33 PyClip clipboard; 36 PyClip clipboard;
34 37
  38 + //Usado para verificar se existe atualização
  39 + CheckVersion *checkversion;
35 40
36 //Inicializa Objetos 41 //Inicializa Objetos
37 EXPORT_API int coreInitize(void); 42 EXPORT_API int coreInitize(void);
@@ -20,23 +20,7 @@ string Util::clrStringTostring(String^ strIn) @@ -20,23 +20,7 @@ string Util::clrStringTostring(String^ strIn)
20 return stlString; 20 return stlString;
21 } 21 }
22 22
23 - void DownloadProgressCallback(Object^ sender,  
24 - DownloadProgressChangedEventArgs^ e)  
25 - {  
26 - // Displays the operation identifier, and the transfer progress.  
27 - Console::WriteLine("{0} downloaded {1} of {2} bytes. {3} % complete...",  
28 - (String ^)e->UserState,  
29 - e->BytesReceived,  
30 - e->TotalBytesToReceive,  
31 - e->ProgressPercentage);  
32 - }  
33 -  
34 - void DownloadFileCallBack2(Object^ sender, AsyncCompletedEventArgs^ args)  
35 - {  
36 - cout<<"Terminou de baixar"<< endl;  
37 -  
38 - }  
39 - 23 +
40 24
41 bool Util::checkNet() 25 bool Util::checkNet()
42 { 26 {
@@ -175,112 +159,6 @@ vector&lt;string&gt; Util::localVersion() @@ -175,112 +159,6 @@ vector&lt;string&gt; Util::localVersion()
175 } 159 }
176 160
177 161
178 -string Util::Download(DownloadProgressChangedEventHandler^ dpch ,string url, string fileName)  
179 -{  
180 - try  
181 - {  
182 - myWebClient = gcnew WebClient();  
183 - Uri^ uri = gcnew Uri(gcnew String(url.c_str()));  
184 - myWebClient->DownloadProgressChanged += dpch;  
185 - myWebClient->DownloadFileCompleted += gcnew AsyncCompletedEventHandler( DownloadFileCallBack2 );  
186 - String^ outPath = gcnew String(("c:\\vlibras-libs\\update\\"+fileName).c_str());  
187 - myWebClient->DownloadFileAsync(uri, outPath);  
188 - }catch (Exception^ e)  
189 - {  
190 - return "FALHA";  
191 - }  
192 -  
193 - return "OK";  
194 - }  
195 -  
196 -  
197 -  
198 - bool Util::saveNewXmlVersion(string playerVersion,string dictionaryVersion)  
199 - {  
200 -  
201 - XmlDocument^ xmlDocLocal;  
202 - XmlNodeList^ filesLocal;  
203 - vector<string> updates;  
204 - try  
205 - {  
206 - xmlDocLocal = (gcnew XmlDocument());  
207 - //xml version local  
208 - StreamReader^ readerLocal = gcnew StreamReader("c:\\vlibras-libs\\update\\updateVersion.xml");  
209 -  
210 - String^ responseLocal = readerLocal->ReadToEnd();  
211 -  
212 - xmlDocLocal->LoadXml(responseLocal);  
213 -  
214 - filesLocal = xmlDocLocal->GetElementsByTagName("version");  
215 -  
216 - if(!playerVersion.empty())  
217 - filesLocal[0]["playerVersion"]->InnerText = gcnew String(playerVersion.c_str());  
218 -  
219 - if(!dictionaryVersion.empty())  
220 - filesLocal[0]["dictionaryVersion"]->InnerText = gcnew String(dictionaryVersion.c_str());  
221 -  
222 -  
223 - // Cleanup the streams and the response.  
224 - readerLocal->Close();  
225 -  
226 - xmlDocLocal->Save("c:\\vlibras-libs\\update\\updateVersion.xml");  
227 - }catch(Exception^ e)  
228 - {  
229 -  
230 - }  
231 -  
232 - return true;  
233 - }  
234 -  
235 -  
236 - bool Util::extractZip(string zipFile, string outPath)  
237 - {  
238 - try  
239 - {  
240 - String^ zipPath = gcnew String(zipFile.c_str());  
241 - String^ extractPath = gcnew String(outPath.c_str());  
242 - ZipFile::ExtractToDirectory(zipPath, extractPath);  
243 -  
244 - }catch(Exception^ e)  
245 - {  
246 - return false;  
247 - }  
248 -  
249 - return true;  
250 - }  
251 -  
252 -bool Util::backup()  
253 -{  
254 - CHAR nome_atual[] = "c:\\vlibras-libs";  
255 - // novo nome do diretório  
256 - CHAR nome_novo[] = "c:\\vlibras-libs-BK";  
257 -  
258 - // renomear o diretório  
259 - if(MoveFile(nome_atual, nome_novo)){  
260 -  
261 - }  
262 - else{  
263 - return false;  
264 - }  
265 - return true;  
266 -}  
267 -bool Util::restore()  
268 -{  
269 - CHAR nome_atual[] = "c:\\vlibras-libs-BK";  
270 - // novo nome do diretório  
271 - CHAR nome_novo[] = "c:\\vlibras-libs";  
272 -  
273 - // renomear o diretório  
274 - if(MoveFile(nome_atual, nome_novo)){  
275 - return true;  
276 - }  
277 - else{  
278 - return false;  
279 - //GetLastError() << endl;  
280 - }  
281 - return true;  
282 -}  
283 -  
284 162
285 163
286 164
update/include/checkVersion.h 0 → 100644
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
  1 +//*****************************************************************
  2 +/*
  3 +VLibras: Verificação de atualização
  4 +
  5 +
  6 +Ezequiel Silva
  7 +ezequielsilva@lavid.ufpb.br
  8 +VLibras-Core
  9 +2015
  10 +*/
  11 +//*****************************************************************
  12 +
  13 +/**
  14 +* \file checkVersion.h
  15 +* \Ezequiel Silva
  16 +* \date Outubro 2015
  17 +*/
  18 +
  19 +
  20 +
  21 +#include <tchar.h>
  22 +#include <iostream>
  23 +#include <string>
  24 +#include <fstream>
  25 +#include <urlmon.h>
  26 +
  27 +#pragma comment(lib, "urlmon.lib")
  28 +using namespace std;
  29 +
  30 + class CheckVersion
  31 +{
  32 +
  33 +private:
  34 + void checkLocal();
  35 + void checkApi();
  36 + void reset();
  37 +public:
  38 + long playerVersion = -1;
  39 + long dictVersion = -1;
  40 + long localPlayerVersion = -1;
  41 + long localDictVersion = -1;
  42 + string playerVersionFull = "";
  43 + string dictVersionFull = "";
  44 + string playerUrl = "";
  45 + string dictUrl = "";
  46 + string dictCallVersion ="0.0.0_0.0.0";
  47 + int vstatus = -1;
  48 +
  49 + CheckVersion();
  50 + void checkRefresh();
  51 +
  52 +
  53 +};
0 \ No newline at end of file 54 \ No newline at end of file
update/include/janelaAtualizacao.h
  1 +//*****************************************************************
  2 +/*
  3 +VLibras: Atualização
  4 +
  5 +
  6 +Ezequiel Silva
  7 +ezequielsilva@lavid.ufpb.br
  8 +VLibras-Core
  9 +2015
  10 +*/
  11 +//*****************************************************************
  12 +
  13 +/**
  14 +* \file checkVersion.h
  15 +* \Ezequiel Silva
  16 +* \date Outubro 2015
  17 +*/
  18 +
  19 +// ############### NÃO USADO ###################
  20 +
  21 +
  22 +
1 #include <string> 23 #include <string>
2 24
3 #using <System.dll> 25 #using <System.dll>
update/src/checkVersion.cpp 0 → 100644
@@ -0,0 +1,182 @@ @@ -0,0 +1,182 @@
  1 +
  2 +
  3 +#include "checkVersion.h"
  4 +
  5 +using namespace std;
  6 +
  7 +
  8 +
  9 + CheckVersion::CheckVersion()
  10 + {
  11 + //reset();
  12 + }
  13 +
  14 + void CheckVersion::checkRefresh()
  15 + {
  16 + reset();
  17 + checkLocal();
  18 + checkApi();
  19 + if(!(localDictVersion == -1 || dictVersion == -1 || localPlayerVersion == -1 || playerVersion == -1))
  20 + {
  21 + vstatus = 0;
  22 + if(localDictVersion < dictVersion && localPlayerVersion < playerVersion)
  23 + vstatus=1;
  24 + else if(localPlayerVersion < playerVersion)
  25 + vstatus = 1;
  26 + else if(localDictVersion < dictVersion)
  27 + vstatus = 2;
  28 + }
  29 + else
  30 + vstatus = -1;
  31 +
  32 + }
  33 +
  34 +
  35 +
  36 +
  37 +void find_and_replace(string& source, string const& find, string const& replace)
  38 +{
  39 + for(string::size_type i = 0; (i = source.find(find, i)) != string::npos;)
  40 + {
  41 + source.replace(i, find.length(), replace);
  42 + i += replace.length();
  43 + }
  44 +}
  45 +
  46 +
  47 +void CheckVersion::checkLocal()
  48 +{
  49 +
  50 + int result = 0;
  51 + string line;
  52 + ifstream myfile ("c:\\vlibras-libs\\update\\updateVersion.xml");
  53 +
  54 + if (myfile.is_open())
  55 + {
  56 + while ( getline(myfile,line) )
  57 + {
  58 + if(strstr(line.c_str(),"<dictionaryVersion>"))
  59 + {
  60 + string version;
  61 + int ia = line.find("<dictionaryVersion>")+19;
  62 + int ib = line.find("</dictionaryVersion>")-23;
  63 + version = line.substr(ia,ib);
  64 + dictCallVersion = version;
  65 + find_and_replace(version,".","");
  66 + find_and_replace(version,"_","");
  67 + find_and_replace(version," ","");
  68 + localDictVersion = atoi(version.c_str());
  69 + }
  70 + else if(strstr(line.c_str(),"<playerVersion>"))
  71 + {
  72 + string version;
  73 + int ia = line.find("<playerVersion>")+15;
  74 + int ib = line.find("</playerVersion>")-19;
  75 + version = line.substr(ia,ib);
  76 + find_and_replace(version,".","");
  77 + find_and_replace(version,"_","");
  78 + find_and_replace(version," ","");
  79 + localPlayerVersion = atoi(version.c_str());
  80 + }
  81 +
  82 + }
  83 +
  84 + myfile.close();
  85 +
  86 + }
  87 +
  88 +
  89 + }
  90 +
  91 +void CheckVersion::checkApi()
  92 +{
  93 +
  94 +cout << "dictCallVersion ====> " << dictCallVersion<< endl;
  95 +string url = "http://vlibras.lavid.ufpb.br/api/dicionario/";
  96 +url.append(dictCallVersion);
  97 +url.append("?type=windows");
  98 + HRESULT hr = URLDownloadToFile ( NULL, _T(url.c_str()), _T("c:\\vlibras-libs\\update\\netVersion.xml"), 0, NULL );
  99 + if(SUCCEEDED(hr)){
  100 +
  101 + string line;
  102 + ifstream myfile ("c:\\vlibras-libs\\update\\netVersion.xml");
  103 + if (myfile.is_open())
  104 + {
  105 + while ( getline(myfile,line) )
  106 + {
  107 + if(strstr(line.c_str(),"<dictionaryVersion>"))
  108 + {
  109 + string version;
  110 + int ia = line.find("<dictionaryVersion>")+19;
  111 + int ib = line.find("</dictionaryVersion>")-23;
  112 + version = line.substr(ia,ib);
  113 + dictVersionFull = version;
  114 + find_and_replace(version,".","");
  115 + find_and_replace(version,"_","");
  116 + find_and_replace(version," ","");
  117 + dictVersion = atoi(version.c_str());
  118 + }
  119 + else if(strstr(line.c_str(),"<playerVersion>"))
  120 + {
  121 + string version;
  122 + int ia = line.find("<playerVersion>")+15;
  123 + int ib = line.find("</playerVersion>")-19;
  124 + version = line.substr(ia,ib);
  125 + playerVersionFull = version;
  126 + find_and_replace(version,".","");
  127 + find_and_replace(version,"_","");
  128 + find_and_replace(version," ","");
  129 + playerVersion = atoi(version.c_str());
  130 +
  131 + }
  132 + else if(strstr(line.c_str(),"<playerUrl>"))
  133 + {
  134 + string version;
  135 + int ia = line.find("<playerUrl>")+11;
  136 + int ib = line.find("</playerUrl>")-15;
  137 + version = line.substr(ia,ib);
  138 + playerUrl = version;
  139 + }
  140 + else if(strstr(line.c_str(),"<dictionaryUrl>"))
  141 + {
  142 + string version;
  143 + int ia = line.find("<dictionaryUrl>")+15;
  144 + int ib = line.find("</dictionaryUrl>")-19;
  145 + version = line.substr(ia,ib);
  146 + dictUrl = version;
  147 + }
  148 + }
  149 + myfile.close();
  150 + }
  151 +
  152 +
  153 + }
  154 +
  155 +}
  156 +
  157 +
  158 +void CheckVersion::reset()
  159 + {
  160 + playerVersion = -1;
  161 + dictVersion = -1;
  162 + localPlayerVersion = -1;
  163 + localDictVersion = -1;
  164 + playerUrl = "";
  165 + dictUrl = "";
  166 + vstatus = -1;
  167 + }
  168 +
  169 +//return
  170 +// -1 se erro
  171 +//0 se não necessita de atualização
  172 +// 1 se tiver para player
  173 +// 2 se dicionario
  174 +
  175 +
  176 +
  177 +
  178 +
  179 +
  180 +
  181 +
  182 +
update/src/util.cpp
@@ -108,7 +108,6 @@ vector&lt;string&gt; Util::checkVersion(bool atualize) @@ -108,7 +108,6 @@ vector&lt;string&gt; Util::checkVersion(bool atualize)
108 String^ playerVersion = files[0]["playerVersion"]->InnerText; 108 String^ playerVersion = files[0]["playerVersion"]->InnerText;
109 String^ dictionaryVersion = files[0]["dictionaryVersion"]->InnerText; 109 String^ dictionaryVersion = files[0]["dictionaryVersion"]->InnerText;
110 110
111 - MessageBox(0, "version local "+(gcnew String(localversion[1].c_str()))+" \n Server Version : "+playerVersion,"MessageBox caption", MB_OK);  
112 if(String::Compare( playerVersion, gcnew String(localversion[1].c_str()))) 111 if(String::Compare( playerVersion, gcnew String(localversion[1].c_str())))
113 { 112 {
114 updates.push_back("playerVersion"); 113 updates.push_back("playerVersion");