Форум Beholder
http://beholder.ru/bb/

Переключится на Радио и обратно на ТВ......
http://beholder.ru/bb/viewtopic.php?f=10&t=13869
Страница 1 из 1

Автор:  sorokinmv [ 19 сен 2013, 21:39 ]
Заголовок сообщения:  Переключится на Радио и обратно на ТВ......

Прошу помощи!!! Уже несколько дней пытаюсь перевести тюнер с режима ТВ на ФМ и обратно. Использую DsPack
Код:
Var
Tuner: IAMTvTuner;
PropertySet : IKSPropertySet;
//......................
H:=Tuner.QueryInterface(IID_IKSPropertySet,PropertySet);
Tuner.GetAvailableModes(tmode);
//Tuner.get_Mode(tm);
Tuner.put_Mode(AMTUNER_MODE_FM_RADIO);
//......................

Режим на устройстве меняется но вещания нету.....

Предполагая что можно использовать(адаптировать) пример из этого раздела, но к сожалению не знаю какой режим (ID) надо выбрать

Код:
// {E73F292A-5AF3-47c7-BB55-2C474B992296}
static const GUID KSPROPSETID_ANALOG_TUNER_API =
{ 0xe73f292a, 0x5af3, 0x47c7, { 0xbb, 0x55, 0x2c, 0x47, 0x4b, 0x99, 0x22, 0x96 } };
//////////////////////////////////////////////////////////////////////////////
typedef enum
{
    // .........
    KSPROPERTY_ID_TUNER_SCAN_MODE = 6,
    // .........
} KSPROPERTY_ADVANCED_TUNER_ID;
//////////////////////////////////////////////////////////////////////////////

m_pVidCapture->QueryInterface( IID_IKsPropertySet, (void**) &m_pKsPropertySet );

// m_pVidCapture - pointer to IBaseFilter interface of analog video capture device

//////////////////////////////////////////////////////////////////////////////

HRESULT put_AnlgTunerAdvanced( LONG lId, LONG lValue )
{
    if ( !m_pKsPropertySet )
    {
   return E_POINTER;
    }

    HRESULT hr = m_pKsPropertySet->Set(
               KSPROPSETID_ANALOG_TUNER_API,       
               (DWORD)lId,
               NULL,
               0,
               &lValue,
               sizeof( lValue )
               );
    return hr;
}


Прошу помощи разработчиков.

Автор:  sorokinmv [ 24 сен 2013, 15:20 ]
Заголовок сообщения:  Re: Переключится на Радио и обратно на ТВ......

Очень надо, прошу хоть какой-то совет.....
Или может кто то даст ссылку на пример работы с радио через DirectShow... (Те что нашел на CodeProject с тюнером не подружились)

Автор:  BTVSoft [ 25 сен 2013, 16:16 ]
Заголовок сообщения:  Re: Переключится на Радио и обратно на ТВ......

sorokinmv
Через WDM вызовы все должно нормально работать.

Нужно
1) переключить тюнер в режим FM через KSPROPERTY_TUNER_STANDARD
2) переключить вход через KSPROPERTY_TUNER_INPUT (если есть DUAI на данном тюнере)
3) сменить частоту через KSPROPERTY_TUNER_FREQUENCY.

Для прямой работы с WDM вызовами через IKSPropertySet требуются две функции (или определения, если C++)
INSTANCE_DATA_OF_PROPERTY_PTR
INSTANCE_DATA_OF_PROPERTY_SIZE

Их нетрудно нагуглить. Смысл их - передача/получение дополнительной структуры.

KSPROPSETID_ANALOG_TUNER_API - это наша надстройка над WDM, для более удобной работы и использования различных функций железа. Можно использовать оба варианта, само ПО BeholdTV работает чисто через надстройки, поэтому не имеет проблем с медленным управлением и массовыми ограничениями от MS.

Страница 1 из 1 Часовой пояс: UTC + 3 часа