которая будет представлять собой апплет на рабочий стол с возможностью установки таймера (простого с выбором в 10, 15, 20, 30 минут). По истичению заданного времени будет останавливаться и, если это возможно, выгружаться проигрыватель, а сама таблетка переходить в автономный режим (отключение радиомодулей) и блокироваться.
Соль в том чтобы слушая на ночь музыку и засыпая не оставлять микрокомпьютер шпарить песни всю ночь + любители спать в кровати с таблеткой не смогут во сне своим телом поназапускать всяких приложений на разблокированной таблетке.
автономный режим - ибо я, в частности, любитель интернет-радио послушать.
Если возникнет сложность с остановкой воспроизведения музыки, то могу намекнуть на headphone daemon, который умеет останавливать воспроизведение если вытянуть провод из аудиоразъёма.
Такого апплета на OS2008 я не видел, а жаль.
прошу прощения за очепятки: идея сумбурна: проснулся и пишу её сюда с таблетки пока помню.
спать с таблеткой, экое извращение :rolleyes:
видел для N900 headphone daemon который отрубает музыку в плейерах при выдёргивании наушников. Может взять его за основу?
Могу взяться на досуге. Гляну headphone daemon
а причем он здесь? он просто ставит плеер на паузу при выдергивании разъема наушников, а человеку нужно отключение по таймеру, в телевизорах эта функция sleep называется.
в идеале - не отключение, а режим Soft Poweroff, включение которого есть в systemui.xml, если я ничего не путаю.
По идее, это должно делаться простой консольной командой, я так виндовый комп выключаю - shutdown -s -t xxx, где xxx - время в секундах. Должно же что-то аналогичное в линуксе быть.
Кстати, эту функцию можно в том же меню питания и реализовать, имхо это может быть проще, чем апплет писать. Сделать, скажем, 3 варианта той же команды Soft poweroff с разными задержками.
P.S.: Но плеер таки придется останавливать отдельно, это да, только что проверил - он в этом режиме продолжает работать.
P.P.S.: тоже сумбурно написал, но идея использовать меню питания вместо апплета мне кажется здравой.
murabel:
P.S.: Но плеер таки придется останавливать отдельно, это да, только что проверил - он в этом режиме продолжает работать.
А если делать ребут по таймеру?
Блокировать экран же еще надо
Это уже баловство. Зачем блокировать? Идея о \"запускать приложения во сне\" - буйная фантазия :D
чтобы не нажать случайно ухом :)
Не, ребут -- это перебор. В идеале:
1. плейер на паузу,
2. таблетку -- в автономный режим
3. блокировать тач и кнопки
Задача 1 реализована в headphone daemon, задачи 2 и 3 -- в меню питания. Только и нужно - собрать это в кучу.
Задача 1 реализуется просто. По крайней мере для mpd-плееров, включая родной, это просто посылка dbus-сообщения. Для Panucci тоже. Для mplayer'а надо чуть подправить mplayer.conf и создать управляющий pipe.
А вот с 2 и 3 я пока не разобрался. В systemui-то они есть, но как их выполнить программно, я пока не знаю.
Для тех, кому интересно:
1. Остановка медиаплеера:
dbus-send --print-reply --type=method_call --dest=com.nokia.osso_media_server /com/nokia/osso_media_server com.nokia.osso_media_server.pause
2. Переход в автономный режим (отключает Wifi и Bluetooth):
dbus-send --system --print-reply --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_device_mode_change string:flight
3. Блокировка экрана и кнопок:
dbus-send --system --print-reply --type=method_call --dest=com.nokia.mce /com/nokia/mce/request com.nokia.mce.request.req_tklock_mode_change string:locked
DBus рулит просто немеряно ;)
отлично, теперь осталось сделать Большую Красную Кнопку, которая будет делать всё это вместе :)
Ну дык эти три строчки в текстовый файл bigredbutton. Первую строчку этого файла делаете так:
#!/bin/sh
Потом
chmod +x bigredbutton
Остается повесить вызов этого файла на ярлык или пункт меню. Зачем городить еще один пакет?
Kroll
Вот примитивный питоновиджет.
SweetDreams.desktop положить в /usr/share/applications/hildon-home/
sweetdreams.py положить в /usr/lib/hildon-desktop/
После чего включить апплет в меню рабочего стола.
Там три кнопки: на 10, 20 и 30 минут. По истечении времени апплет блокирует девайс, включает автономный режим и останавливает родной медиаплеер.
Да, и убедись что стоят python2.5-hildondesktop и hildon-desktop-python-loader
Идея для удобства:
Мы хотим, чтобы музыка играла, пока мы не спим, а не 10/20/30 минут. Мы нажимаем кнопку изредка, и музыка останавливается через N минут (настраиваемо) с последнего нажатия.
Если заставить юзера каждые N минут тыкать в кнопку, он будет постоянно об этом помнить и точно не уснет :D
И все же я настаиваю на том, что эти команды логично было бы добавить в меню кнопки питания.
И не надо ни виджетов, ни питонов.
Опять же, чтобы ткнуть в виджет, нужно свернуть плейер/браузер/что-там-еще-открыто, а так кнопку нажал, пункт нужный выбрал, и наслаждайся дальше.
Туда не так просто добавить.
Хотя вру, туда можно добавить произвольный dbus-вызов. Но тогда придется регистрировать свой dbus-демон, который будет запускать таймер, а затем вызывать те три вызова
да, вся сложность в запуске таймера, получается....
Dali:Мы нажимаем кнопку изредка, и музыка останавливается через N минут (настраиваемо) с последнего нажатия.
Немного усовершенствую идею, чтобы минимизировать действия со стороны пользователя.
Нажимаем один раз кнопку, включается таймер. Через NN минут вылезает окошко с надписью \"через N минут система будет переведена в спящий режим\" и кнопки \"Отменить\" (останавливает таймер) и \"Отложить\" (перезапускает таймер еще на NN минут). И после минуты отображения на экране, если не была нажата ни одна из кнопок, таблетка уходит в sleep mode.
Как менее навязчивый вариант - можно уведомление сделать не всплывающим окном, а мигающей иконкой в статусбаре с выпадающим меню. Да, собственно, и запуск можно сделать оттуда же, только место жалко занимать.
Dali, а что если сделать так: По окончанию таймера таблетка сигналит легонько («продлевать будем?») и, если пользователь не реагирует, то через минуту таблетка отключается. Если же юзверь нажал хоть какую-нибудь клавишу или тапнул по экрану — продление ещё на сколько-то там минут, например 10.
Mitrandir, Вы такой быстрый О_О Сейчас попробую Ваше детище :) Спасибо!
Сразу же просьба: можно чтобы по второму тапу по кнопке с временем таймер отключался? то сть тапнул в «10» таймер запустился. тапнул ещё раз в «10» таймер скинулся на ноль. Можно будет попросить Wazda за пряник нарисовать апплетик красивый^^
Kroll:Dali, а что если сделать так: По окончанию таймера таблетка сигналит легонько («продлевать будем?»)
Если Вы про звук, то это точно разбудит дремлющего. Лучше как предложил
murabel, но это сложнее реализовать, чем мою простую идею (усложняется ГУИ).
Сигналить он может очень аккуратно и тихонько. Если объект спит или в предсонном состоянии — такой он точно не услышит. а если не спит, то точно услышит и отреагирует.
Если будет завтра время -- сделаю отмену таймера при \"отжатии\" кнопки.
Мда, что-то процедура засыпания для юзера усложняется многократно :D
Мне кажется, что звук привлечет засыпающего юзера и не даст заснуть. А молчаливый вопрос на экране (\"Продлить?\") он просто не заметит. На мой взгляд, нет ничего страшного в том, что таблетка будет играть лишних полчаса-час, и ни к чему тут придумывать хитрую логику, лучше просто заменить 10 20 и 30 минут на 30 60 и 90.
Хорошо, 30 60 90 самое оно.
Кстати, сейчас пустил таймер, ушёл кушать, вернулся — автономный режим включён, таблетка не заблокирована.
Интересно. Я в середине треда привел пост с тремя командами dbus-send. Попробуй выполнить ту из них, которая отвечает за блокировку. Заблокирует она твою таблетку?
(Кстати ты, конечно, в курсе, что если выдвинуть слайдер, то таблетка разблокируется? То есть если ты, покушав, вернулся и открыл клавиатуру, то это нормально, что она разблокировалась)
Mitrandir:(Кстати ты, конечно, в курсе, что если выдвинуть слайдер, то таблетка разблокируется? То есть если ты, покушав, вернулся и открыл клавиатуру, то это нормально, что она разблокировалась)
Да, в курсе. Но я, насколько я помню, не делал этого.
При этом когда я первый раз врубал таймер — таблетка встала на блок и я долго не мог понять что с ней случилась, зависла что ли, а потом вспомнил что время таймера истекло :)
Mitrandir:Попробуй выполнить ту из них, которая отвечает за блокировку.
Попробовал, работает хорошо.
Кстати, у меня ещё рухнул hildon или как это называется. Перезапустился с дефолтными настройками. В это время работал таймер (оставалось чуть более минуты), а я в это время в панели управления передвигал апплет лайотсвитчер немного правее. Что это было — без понятия, если повторится — напишу.
И ещё, может в поднятом репозитории собирать все наработки этого форума? И так и обозвать его, «n8xx.com applications»? Будем продвигать бренд!)
Кстати, а что это за апплет на десктопе Андрея Жилина по ссылке:
http://tabletui.wordpress.com/2008/03/01/omweather-«contour»-iconset/
Выглядит как модифицированный апплет для интернет-радио, но я прозреваю там функцию sleep в виде иконки с часиками...
Kroll
Это стандартный апплет fm-radio, а по иконке с часами - не слип-таймер, а , наоборот, будильник - включение радио в заданное время.
murabel, а, это УКВ) в n810 такого просто нету, я и не знал :)
Kroll
Ну тогда не знаю почему не сработало. Значит надо тестить дальше.
Kroll:Кстати, у меня ещё рухнул hildon или как это называется
Он у меня падает регулярно даже без экспериментов с левыми апплетами :)
Kroll:И ещё, может в поднятом репозитории собирать все наработки этого форума? И так и обозвать его, «n8xx.com applications»? Будем продвигать бренд!)
Я только за. Если будут желающие, я могу выложить в этом репозитории любые пакеты, и изменить его название на N8xx.
Или же, если будет на то воля
dik'а, давайте поднимем репозиторий прямо на n8xx.com. Во-первых, это более удобный способ находить пакеты, чем хаотично разбросанные по форуму deb'ы. Во-вторых, это более гораздо удобный способ выкладывать обновления для них. Я готов заняться поднятием и маинтэйном репозитория.
репозиторий давно есть - не проверял - работает ли сейчас...
http://n8xx.com/debs/
http://n8xx.com/debs/gnome-mplayer.install
я давно говорил что любые пакеты могу выкладывать
+ давал права на
http://deb.n8xx.com/ svs57
в общим репозиторий не проблема при желании кого то заниматься этим. Имхо лучше уж продвигать свои пакеты в maemo вский репо, или как минимум на гараж.
Если считаете что местный репозиторий всё таки нужен - давайте обсудим в теме \"О форуме\"
В принципе для добавления пакета - нужно его залить в определённую директорию и дать одну команду. (Ну, создать install файл до кучи) Я мог бы это делать если бы мне присылали пакеты.
Mitrandir:Он у меня падает регулярно
Падал частенько пока в баре висели ststusbar clock и ещё что-то на рабочем столе. До вчерашнего дня не рушился месяца два :)
dik, так можно и маемо (гараже), и в n8xx.com. Так как у нашего сообщества есть и софт, и модификации, и просто собирание пакетов под maemo с обычных linux (к примеру abiword от svs57). В общем, я в этом не разбираюсь, так что если кто сможет это делать — будет хорошо :)
Мне, честное слово, некогда вести репозиторий.
Могу выкладывать пакеты. Ну и зависимости к ним.
Если кто согласится вести сам репозиторий.
На гараже есть svn и файл-релизы, а репозиторий - разве что только extras. Но у меня, если честно, всё руки не доходят разобраться как по науке собирать source-пакеты и привести в порядок свои пакеты :)
Вообщем я пока тоже не уверен, что нужен репозиторий. Дело в том, что пока немного пакетов в нем будут регулярно обновляться. А смысл репозитория именно в обновлениях.
Но если будут аргументы в пользу репозитория - я готов заняться его поддержкой, добавлением пакетов, мониторингом веток форума на предмет новых пакетов, которые стоит добавить в репозиторий. Кстати, я смотрю, там сейчас скрипт обновления репозитория делает dpkg-scanpackages, а это не самый лучший способ.
Ммм... Еще бы знать как его остановить.
Можно, конечно, просто killall youamp :)
Но если вы найдете как его остановить, я с легкостью добавлю в апплет :)
Mitrandir:Ммм... Еще бы знать как его остановить.
Можно, конечно, просто killall youamp :)
Но если вы найдете как его остановить, я с легкостью добавлю в апплет :)
http://www.rojtberg.net/workspace/youamp/maemo/
...
RPC API
if you want to control the player with the console, you can use the following D-Bus calls:
net.rojtberg.youamp.toggle
net.rojtberg.youamp.prev
net.rojtberg.youamp.next
Спасибо. Попробую на досуге.
Что-то у меня никак не получается прикрутить youamp:
[~/MyDocs/SweetDreams/trunk] dbus-send --print-reply --type=method_call --dest=net.rojtberg.youamp /net/rojtberg/youamp net.rojtberg.youamp.toggle
Error net.rojtberg.youamp.error.toggle: There are some exceptions in callback.
Что я делаю неправильно?
dbus-send --type=method_call --dest=net.rojtberg.youamp /net/rojtberg/youamp net.rojtberg.youamp.toggle
Именно так и пишу. Не работает-с...
Выложил в репозиторий. Как только научусь останавливать youamp, будет обновление.
[img=OneClickInstall]http://skriblovsky.net/maemo/install.png[/img]
Mitrandir:Именно так и пишу. Не работает-с...
работает и очень давно
с тех пор как я попросил автора сделать внешний интерфейс к его плейеру
пользуюсь постоянно :)
Сравните еще раз внимательно.
Я прям вашу строчку скопировал в консоль и получил тот же самый вывод, что и в моем вопросе. Попробовать перезагрузиться что ли, я ведь его только что поставил