Пример #1
0
/// 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;
}
Пример #2
0
/// 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;
}
Пример #3
0
/// 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;
}
Пример #4
0
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;
}
Пример #5
0
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;
}