OSDN Git Service

TPI_ARCHIVEINFO::fiInfoを追加。
authorsirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sun, 11 Oct 2009 07:21:06 +0000 (07:21 +0000)
committersirakaba <sirakaba@9df91469-1e22-0410-86e7-ea8537beb833>
Sun, 11 Oct 2009 07:21:06 +0000 (07:21 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/tpi/tpi@38 9df91469-1e22-0410-86e7-ea8537beb833

src/common/header/plugin.h
src/common/library/library.h
src/plugin/calLibrary/calLibrary.cpp
src/plugin/cuiWrapper/cuiWrapper.cpp

index 8d985e3..b4ff619 100644 (file)
@@ -287,6 +287,7 @@ typedef struct _TPI_tagARCHIVEINFO
        wxFileName      fnArchive;          /**< ファイル名 */\r
        wxString        szComment;          /**< コメント */\r
        unsigned short  wCompressRatio;     /**< 圧縮率 */\r
+       TPI_FORMATINFO  fiInfo;             /**< 形式に関する情報を格納 */\r
        void *          pCustomInfo;        /**< 任意の情報を格納 */\r
 }      TPI_ARCHIVEINFO;\r
 \r
index 89966d2..712795e 100644 (file)
@@ -37,12 +37,25 @@ wxString WC2String(const wchar_t * sz);
 \r
 #ifdef wxUSE_XML\r
 #include <wx/xml/xml.h>\r
-#define CheckSupportedCommand(attr, value) if (node->HasProp(wxT(attr)) || node->HasProp(wxT(attr) wxT("-alt"))) llResult |= value\r
+#define CheckSupportedCommand(attr, value) if (xmlLibrary->HasProp(wxT(attr)) || xmlLibrary->HasProp(wxT(attr) wxT("-alt"))) _fiInfo->llSupportedCommand |= value\r
 #define CheckSupportedSwitch(var,   value) value = szCmdLine.Find(wxT(var)) != wxNOT_FOUND\r
 \r
-inline wxULongLong_t SupportedCommand(wxXmlNode * node)\r
+inline short GetNumValue(wxXmlNode * node, wxString szValue)\r
 {\r
-       wxULongLong_t llResult = 0;\r
+       long l;\r
+       node->GetPropVal(szValue, wxT("0")).ToLong(& l);\r
+       return (short) l;\r
+}\r
+\r
+inline void MakeFormatInfo(wxString szTPIName, TPI_FORMATINFO * _fiInfo, wxXmlNode * xmlLibrary, wxULongLong llId)\r
+{\r
+       _fiInfo->szTypeName   = xmlLibrary->GetPropVal(wxT("typename"),wxEmptyString);\r
+       _fiInfo->szSuffix     = xmlLibrary->GetPropVal(wxT("suffix"),  wxEmptyString);\r
+       _fiInfo->szEngineName = xmlLibrary->GetPropVal(wxT("name"),    wxEmptyString);\r
+       _fiInfo->szTPIName    = szTPIName;\r
+       _fiInfo->llTypeId     = llId;\r
+\r
+       // \91Î\89\9e\83R\83}\83\93\83h\82ð\92²\8d¸\81B\r
        CheckSupportedCommand("add",    TPI_COMMAND_ADD);\r
        CheckSupportedCommand("extract",TPI_COMMAND_EXTRACT);\r
        CheckSupportedCommand("delete", TPI_COMMAND_DELETE);\r
@@ -52,38 +65,27 @@ inline wxULongLong_t SupportedCommand(wxXmlNode * node)
        CheckSupportedCommand("move",   TPI_COMMAND_MOVE);\r
        CheckSupportedCommand("sfx",    TPI_COMMAND_SFX);\r
        CheckSupportedCommand("unsfx",  TPI_COMMAND_UNSFX);\r
-       return llResult;\r
-}\r
 \r
-inline short GetNumValue(wxXmlNode * node, wxString szValue)\r
-{\r
-       long l;\r
-       node->GetPropVal(szValue, wxT("0")).ToLong(& l);\r
-       return (short) l;\r
-}\r
-\r
-inline void SupportedSwitch(wxXmlNode * node, TPI_FORMATINFO * fiInfo)\r
-{\r
+       // \91Î\89\9e\83X\83C\83b\83`\82ð\92²\8d¸\81B\r
        wxString szCmdLine =\r
-               node->HasProp(wxT("add"))         ? node->GetPropVal(wxT("add"),         wxEmptyString) :\r
-               node->HasProp(wxT("add-alt"))     ? node->GetPropVal(wxT("add-alt"),     wxEmptyString) :\r
-               node->HasProp(wxT("extract"))     ? node->GetPropVal(wxT("extract"),     wxEmptyString) :\r
-               node->HasProp(wxT("extract-alt")) ? node->GetPropVal(wxT("extract-alt"), wxEmptyString) :\r
+               xmlLibrary->HasProp(wxT("add"))         ? xmlLibrary->GetPropVal(wxT("add"),         wxEmptyString) :\r
+               xmlLibrary->HasProp(wxT("add-alt"))     ? xmlLibrary->GetPropVal(wxT("add-alt"),     wxEmptyString) :\r
+               xmlLibrary->HasProp(wxT("extract"))     ? xmlLibrary->GetPropVal(wxT("extract"),     wxEmptyString) :\r
+               xmlLibrary->HasProp(wxT("extract-alt")) ? xmlLibrary->GetPropVal(wxT("extract-alt"), wxEmptyString) :\r
                (wxString) wxEmptyString;\r
-       CheckSupportedSwitch("96", fiInfo->fComment);\r
-       CheckSupportedSwitch("a1", fiInfo->fSFX);\r
-       CheckSupportedSwitch("a2", fiInfo->fSolid);\r
-       CheckSupportedSwitch("a3", fiInfo->fMMOptimize);\r
-       CheckSupportedSwitch("a4", fiInfo->fEncryptHeader);\r
-       CheckSupportedSwitch("a5", fiInfo->fEncryptPassword);\r
-       CheckSupportedSwitch("a6", fiInfo->fEncryptKeyFile);\r
-       CheckSupportedSwitch("a7", fiInfo->fMultiVolume);\r
+       CheckSupportedSwitch("96", _fiInfo->fComment);\r
+       CheckSupportedSwitch("a1", _fiInfo->fSFX);\r
+       CheckSupportedSwitch("a2", _fiInfo->fSolid);\r
+       CheckSupportedSwitch("a3", _fiInfo->fMMOptimize);\r
+       CheckSupportedSwitch("a4", _fiInfo->fEncryptHeader);\r
+       CheckSupportedSwitch("a5", _fiInfo->fEncryptPassword);\r
+       CheckSupportedSwitch("a6", _fiInfo->fEncryptKeyFile);\r
+       CheckSupportedSwitch("a7", _fiInfo->fMultiVolume);\r
 \r
-       fiInfo->sCompressLevelMin  = GetNumValue(node, wxT("level-min"));\r
-       fiInfo->sCompressLevelMax  = GetNumValue(node, wxT("level-max"));\r
-       fiInfo->sRecoveryRecordMin = GetNumValue(node, wxT("rr-min"));\r
-       fiInfo->sRecoveryRecordMax = GetNumValue(node, wxT("rr-max"));\r
-       return;\r
+       _fiInfo->sCompressLevelMin  = GetNumValue(xmlLibrary, wxT("level-min"));\r
+       _fiInfo->sCompressLevelMax  = GetNumValue(xmlLibrary, wxT("level-max"));\r
+       _fiInfo->sRecoveryRecordMin = GetNumValue(xmlLibrary, wxT("rr-min"));\r
+       _fiInfo->sRecoveryRecordMax = GetNumValue(xmlLibrary, wxT("rr-max"));\r
 }\r
 \r
 #endif\r
index 86be279..3b63f50 100644 (file)
@@ -403,13 +403,7 @@ int __stdcall GetFormatInformation(TPI_FORMATINFO * _fiInfo, bool _bFirst)
                return TPI_ERROR_UNDEFINED;\r
        }\r
 \r
-       _fiInfo->szTypeName   = xmlLibrary->GetPropVal(wxT("typename"),wxEmptyString);\r
-       _fiInfo->szSuffix     = xmlLibrary->GetPropVal(wxT("suffix"),  wxEmptyString);\r
-       _fiInfo->szEngineName = xmlLibrary->GetPropVal(wxT("name"),    wxEmptyString);\r
-       _fiInfo->szTPIName    = wxT("calLibrary");\r
-       _fiInfo->llSupportedCommand = SupportedCommand(xmlLibrary);\r
-       _fiInfo->llTypeId     = s_uFileID++;\r
-       SupportedSwitch(xmlLibrary, _fiInfo);\r
+       MakeFormatInfo(wxT("calLibrary"), _fiInfo, xmlLibrary, s_uFileID++);\r
 \r
        return TPI_ERROR_SUCCESS;\r
 }\r
@@ -792,6 +786,9 @@ int __stdcall GetArchiveInformation
                _aiInfo->nSFXType = 0;\r
        }\r
 \r
+       // \8c`\8e®\82É\8aÖ\82·\82é\8fî\95ñ\82ð\8eæ\93¾\81B\r
+       MakeFormatInfo(wxT("calLibrary"), & _aiInfo->fiInfo, & g_LibInfo.node, 0);\r
+\r
        return TPI_ERROR_SUCCESS;\r
 }\r
 \r
index aae314d..75f4346 100644 (file)
@@ -235,13 +235,11 @@ int __stdcall GetFormatInformation(TPI_FORMATINFO * _fiInfo, bool _bFirst)
                return TPI_ERROR_UNDEFINED;\r
        }\r
 \r
-       _fiInfo->szTypeName   = xmlLibrary->GetPropVal(wxT("typename"),wxEmptyString);\r
-       _fiInfo->szSuffix     = xmlLibrary->GetPropVal(wxT("suffix"),  wxEmptyString);\r
-       _fiInfo->szEngineName = xmlLibrary->GetPropVal(wxT("name"),    wxEmptyString);\r
-       _fiInfo->szTPIName    = wxT("cuiWrapper");\r
-       _fiInfo->llSupportedCommand = myExecute(xmlLibrary->GetPropVal(wxT("name"), wxEmptyString), NULL, wxEmptyString, true) == TPI_ERROR_SUCCESS ? SupportedCommand(xmlLibrary) : 0;\r
-       _fiInfo->llTypeId     = s_uFileID++;\r
-       SupportedSwitch(xmlLibrary, _fiInfo);\r
+       MakeFormatInfo(wxT("cuiWrapper"), _fiInfo, xmlLibrary, s_uFileID++);\r
+       if (myExecute(xmlLibrary->GetPropVal(wxT("name"), wxEmptyString), NULL, wxEmptyString, true) != TPI_ERROR_SUCCESS)\r
+       {\r
+               _fiInfo->llSupportedCommand = 0;\r
+       }\r
 \r
        return TPI_ERROR_SUCCESS;\r
 }\r
@@ -462,9 +460,11 @@ int __stdcall GetFileInformation
 int __stdcall GetArchiveInformation\r
 (\r
        void *,\r
-       TPI_ARCHIVEINFO *\r
+       TPI_ARCHIVEINFO * _aiInfo\r
 )\r
 {\r
+       // \8c`\8e®\82É\8aÖ\82·\82é\8fî\95ñ\82ð\8eæ\93¾\81B\r
+       MakeFormatInfo(wxT("calLibrary"), & _aiInfo->fiInfo, & g_LibInfo.node, 0);\r
        return TPI_ERROR_SUCCESS;\r
 }\r
 \r