а спасибо за это нужно скать разработчикам Samsung i907 (Epix), точнее тем, кто сделал звуковой драйвер. Что про них думают юзеры можно прочитать:
Wireless Forums from AT&T : Phone & Device Support : Samsung : [Epix] New mail notification doesn't work in standby
там куча возмущения, что "безнес смартфон" уходя в стенбай настолько хорошо экономит энергию, что не считает нужным включать звук когда приходят важные емейлы (ну и как побочный результат независимый софт тоже не проигрывает звуки, когда девайс заснул)
Предыдущие разы наш сапорт на американской стороне отмазался так - "ставьте фикс самсунга". Теперь вылезло что это фикс не очень прямо работает, аутлук на новое мыло может бикние, а вот остальной софт все еще имеет проблемы.
У нас они вылезли в простом и рабочем практически всюду и давно коде:
SetPowerRequirement((PVOID)TEXT("WAV1:"), D1, POWER_NAME | POWER_FORCE, NULL, 0);
PlaySound(.....)
первая строчка - хочу проиграть звук, девайс включи саундбластер,
вторая играет вавку.
Вот только если на всех остальных поддерживаемых девайсах это работает,то на Epix нет. А проверка с помощью GetDevicePower сразу после SetPowerRequirement утверждает что девайс включеный.
Помогает универсальный программистский паттерн Sleep(1000), вот только его успели забакланить еще до того,как баг попал ко мне :), завтра буду объяснять, что по другому не получиться :)
Подписаться на:
Комментарии к сообщению (Atom)
2 комментария:
Помогает универсальный программистский паттерн Sleep(1000).
нема нічого гіршого оперувати такими патернами ... а в дійсності АНТИПАТЕРНАМИ.
не каждый вызов слипа становится антипатерном автоматом. Слип-антипатерн, это когда он используеться для "синхронизации" в мультипоточной среде.
основное проблема(в реальном коде немного сложней, там есть дополнительные проверки которые убирают тормоза видимые юзеру) в Sleep(1000) - константа 1000 (500 не хватает), но потом может оказаться что и ее не хватает :)
Отправить комментарий