Ejemplo n.º 1
0
void
StatusView::DetachedFromWindow()
{
	fDriverInterface.StopWatching();

	if (RemoveFilter(fPrefFileWatcher))
		delete fPrefFileWatcher;
	if (RemoveFilter(fFrequencySwitcher))
		delete fFrequencySwitcher;
	if (RemoveFilter(fPreferencesMenuFilter))
		delete fPreferencesMenuFilter;
	delete fPreferencesMenu;
}
Ejemplo n.º 2
0
AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, const ALuint *filters)
{
    ALCcontext *Context;
    ALfilter *Filter;
    ALsizei i;

    Context = GetContextRef();
    if(!Context) return;

    al_try
    {
        ALCdevice *device = Context->Device;
        CHECK_VALUE(Context, n >= 0);
        for(i = 0;i < n;i++)
        {
            if(filters[i] && LookupFilter(device, filters[i]) == NULL)
                al_throwerr(Context, AL_INVALID_NAME);
        }

        for(i = 0;i < n;i++)
        {
            if((Filter=RemoveFilter(device, filters[i])) == NULL)
                continue;
            FreeThunkEntry(Filter->id);

            memset(Filter, 0, sizeof(*Filter));
            free(Filter);
        }
    }
    al_endtry;

    ALCcontext_DecRef(Context);
}
Ejemplo n.º 3
0
AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, const ALuint *filters)
{
    ALCdevice *device;
    ALCcontext *context;
    ALfilter *filter;
    ALsizei i;

    context = GetContextRef();
    if(!context) return;

    if(!(n >= 0))
        SET_ERROR_AND_GOTO(context, AL_INVALID_VALUE, done);

    device = context->Device;
    for(i = 0;i < n;i++)
    {
        if(filters[i] && LookupFilter(device, filters[i]) == NULL)
            SET_ERROR_AND_GOTO(context, AL_INVALID_NAME, done);
    }
    for(i = 0;i < n;i++)
    {
        if((filter=RemoveFilter(device, filters[i])) == NULL)
            continue;
        FreeThunkEntry(filter->id);

        memset(filter, 0, sizeof(*filter));
        free(filter);
    }

done:
    ALCcontext_DecRef(context);
}
Ejemplo n.º 4
0
HRESULT CGraphRender::StopRecord()
{
	HRESULT hr = S_OK;
	this->Stop();
	
	if ( m_pMultiplexer )
	{
		RemoveFilter( m_pMultiplexer );
		m_pMultiplexer = NULL;
	}
	if ( m_pFileSink )
	{
		RemoveFilter( m_pFileSink );
		m_pFileSink = NULL;
	}
	DbgLog((LOG_TRACE, 0, TEXT("StopRecord[%s]."), GetNamed()));
	
	return Run();
}
Ejemplo n.º 5
0
AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, ALuint *filters)
{
    ALCcontext *Context;
    ALCdevice *device;
    ALfilter *ALFilter;
    ALsizei i;

    Context = GetContextRef();
    if(!Context) return;

    device = Context->Device;
    if(n < 0)
        alSetError(Context, AL_INVALID_VALUE);
    else
    {
        // Check that all filters are valid
        for(i = 0;i < n;i++)
        {
            if(!filters[i])
                continue;

            if(LookupFilter(device->FilterMap, filters[i]) == NULL)
            {
                alSetError(Context, AL_INVALID_NAME);
                n = 0;
                break;
            }
        }

        for(i = 0;i < n;i++)
        {
            // Recheck that the filter is valid, because there could be duplicated names
            if((ALFilter=RemoveFilter(device->FilterMap, filters[i])) == NULL)
                continue;
            FreeThunkEntry(ALFilter->filter);

            memset(ALFilter, 0, sizeof(ALfilter));
            free(ALFilter);
        }
    }

    ALCcontext_DecRef(Context);
}
Ejemplo n.º 6
0
	HRESULT RemoveFilter(IGraphBuilder* pGraphBuilder, IBaseFilter* pBaseFilter)
	{
		CheckPointer(pGraphBuilder, E_POINTER);
		CheckPointer(pBaseFilter, E_PENDING);

		IEnumPins *pEnumPins = NULL;
		HRESULT hr = pBaseFilter->EnumPins(&pEnumPins);
		if (FAILED(hr)) return hr;
		pEnumPins->Reset();

		IPin *pPinFrom = 0, *pPinTo = 0;
		while ((hr = pEnumPins->Next(1, &pPinFrom, NULL)) == S_OK)
		{
			if (SUCCEEDED(hr))
			{
				hr = pPinFrom->ConnectedTo(&pPinTo);
				if (SUCCEEDED(hr))
				{
					PIN_INFO info;
					hr = pPinTo->QueryPinInfo(&info);
					if (SUCCEEDED(hr))	
					{
						if (info.dir == PINDIR_INPUT)
						{
							RemoveFilter(pGraphBuilder, info.pFilter);
							pGraphBuilder->Disconnect(pPinTo);
							pGraphBuilder->Disconnect(pPinFrom);
							pGraphBuilder->RemoveFilter(info.pFilter);
						}
						info.pFilter->Release();
					}
					pPinTo->Release();
				}
				pPinFrom->Release();
			}
		}
		pEnumPins->Release();
		return S_OK;
	}
void CAdblockPlusClient::RemoveFilter(const std::wstring& text)
{
  RemoveFilter(ToUtf8String(text));
}