KSEVENT_TUNER_INITIATE_SCAN
O evento KSEVENT_TUNER_INITIATE_SCAN solicita que o driver inicie uma operação de verificação e notifique um cliente no modo de usuário quando o dispositivo de ajuste associado do driver concluir a operação de verificação.
Tabela de Resumo de Uso
Obter | Definir | Destino | Tipo de descritor de evento | Tipo de valor de evento |
---|---|---|---|---|
No | Sim | Pin | KSEVENT_TUNER_INITIATE_SCAN_S | KSEVENTDATA |
Comentários
Cada solicitação de verificação deve não ser bloqueada. Ou seja, o driver não deve aguardar a conclusão da operação de verificação antes de retornar o controle. Na verdade, o driver deve usar um thread separado para executar a operação de verificação.
Embora o evento KSEVENT_TUNER_INITIATE_SCAN seja independente de KSPROPERTY_TUNER_FREQUENCY, KSEVENT_TUNER_INITIATE_SCAN corresponde ao sinalizador de ajuste KS_TUNER_TUNING_EXACT no membro TuningFlags da estrutura KSPROPERTY_TUNER_FREQUENCY_S . Isso significa que a verificação sempre tenta determinar a frequência exata do próximo canal. Além disso, a estratégia de ajuste que o dispositivo de ajuste segue é controlada pelo driver (KS_TUNER_STRATEGY_DRIVER_TUNES do membro Estratégia da estrutura KSPROPERTY_TUNER_MODE_CAPS_S ). Esses sinalizadores fixos e a estratégia são sempre seguidos mesmo que um sinalizador e uma estratégia diferentes sejam usados para controlar KSPROPERTY_TUNER_FREQUENCY.
Em outras palavras, os valores KSTUNER_TUNING_FLAGS e KSTUNER_STRATEGY não afetam o comportamento de KSEVENT_TUNER_INITIATE_SCAN.
Conclusão e status
A KSPROPERTY_TUNER_SCAN_STATUS de status de verificação fornece informações sobre a frequência atual e a status do bloqueio de sinal. O aplicativo consulta o bloqueio status da propriedade KSPROPERTY_TUNER_SCAN_STATUS. O aplicativo também consulta KSPROPERTY_TUNER_STANDARD_MODE propriedade para obter informações sobre a detecção padrão de sinal automático. Se nenhum sinal tiver sido encontrado no intervalo solicitado, a propriedade KSPROPERTY_TUNER_SCAN_STATUS retornará o valor Tuner_LockType_None no membro LockStatus da estrutura KSPROPERTY_TUNER_SCAN_STATUS_S . Se o dispositivo de ajuste puder detectar automaticamente o padrão de sintonizador do sinal e um sinal em um padrão alternativo for encontrado, o próprio dispositivo de ajuste poderá processar quaisquer solicitações para a propriedade KSPROPERTY_TUNER_STANDARD . O dispositivo de ajuste possivelmente não pode prosseguir além de um bloqueio PLL (phased-lock-loop) e pode especificar que o padrão não é conhecido. Ou, o dispositivo de ajuste pode se ajustar automaticamente a um padrão de sinal diferente. Além disso, o dispositivo de ajuste pode até mesmo obter um bloqueio completo nesse padrão de sinal e determinar o padrão alternativo. Essas situações podem surgir quando há vários padrões de sinal no espectro de frequência.
Condições de limite
Se o driver descobrir que a frequência central de um canal está fora do intervalo que um aplicativo fornece, o driver deverá ignorar esse sinal e passar para o próximo sinal; o driver não deve retornar a melhor aproximação possível dentro do intervalo fornecido. O driver deve passar para o próximo sinal para evitar a contagem duplicada de canais quando um aplicativo tenta compilar uma lista de canais.
Pelo mesmo motivo, o aplicativo deve deslocar o intervalo de consulta pela metade da largura de banda de canal esperada (cerca de 6/2 = 3MHz para TV analógica e digital) para garantir que os canais não sejam contados duas vezes especialmente quando o hardware encontrar um sinal de que o hardware não pode decodificar. Nessa situação, o driver tem dificuldade em evitar a contagem dupla de determinados canais.
Especificação multi-padrão
A operação de verificação deve ser concluída sempre que um novo canal ou sinal for encontrado. Em seguida, o driver retorna status de verificação por meio da propriedade KSPROPERTY_TUNER_SCAN_STATUS. A verificação deve ser concluída sempre que um novo canal for encontrado mesmo que o driver determine que o canal recém-encontrado não corresponde ao padrão aplicado anteriormente. O aplicativo deve processar as informações do novo canal e deve reenviar uma solicitação de verificação para encontrar outro canal com o mesmo padrão de sinal.