Desabilita o auto sleep e monitora o desligamento do código C ++

0

Eu desenvolvo uma aplicação [baseada em C ++ com base em Q ++] que reproduz vídeo usando libVLC. Quando assisto vídeos por um longo período, meu monitor é desligado de acordo com as configurações de gerenciamento de energia. Eu quero desabilitar o desligamento automático enquanto o vídeo está sendo reproduzido, como é no Totem, VLC media player e outros players de mídia do Ubuntu. Mas eu não consigo encontrar como fazer isso a partir do código C ++ usando bibliotecas do Ubuntu.

Por exemplo, no Windows eu posso fazer isso usando:

SetThreadExecutionState( ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED | ES_CONTINUOUS );

Tudo que encontrei sobre o Linux / Ubuntu é como corrigir alguns arquivos de configuração. Eu não posso fazer isso do código:

  1. O usuário que executa o aplicativo com obediência pode não ter direitos para editar as configurações
  2. As configurações de energia precisam ser restauradas de qualquer forma quando o vídeo é interrompido, mas se meu aplicativo falhar de repente, isso não acontecerá
  3. Diferentes versões do Ubuntu podem ter diferentes arquivos de configuração e entradas

Então, minhas perguntas:

  • há algumas funções de biblioteca do Ubuntu (ou Qt e libVLC) que suprimem o desligamento do monitor e a suspensão do sistema?
  • como os populares players de vídeo do Ubuntu implementam esse comportamento?
por serg.v.gusev 04.03.2015 / 11:48

1 resposta

0

Eu recomendo que você dê uma olhada no código do xset, uma ferramenta que faz parte do X.org, ou qualquer outro programa que já possa fazer essas coisas que você quer fazer (você pode desativar a tela desligando com xset -dpms + xset s off ).

No caso do xset, você encontrará o código fonte aqui , ou quando esse link estiver desatualizado:

http://www.x.org/releases/current/
-> Source Tar Files for X11RX.Y
-> app/
-> xset-x.y.z.tar.{bz2,gz}
    
por jPlatte 05.03.2015 / 03:40