53 lines
1.7 KiB
C++
Raw Normal View History

#include "ConfigManager.h"
#include "VrLog.h"
2025-11-26 22:44:38 +08:00
#include "VrError.h"
2025-11-26 22:44:38 +08:00
// ParticleSize 应用的 ConfigManager 实现
// 所有通用功能都在 BaseConfigManager 中实现
// 这里只实现 ParticleSize 特定的功能
2025-11-26 22:44:38 +08:00
// 实现 LoadConfigFromFile 以适配 ParticleSize 的 IVrConfig API
// ParticleSize 使用引用参数方式int LoadConfig(const std::string& filePath, ConfigResult& configResult)
bool ConfigManager::LoadConfigFromFile(const std::string& filePath)
{
if (!m_pVrConfig) {
LOG_ERROR("VrConfig instance not available\n");
return false;
}
try {
ConfigResult configResult;
2025-11-26 22:44:38 +08:00
// ParticleSize 使用引用参数方式
int ret = m_pVrConfig->LoadConfig(filePath, configResult);
if (ret != SUCCESS) {
LOG_ERROR("Failed to load config from file: %s, error: %d\n", filePath.c_str(), ret);
return false;
}
2025-11-26 22:44:38 +08:00
// 使用基类的公共逻辑应用配置
return _ApplyLoadedConfig(configResult, filePath);
2025-11-26 22:44:38 +08:00
} catch (const std::exception& e) {
LOG_ERROR("Failed to load configuration from file %s: %s\n", filePath.c_str(), e.what());
return false;
}
}
2025-11-26 22:44:38 +08:00
bool ConfigManager::OnSwitchPackageTypeCommand(const SwitchPackageTypeParam& param)
{
2025-11-26 22:44:38 +08:00
LOG_INFO("ParticleSize: Received switch package type command: packageTypeId=%s\n", param.packageTypeId);
2025-11-26 22:44:38 +08:00
// ParticleSize 应用特有的包裹类型切换逻辑
// 这里需要根据实际需求实现包裹类型切换
// 可能需要:
// 1. 重新加载不同的配置文件
// 2. 更新算法参数
// 3. 切换检测模式
// 4. 通知UI更新
2025-11-26 22:44:38 +08:00
// TODO: 实现具体的包裹类型切换逻辑
return true;
}