/// Set the filters of logging bool ChatHandler::HandleServerLogFilterCommand(const char* args) { if (!*args) { uint32 logfiler = sLog.getLogFilter(); SendSysMessage(LANG_LOG_FILTERS_STATE_HEADER); for (int i = 0; i < LOG_FILTER_COUNT; ++i) if (*logFilterData[i].name) PSendSysMessage(" %-20s = %s",logFilterData[i].name,(logfiler & (1 << i)) !=0 ? GetString(LANG_ON) : GetString(LANG_OFF)); return true; } char *filtername = strtok((char*)args, " "); if (!filtername) return false; char *value_str = strtok(NULL, " "); if (!value_str) return false; bool value; if (strncmp(value_str, "on", 3) == 0) value = true; else if (strncmp(value_str, "off", 4) == 0) value = false; else { SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } if (strncmp(filtername, "all", 4) == 0) { sLog.SetLogFilter(LogFilters(0xFFFFFFFF),value); PSendSysMessage(LANG_ALL_LOG_FILTERS_SET_TO_S, value ? GetString(LANG_ON) : GetString(LANG_OFF)); return true; } for (int i = 0; i < LOG_FILTER_COUNT; ++i) { if (!*logFilterData[i].name) continue; if (!strncmp(filtername,logFilterData[i].name,strlen(filtername))) { sLog.SetLogFilter(LogFilters(1 << i),value); PSendSysMessage(" %-20s = %s",logFilterData[i].name,value ? GetString(LANG_ON) : GetString(LANG_OFF)); return true; } } return false; }
/// Set the filters of logging bool ChatHandler::HandleServerLogFilterCommand(char* args) { if (!*args) { uint32 logfiler = sLog.getLogFilter(); SendSysMessage(LANG_LOG_FILTERS_STATE_HEADER); for(int i = 0; i < LOG_FILTER_COUNT; ++i) if (*logFilterData[i].name) PSendSysMessage(" %-20s = %s",logFilterData[i].name,(logfiler & (1 << i)) !=0 ? GetMangosString(LANG_ON) : GetMangosString(LANG_OFF)); return true; } char *filtername = ExtractLiteralArg(&args); if (!filtername) return false; bool value; if (!ExtractOnOff(&args, value)) { SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } if (strncmp(filtername, "all", 4) == 0) { sLog.SetLogFilter(LogFilters(0xFFFFFFFF), value); PSendSysMessage(LANG_ALL_LOG_FILTERS_SET_TO_S, value ? GetMangosString(LANG_ON) : GetMangosString(LANG_OFF)); return true; } for(int i = 0; i < LOG_FILTER_COUNT; ++i) { if (!*logFilterData[i].name) continue; if (!strncmp(filtername,logFilterData[i].name,strlen(filtername))) { sLog.SetLogFilter(LogFilters(1 << i),value); PSendSysMessage(" %-20s = %s",logFilterData[i].name,value ? GetMangosString(LANG_ON) : GetMangosString(LANG_OFF)); return true; } } return false; }
/// Set the filters of logging bool ChatHandler::HandleServerLogFilterCommand(char* args) { if (!*args) { SendSysMessage(LANG_LOG_FILTERS_STATE_HEADER); for (int i = 0; i < LOG_FILTER_COUNT; ++i) if (*logFilterData[i].name) PSendSysMessage(" %-20s = %s", logFilterData[i].name, GetOnOffStr(sLog.HasLogFilter(1 << i))); return true; } char* filtername = ExtractLiteralArg(&args); if (!filtername) return false; bool value; if (!ExtractOnOff(&args, value)) { SendSysMessage(LANG_USE_BOL); SetSentErrorMessage(true); return false; } if (strncmp(filtername, "all", 4) == 0) { sLog.SetLogFilter(LogFilters(0xFFFFFFFF), value); PSendSysMessage(LANG_ALL_LOG_FILTERS_SET_TO_S, GetOnOffStr(value)); return true; } size_t _len = strlen(filtername); for (int i = 0; i < LOG_FILTER_COUNT; ++i) { if (!*logFilterData[i].name) continue; if (!strncmp(filtername, logFilterData[i].name, _len)) { sLog.SetLogFilter(LogFilters(1 << i), value); PSendSysMessage(" %-20s = %s", logFilterData[i].name, GetOnOffStr(value)); return true; } } return false; }
bool HVideoEncoder::SetConfig(VideoEncoderConfig &config) { ComPtr<IBaseFilter> filter; ComPtr<IBaseFilter> crossbar; if (config.name.empty() && config.path.empty()) { Warning(L"No video encoder name or path specified"); return false; } bool success = GetDeviceFilter(KSCATEGORY_ENCODER, config.name.c_str(), config.path.c_str(), &filter); if (!success) { Warning(L"Video encoder '%s': %s not found", config.name.c_str(), config.path.c_str()); return false; } if (!filter) { Warning(L"Could not get encoder filter"); return false; } this->config = config; if (!SetupEncoder(filter)) { Warning(L"Failed to set up encoder"); return false; } if (!SetupCrossbar()) { Warning(L"Failed to set up crossbar"); return false; } if (!SetAvermediaEncoderConfig(device, config)) { Warning(L"Failed to set Avermedia encoder settings"); return false; } if (!ConnectFilters()) { Warning(L"Failed to connect encoder filters"); return false; } LogFilters(graph); HRESULT hr = control->Run(); if (FAILED(hr)) { WarningHR(L"Run failed", hr); return false; } active = true; return true; }
bool HDevice::ConnectFilters() { bool success = true; if (!EnsureInitialized(L"ConnectFilters") || !EnsureInactive(L"ConnectFilters")) return false; if (videoCapture != NULL) { success = ConnectPins(PIN_CATEGORY_CAPTURE, MEDIATYPE_Video, videoFilter, videoCapture); if (!success) { success = RenderFilters(PIN_CATEGORY_CAPTURE, MEDIATYPE_Video, videoFilter, videoCapture); } } if ((audioCapture || audioOutput) && success) { IBaseFilter *filter = (audioCapture != nullptr) ? audioCapture.Get() : audioOutput.Get(); if (audioCapture != nullptr) SetAudioBuffering(10); success = ConnectPins(PIN_CATEGORY_CAPTURE, MEDIATYPE_Audio, audioFilter, filter); if (!success) { success = RenderFilters(PIN_CATEGORY_CAPTURE, MEDIATYPE_Audio, audioFilter, filter); } } if (success) LogFilters(graph); return success; }