bool SaveFile(FILE_MP3* pFileMP3) { if (!pFileMP3->bModifyFlag) return true; UINT result = STEP_ERROR; FILE_INFO fileInfo; fileInfo.pFileMP3 = pFileMP3; int nIndex = plugins.GetPluginIndex(pFileMP3->nFormat); if (nIndex < 0) { // 対応プラグインなし return false; } PSTEPlugin plugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!plugin->bUse) return false; if (plugin->STEPSave != NULL) { result = plugin->STEPSave(&fileInfo); if (result == STEP_SUCCESS) { result = CFileMP3::ConvFileName(pFileMP3) == true ? STEP_SUCCESS : STEP_ERROR; } } if (result != STEP_SUCCESS) { return false; } pFileMP3->bModifyFlag = false; return true; }
LPCWSTR GetColumnName(UINT nFormat, COLUMNTYPE nColumn) { int nIndex = plugins.GetPluginIndex(nFormat); if (nIndex < 0) { // 対応プラグインなし return 0; } PSTEPlugin plugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!plugin->bUse) return 0; if (plugin->STEPGetColumnName == NULL) { return 0; } return plugin->STEPGetColumnName(nFormat, nColumn); }
int GetColumnMax(UINT nFormat, COLUMNTYPE nColumn, bool isEditSIF) { int nIndex = plugins.GetPluginIndex(nFormat); if (nIndex < 0) { // 対応プラグインなし return 0; } PSTEPlugin plugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!plugin->bUse) return 0; if (plugin->STEPGetColumnMax == NULL) { return 0; } return plugin->STEPGetColumnMax(nFormat, nColumn, isEditSIF); }
CONTROLTYPE GetControlType(UINT nFormat, COLUMNTYPE nColumn, bool isEditSIF) { int nIndex = plugins.GetPluginIndex(nFormat); if (nIndex < 0) { // 対応プラグインなし return invalid; } PSTEPlugin plugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!plugin->bUse) return invalid; if (plugin->STEPGetControlType == NULL) { return invalid; } return plugin->STEPGetControlType(nFormat, nColumn, isEditSIF); }
BOOL IsPluginSupportGenreSIF(const FILE_MP3 *fileMP3) { int nIndex = plugins.GetPluginIndex(fileMP3->nFormat); if (nIndex < 0) { // 対応プラグインなし return FALSE; } PSTEPlugin plugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!plugin->bUse) return FALSE; if (plugin->STEPSupportGenreSIF == NULL) { return IsPluginSupportSIF(fileMP3);// FALSE; } return plugin->STEPSupportGenreSIF(fileMP3->nFormat) ? TRUE : FALSE; }
void InitFileSpecificInfo(FILE_MP3* pFileMP3) { int nIndex = plugins.GetPluginIndex(pFileMP3->nFormat); if (nIndex < 0) { // 対応プラグインなし return; } FILE_INFO fileInfo; fileInfo.pFileMP3 = pFileMP3; PSTEPlugin pPlugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (pPlugin->STEPInitFileSpecificInfo != NULL) { pPlugin->STEPInitFileSpecificInfo(&fileInfo); return; } }
bool HasOriginalColumnName(UINT nFormat) { int nIndex = plugins.GetPluginIndex(nFormat); if (nIndex < 0) { // 対応プラグインなし return false; } PSTEPlugin plugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!plugin->bUse) return false; if (plugin->STEPGetColumnName == NULL) { return false; } if (plugin->STEPHasSpecificColumnName == NULL) { return false; } return plugin->STEPHasSpecificColumnName(nFormat); }
int GetFileImageIndex(UINT nFormat, bool bModify) { int nIndex = plugins.GetPluginIndex(nFormat); if (nIndex < 0) { // 対応プラグインなし return -1; } PSTEPlugin pPlugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (!pPlugin->bUse) return -1; int i; for (i=0;i<pPlugin->arExtInfo.GetSize();i++) { PSTEPExtInfo info = (PSTEPExtInfo)pPlugin->arExtInfo.GetAt(i); if (info->nFormatType == nFormat && info->nImageIndex != -1) { return bModify ? (info->nImageIndex+1) : info->nImageIndex; } } return -1; }
void OnConvSIFieldToID3tag(FILE_MP3* pFileMP3) /* STEP 037 */ { int nIndex = plugins.GetPluginIndex(pFileMP3->nFormat); if (nIndex < 0) { // 対応プラグインなし return; } FILE_INFO fileInfo; fileInfo.pFileMP3 = pFileMP3; PSTEPlugin pPlugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); if (pPlugin->STEPOnConvSiFieldToId3tag != NULL) { if (pPlugin->STEPOnConvSiFieldToId3tag(&fileInfo) == false) { return; // 未サポート or プラグイン側で実行 } } else { return; // 未サポート } ConvSIFieldToID3tag(pFileMP3); }
bool CheckFileExt(const FILE_MP3* pFileMP3, const wchar_t* ext) { if (pFileMP3 == NULL) return false; int nIndex = plugins.GetPluginIndex(pFileMP3->nFormat); if (nIndex < 0) { // 対応プラグインなし return false; } PSTEPlugin pPlugin = (PSTEPlugin)plugins.arPlugins.GetAt(nIndex); int j; for (j=0;j<pPlugin->arExtInfo.GetSize();j++) { PSTEPExtInfo info = (PSTEPExtInfo)pPlugin->arExtInfo.GetAt(j); if (wcscmp(ext, info->strExt) == 0) { return true; } if (ext[0] == '.' && wcscmp(ext+1, info->strExt) == 0) { return true; } } return false; }