OSDN Git Service

IM0036 IM0036
authoreru <eru01@users.sourceforge.jp>
Thu, 28 May 2009 14:28:01 +0000 (14:28 +0000)
committereru <eru01@users.sourceforge.jp>
Thu, 28 May 2009 14:28:01 +0000 (14:28 +0000)
バージョンアップ通知を追加

16 files changed:
PeerCast.root/PeerCast/core/common/pcp.cpp
PeerCast.root/PeerCast/core/common/peercast.cpp
PeerCast.root/PeerCast/core/common/servmgr.cpp
PeerCast.root/PeerCast/core/common/servmgr.h
PeerCast.root/PeerCast/core/common/version2.h
PeerCast.root/PeerCast/ui/win32/simple/Simple.cpp
PeerCast.root/PeerCast/ui/win32/simple/Simple.rc
PeerCast.root/PeerCast/ui/win32/simple/resource.h
c:/Git/PeerCast.root/PeerCast/core/common/pcp.cpp
c:/Git/PeerCast.root/PeerCast/core/common/peercast.cpp
c:/Git/PeerCast.root/PeerCast/core/common/servmgr.cpp
c:/Git/PeerCast.root/PeerCast/core/common/servmgr.h
c:/Git/PeerCast.root/PeerCast/core/common/version2.h
c:/Git/PeerCast.root/PeerCast/ui/win32/simple/Simple.cpp
c:/Git/PeerCast.root/PeerCast/ui/win32/simple/Simple.rc
c:/Git/PeerCast.root/PeerCast/ui/win32/simple/resource.h

index d141df6..ff7ded8 100644 (file)
@@ -738,6 +738,17 @@ int PCPStream::readBroadcastAtoms(AtomStream &atom,int numc,BroadcastState &bcs)
                {
                        ver_ex_number = atom.readShort();
                        patom.writeShort(id,ver_ex_number);
+
+                       // version check
+                       if (!servMgr->noVersionCheck
+                               && !strncmp(ver_ex_prefix, PCP_CLIENT_VERSION_EX_PREFIX, 2)
+                               && ver_ex_number > PCP_CLIENT_VERSION_EX_NUMBER)
+                       {
+                               strcpy(servMgr->downloadURL, PCP_CLIENT_DIST_URL);
+                               peercastApp->notifyMessage(ServMgr::NT_UPGRADE,"\90V\82µ\82¢\83o\81[\83W\83\87\83\93\82ÌPeercast\82ª\8c\9f\8fo\82³\82ê\82Ü\82µ\82½\81B\8dX\90V\82ð\8am\94F\82µ\82Ä\82­\82¾\82³\82¢\81B");
+                               
+                               LOG_DEBUG("PCP got version check: %d / %d", ver_ex_number, PCP_CLIENT_VERSION_EX_NUMBER);
+                       }
                }else if (id == PCP_HOST)
                {
                        ChanHit hit;
index 320dd90..8df871a 100644 (file)
@@ -20,7 +20,7 @@ ServMgr *servMgr;
 PeercastInstance *peercastInst=NULL;
 PeercastApplication *peercastApp=NULL;
 
-int version_ex = 0;
+int version_ex = 1; // VERSION_EX\97L\8cø\89»
 
 // ---------------------------------
 void APICALL PeercastInstance::init()
index 4d166cb..4391037 100644 (file)
@@ -141,6 +141,7 @@ ServMgr::ServMgr()
        topmostGui = false;
        startWithGui = false;
        preventSS = false;
+       noVersionCheck = false;
 
        chanLog="";
 
@@ -1108,6 +1109,7 @@ void ServMgr::saveSettings(const char *fn)
                iniFile.writeBoolValue("topmostGui", servMgr->topmostGui);
                iniFile.writeBoolValue("startWithGui", servMgr->startWithGui);
                iniFile.writeBoolValue("preventSS", servMgr->preventSS);
+               iniFile.writeBoolValue("noVersionCheck", servMgr->noVersionCheck);
 #endif
                int i;
 
@@ -1524,6 +1526,8 @@ void ServMgr::loadSettings(const char *fn)
                                servMgr->startWithGui = iniFile.getBoolValue();
                        else if (iniFile.isName("preventSS"))
                                servMgr->preventSS = iniFile.getBoolValue();
+                       else if (iniFile.isName("noVersionCheck"))
+                               servMgr->noVersionCheck = iniFile.getBoolValue();
 #endif
 
                        // debug
index 8a9310d..87da231 100644 (file)
@@ -420,6 +420,7 @@ public:
        bool topmostGui; // \8dÅ\91O\96Ê
        bool startWithGui; // \8bN\93®\8e\9e\82ÉGUI
        bool preventSS; // \83X\83N\83\8a\81[\83\93\83Z\81[\83o\81[\82ð\97}\8e~
+       bool noVersionCheck; // bcstAtom\82É\82æ\82é\83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82ð\8ds\82í\82È\82¢
 
        int maxRelaysIndexTxt;  // for PCRaw (relay)
 
index cd763d5..0364f8b 100644 (file)
@@ -39,14 +39,16 @@ static const char *PCX_AGENTJP              = "PeerCast/0.1218-J";
 static const char *PCX_AGENTVP         = "PeerCast/0.1218(VP0027)";
 static const char *PCX_VERSTRING       = "v0.1218(VP0027)";
 
-extern int version_ex; // PP\94Å\8ag\92£\8b@\94\\97L\8cø\89»\83t\83\89\83O(\82½\82Ô\82ñ)\81©\91å\89R[VERSION_EX\97L\8cø\89»\83t\83\89\83O]
+extern int version_ex; // VERSION_EX\97L\8cø\89»\83t\83\89\83O
 
 #if 1 /* for VP extend version */
 //#define VERSION_EX 1
 static const char *PCP_CLIENT_VERSION_EX_PREFIX = "IM"; // 2bytes only
-static const int  PCP_CLIENT_VERSION_EX_NUMBER = 35;
+static const int  PCP_CLIENT_VERSION_EX_NUMBER = 36;
 static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0035)";
 static const char *PCX_VERSTRING_EX = "v0.1218(IM0035)";
+
+static const char *PCP_CLIENT_DIST_URL = "http://peercastim.s353.xrea.com/";
 #endif
 
 // ------------------------------------------------
index 35d5c79..81c7324 100644 (file)
@@ -191,8 +191,6 @@ void WINAPI ServiceMain(DWORD argc, LPSTR *argv)
 {
        //hInst = hInstance;
 
-       version_ex = 1; // PP\94Å\8ag\92£\8b@\94\\82ð\96³\8cø\82É\81©\91å\89R\81B\83o\81[\83W\83\87\83\93\95\\8bL\82ðEX\82É
-
        //iniFileName.set(".\\peercast.ini");
 
        WIN32_FIND_DATA fd; //JP-EX
@@ -280,8 +278,6 @@ int WinMainDummy(HINSTANCE hInstance,
 
        hInst = hInstance;
 
-       version_ex = 1; // PP\94Å\8ag\92£\8b@\94\\82ð\96³\8cø\82É\81©\91å\89R\81B\83o\81[\83W\83\87\83\93\95\\8bL\82ðEX\82É
-
        iniFileName.set(".\\peercast.ini");
 
        WIN32_FIND_DATA fd; //JP-EX
@@ -1202,6 +1198,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                                        CheckMenuItem(trayMenu, ID_POPUP_PREVENT_SS, MF_UNCHECKED|MF_BYCOMMAND);
                                }
 
+                               // \83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82Ì\97L\96³
+                               if (servMgr->noVersionCheck)
+                               {
+                                       CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_CHECKED|MF_BYCOMMAND);
+                               } else
+                               {
+                                       CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_UNCHECKED|MF_BYCOMMAND);
+                               }
+
                                SetForegroundWindow(hWnd);    
                                bool skipMenu=false;
 
@@ -1466,6 +1471,20 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                                        peercastInst->saveSettings();
                                        break;
 
+                               case ID_POPUP_NO_VER_CHECK:
+                                       // \83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82Ì\97L\96³
+                                       if (servMgr->noVersionCheck)
+                                       {
+                                               servMgr->noVersionCheck = false;
+                                               CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_UNCHECKED|MF_BYCOMMAND);
+                                       } else
+                                       {
+                                               servMgr->noVersionCheck = true;
+                                               CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_CHECKED|MF_BYCOMMAND);
+                                       }
+                                       peercastInst->saveSettings();
+                                       break;
+
                                case ID_POPUP_EXIT_CONFIRM:
                                case IDM_EXIT:
                                   DestroyWindow(hWnd);
index a4f2c67..8e3bea2 100644 (file)
@@ -114,6 +114,7 @@ BEGIN
             MENUITEM "\8fí\82É\8eè\91O\82É\95\\8e¦",                     ID_POPUP_TOPMOST
             MENUITEM "\8bN\93®\8e\9e\81AGUI\82ð\95\\8e¦",                  ID_POPUP_START_WITH_GUI
             MENUITEM "\94z\90M\8e\9e\81AScreenSaver\82ð\97}\8e~",          ID_POPUP_PREVENT_SS, GRAYED
+            MENUITEM "\83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82ð\8ds\82í\82È\82¢",              ID_POPUP_NO_VER_CHECK
         END
         MENUITEM SEPARATOR
         POPUP "\8fI\97¹"
index d6266ab..cb15c30 100644 (file)
 #define ID_POPUP_TRAFFIC                32832
 #define ID_32833                        32833
 #define ID_POPUP_PREVENT_SS             32834
+#define ID_32835                        32835
+#define ID_POPUP_NO_VER_CHECK           32836
 #define IDC_STATIC                      -1
 
 // Next default values for new objects
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        144
-#define _APS_NEXT_COMMAND_VALUE         32835
+#define _APS_NEXT_COMMAND_VALUE         32837
 #define _APS_NEXT_CONTROL_VALUE         1025
 #define _APS_NEXT_SYMED_VALUE           110
 #endif
index d141df6..ff7ded8 100644 (file)
@@ -738,6 +738,17 @@ int PCPStream::readBroadcastAtoms(AtomStream &atom,int numc,BroadcastState &bcs)
                {
                        ver_ex_number = atom.readShort();
                        patom.writeShort(id,ver_ex_number);
+
+                       // version check
+                       if (!servMgr->noVersionCheck
+                               && !strncmp(ver_ex_prefix, PCP_CLIENT_VERSION_EX_PREFIX, 2)
+                               && ver_ex_number > PCP_CLIENT_VERSION_EX_NUMBER)
+                       {
+                               strcpy(servMgr->downloadURL, PCP_CLIENT_DIST_URL);
+                               peercastApp->notifyMessage(ServMgr::NT_UPGRADE,"\90V\82µ\82¢\83o\81[\83W\83\87\83\93\82ÌPeercast\82ª\8c\9f\8fo\82³\82ê\82Ü\82µ\82½\81B\8dX\90V\82ð\8am\94F\82µ\82Ä\82­\82¾\82³\82¢\81B");
+                               
+                               LOG_DEBUG("PCP got version check: %d / %d", ver_ex_number, PCP_CLIENT_VERSION_EX_NUMBER);
+                       }
                }else if (id == PCP_HOST)
                {
                        ChanHit hit;
index 320dd90..8df871a 100644 (file)
@@ -20,7 +20,7 @@ ServMgr *servMgr;
 PeercastInstance *peercastInst=NULL;
 PeercastApplication *peercastApp=NULL;
 
-int version_ex = 0;
+int version_ex = 1; // VERSION_EX\97L\8cø\89»
 
 // ---------------------------------
 void APICALL PeercastInstance::init()
index 4d166cb..4391037 100644 (file)
@@ -141,6 +141,7 @@ ServMgr::ServMgr()
        topmostGui = false;
        startWithGui = false;
        preventSS = false;
+       noVersionCheck = false;
 
        chanLog="";
 
@@ -1108,6 +1109,7 @@ void ServMgr::saveSettings(const char *fn)
                iniFile.writeBoolValue("topmostGui", servMgr->topmostGui);
                iniFile.writeBoolValue("startWithGui", servMgr->startWithGui);
                iniFile.writeBoolValue("preventSS", servMgr->preventSS);
+               iniFile.writeBoolValue("noVersionCheck", servMgr->noVersionCheck);
 #endif
                int i;
 
@@ -1524,6 +1526,8 @@ void ServMgr::loadSettings(const char *fn)
                                servMgr->startWithGui = iniFile.getBoolValue();
                        else if (iniFile.isName("preventSS"))
                                servMgr->preventSS = iniFile.getBoolValue();
+                       else if (iniFile.isName("noVersionCheck"))
+                               servMgr->noVersionCheck = iniFile.getBoolValue();
 #endif
 
                        // debug
index 8a9310d..87da231 100644 (file)
@@ -420,6 +420,7 @@ public:
        bool topmostGui; // \8dÅ\91O\96Ê
        bool startWithGui; // \8bN\93®\8e\9e\82ÉGUI
        bool preventSS; // \83X\83N\83\8a\81[\83\93\83Z\81[\83o\81[\82ð\97}\8e~
+       bool noVersionCheck; // bcstAtom\82É\82æ\82é\83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82ð\8ds\82í\82È\82¢
 
        int maxRelaysIndexTxt;  // for PCRaw (relay)
 
index cd763d5..0364f8b 100644 (file)
@@ -39,14 +39,16 @@ static const char *PCX_AGENTJP              = "PeerCast/0.1218-J";
 static const char *PCX_AGENTVP         = "PeerCast/0.1218(VP0027)";
 static const char *PCX_VERSTRING       = "v0.1218(VP0027)";
 
-extern int version_ex; // PP\94Å\8ag\92£\8b@\94\\97L\8cø\89»\83t\83\89\83O(\82½\82Ô\82ñ)\81©\91å\89R[VERSION_EX\97L\8cø\89»\83t\83\89\83O]
+extern int version_ex; // VERSION_EX\97L\8cø\89»\83t\83\89\83O
 
 #if 1 /* for VP extend version */
 //#define VERSION_EX 1
 static const char *PCP_CLIENT_VERSION_EX_PREFIX = "IM"; // 2bytes only
-static const int  PCP_CLIENT_VERSION_EX_NUMBER = 35;
+static const int  PCP_CLIENT_VERSION_EX_NUMBER = 36;
 static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0035)";
 static const char *PCX_VERSTRING_EX = "v0.1218(IM0035)";
+
+static const char *PCP_CLIENT_DIST_URL = "http://peercastim.s353.xrea.com/";
 #endif
 
 // ------------------------------------------------
index 35d5c79..81c7324 100644 (file)
@@ -191,8 +191,6 @@ void WINAPI ServiceMain(DWORD argc, LPSTR *argv)
 {
        //hInst = hInstance;
 
-       version_ex = 1; // PP\94Å\8ag\92£\8b@\94\\82ð\96³\8cø\82É\81©\91å\89R\81B\83o\81[\83W\83\87\83\93\95\\8bL\82ðEX\82É
-
        //iniFileName.set(".\\peercast.ini");
 
        WIN32_FIND_DATA fd; //JP-EX
@@ -280,8 +278,6 @@ int WinMainDummy(HINSTANCE hInstance,
 
        hInst = hInstance;
 
-       version_ex = 1; // PP\94Å\8ag\92£\8b@\94\\82ð\96³\8cø\82É\81©\91å\89R\81B\83o\81[\83W\83\87\83\93\95\\8bL\82ðEX\82É
-
        iniFileName.set(".\\peercast.ini");
 
        WIN32_FIND_DATA fd; //JP-EX
@@ -1202,6 +1198,15 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                                        CheckMenuItem(trayMenu, ID_POPUP_PREVENT_SS, MF_UNCHECKED|MF_BYCOMMAND);
                                }
 
+                               // \83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82Ì\97L\96³
+                               if (servMgr->noVersionCheck)
+                               {
+                                       CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_CHECKED|MF_BYCOMMAND);
+                               } else
+                               {
+                                       CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_UNCHECKED|MF_BYCOMMAND);
+                               }
+
                                SetForegroundWindow(hWnd);    
                                bool skipMenu=false;
 
@@ -1466,6 +1471,20 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
                                        peercastInst->saveSettings();
                                        break;
 
+                               case ID_POPUP_NO_VER_CHECK:
+                                       // \83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82Ì\97L\96³
+                                       if (servMgr->noVersionCheck)
+                                       {
+                                               servMgr->noVersionCheck = false;
+                                               CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_UNCHECKED|MF_BYCOMMAND);
+                                       } else
+                                       {
+                                               servMgr->noVersionCheck = true;
+                                               CheckMenuItem(trayMenu, ID_POPUP_NO_VER_CHECK, MF_CHECKED|MF_BYCOMMAND);
+                                       }
+                                       peercastInst->saveSettings();
+                                       break;
+
                                case ID_POPUP_EXIT_CONFIRM:
                                case IDM_EXIT:
                                   DestroyWindow(hWnd);
index a4f2c67..8e3bea2 100644 (file)
@@ -114,6 +114,7 @@ BEGIN
             MENUITEM "\8fí\82É\8eè\91O\82É\95\\8e¦",                     ID_POPUP_TOPMOST
             MENUITEM "\8bN\93®\8e\9e\81AGUI\82ð\95\\8e¦",                  ID_POPUP_START_WITH_GUI
             MENUITEM "\94z\90M\8e\9e\81AScreenSaver\82ð\97}\8e~",          ID_POPUP_PREVENT_SS, GRAYED
+            MENUITEM "\83o\81[\83W\83\87\83\93\83`\83F\83b\83N\82ð\8ds\82í\82È\82¢",              ID_POPUP_NO_VER_CHECK
         END
         MENUITEM SEPARATOR
         POPUP "\8fI\97¹"
index d6266ab..cb15c30 100644 (file)
 #define ID_POPUP_TRAFFIC                32832
 #define ID_32833                        32833
 #define ID_POPUP_PREVENT_SS             32834
+#define ID_32835                        32835
+#define ID_POPUP_NO_VER_CHECK           32836
 #define IDC_STATIC                      -1
 
 // Next default values for new objects
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_NEXT_RESOURCE_VALUE        144
-#define _APS_NEXT_COMMAND_VALUE         32835
+#define _APS_NEXT_COMMAND_VALUE         32837
 #define _APS_NEXT_CONTROL_VALUE         1025
 #define _APS_NEXT_SYMED_VALUE           110
 #endif