Первое и самое интересное - почему подсветка вообще дергается при смене трека? Потомучто есть такая штука, как power constraints, которая регулирует, насколько далеко устройству можно уходить в сберегающих режимах. Вполне естественно, что телефон не может играть музыку, когда он находится в слипе.
Исходя из этого здравого рассуждения, медиасервер запрещает уходить в слип, когда проигрывает что-то. Когда проигрываение останавливается, плеер снимает разрешение.
И тут закрадываются внеземная логика работников тролльтех: при смене power constraint, нужно включить подсветку. При чем это делает кто-то аж изнутри QtGui, а код там загадочен.
Делаю ход конем: режим меняется не тогда, когда меняется состояние плеера "играю-неиграю", а через две секунды. Проверяю: не работает. То есть работает, но подсветка все равно мигает на смене трека. Для проверки, убираю из медиасервера управление питанием - моргает. Магия... Стоп, магии же не бывает.
Смотрю код медиадвижка, благо багов там обычно есть: он питание вообще не трогает. Смотрю код плеера и вижу чудеса: плеер запрещает выключать подсветку, когда проигрывает видео. Это меня не касается - видео я не смотрю. Для проверки, убираю из плеера код управление питанием - не моргает. Оппа, "связистор опять выловил что-то за хвост из болота", как сказал тридемоделятор azcapone.
Судя по коду, в плеере есть некий "медиавиджет", который создается при наличии видео. Если виджет есть - питание трогаем, если нету - не трогаем. Но виджета же нету, почему тогда мограет? Нахожу замечательный факт:
notifier = new QMediaControlNotifier( QMediaVideoControl::name(), this );
connect( notifier, SIGNAL(valid()), this, SLOT(activateVideo()) );
connect( notifier, SIGNAL(invalid()), this, SLOT(deactivateVideo()) );
при чем в deactivateVideo() дергается управление питанием без проверки виджета.
Опять патч в одну строку, а началось все с того, что я хотел замерить, сколько телефон живет от одного заряда батареи.
Я, так понимаю, ноги у 2.6.* ядра для минга, растут примерно тоже оттуда? Типа, автор захотел sdhc пощЩюпать?
ОтветитьУдалить>ноги у 2.6.* ядра для минга, растут примерно тоже оттуда? Типа, автор захотел sdhc пощЩюпать?
ОтветитьУдалитьнет