AutoPlay

AutoPlay

Postby Andrew » 30 Dec 2010, 08:56

Использую плеер как веб радио бОльшую часть времени, поэтому написал модуль, запускающий интернет радио автоматически при включении (выходе из стэндбая).
Модуль посылает команды ДУ через Ipod RC. Команды берутся из конфиг файла, файл можно редактировать из веб-интерфейса. Решение, конечно, далекое от идеала, но работает. Может кому пригодится.
Установка: в usr/local/etc/mos создаем директорию autoplay. Туда складываем autoplaysh, control и playradio.
Даем права чмод +x usr/local/etc/mos/autoplay/autoplaysh --> чмод = chmod, иначе не постит движок...
В /usr/local/etc/mos/scripts складываем autoplay.
Даем права чмод +x usr/local/etc/mos/scripts/autoplay
После этого в веб-интерфейсе появится AutoPlay. Оттуда его можно запустить или остановить как любой модуль. Там же можно отредактировать набор команд под свои нужды.
Команды вводятся по одной на строку и выполняются в порядке "сверху вниз". Комментарии (#) игнорируются. Если в строке обнаруживается целое число, оно интерпретируется как "пауза" (задержка) в милисекундах. Т.е. 500 = 0.5 сек. Если в строке обнаруживаются буквы, они интерпретируются как команда ду.
В приведенном ниже виде скрипт работает только на прошивке HD2 1.12.06 Rev3. На более ранних HD2 нужно поменять URL в autoplaysh с "http://127.0.0.1/cgi-bin/IpodCGI.cgi?id=0&command=" на "http://127.0.0.1/www/cgi-bin/IpodCGI.cgi?id=0&command=".
Конечно, стартовый скрипт можно объединить с основным, но данная структура хорошо подходит под дальнейшее развитие идеи (прицепить основной скрипт на кнопку пульта).
Oсновной скрипт autoplaysh:
Code: Select all
#!/bin/sh
#
# description: executes remote commands via ipod RC interface.
#
##Global variables
AUTO_CONF=$1 #configuration file containing commands in format: <command> <delay>

#Check for a Config file
if [ -f "$AUTO_CONF" ]; then

##Read the Config file, ignoring lines with "#" as comments
sed '/^ *#/d;s/#.*//' "$AUTO_CONF" | while read LINE

do

DELAY=$LINE
COMMAND=$LINE

#strip non-numeric charachters from DELAY string
lft=${DELAY%%[0-9]*}
rght=${DELAY##*[0-9]}
temp=${DELAY#"$lft"}
DELAY=${temp%"$rght"}
#echo $DELAY

#strip non-alphabetic charachters from COMMAND string
lft=${COMMAND%%[a-z]*}
rght=${COMMAND##*[a-z]}
temp=${COMMAND#"$lft"}
COMMAND=${temp%"$rght"}
#echo $COMMAND

if [ "$DELAY" -gt 0 ]; then  #Check if argument is a number
DELAY=$((${DELAY}*1000))   #convert delay to uS
usleep $DELAY #execute delay
fi

if [ "$COMMAND" ]; then  #Check if argument is not an empty string
#send remote command
RC_CMD='wget ''http://127.0.0.1/cgi-bin/IpodCGI.cgi?id=0&command='${COMMAND}' -q -O /dev/null'
echo $RC_CMD
$RC_CMD
fi

done
else
echo "No Valid Configuration File Found"
exit 1
fi


Скрипт autoplay (запускает autoplaysh):
Code: Select all
#!/bin/sh
#
# description: starts AutoPlay
#
case "$1" in
  start)
   echo "Starting Auto Play..."
   /usr/local/etc/mos/autoplay/autoplaysh /usr/local/etc/mos/autoplay/playradio
   ;;
stop | restart | status | enable | disable)
   ;;
  *)
   echo "Usage: $0 {start|stop|restart|status|enable|disable}"
esac

exit $?


файл control:
Code: Select all
Rev  = 0.1
Name = Auto Play Radio
Edit   = AutoPlay
Config = /usr/local/etc/mos/autoplay/playradio


файл конфигурации playradio:
Code: Select all
#expected line format: <delay> or <command>, one or the other, one per line
#<delay> = integer, milliseconds
#<command> : right, left, up, down, select, return, home etc.
#terminate last line with line feed
10000
right
500
right
500
right
1000
select
1000
select
1000
select
Last edited by Andrew on 30 Dec 2010, 12:40, edited 5 times in total.
ASUS O!Play R1 (amp_r5 скин HD2_11206_r6 blue)
Andrew
 
Posts: 29
Joined: 30 Dec 2010, 07:57

Re: AutoPlay

Postby Virtual » 30 Dec 2010, 10:55

код в архив полож :).... система безопасности хостера похож панику подымает от линуксовых комманд :).
марсы: HDS7 (смотрелка AMP скин vrt )
HDR12 AMP (обычно сервер с RAM 256 и 2 SATA диска 2T+)//но очень иногда оцифровка видео
XTR PRO(AMP, HTTP(S) NFS SMB FTP сервер +trans2.90 + 2 SATA диска 2T+
сатурны: XTR Prodigy, R6S(512Mb_NAND), HD900A(_MD*) прошивка
User avatar
Virtual
 
Posts: 6862
Joined: 01 Oct 2010, 17:17
Location: RU

Re: AutoPlay

Postby Andrew » 30 Dec 2010, 12:21

ага, разобрался, спасибо. Не любит chmod... :)
ASUS O!Play R1 (amp_r5 скин HD2_11206_r6 blue)
Andrew
 
Posts: 29
Joined: 30 Dec 2010, 07:57

Re: AutoPlay

Postby RusBiT » 11 Jan 2011, 20:00

У меня возникло большое желание поставить R1 в авто.
Реально же сделать при включении медиаплеера воспроизведение музыки с остановившегося места?
ASUS O!Play R1 (amp_r10 UPD 13/04/25 HD2 blues)
RusBiT
 
Posts: 17
Joined: 11 Jan 2011, 12:39

Re: AutoPlay

Postby Andrew » 14 Jan 2011, 03:20

Для авто есть спец примочки в прикуриватель. У меня такая уже много лет трудится. А заставить асус воспроизводить с того места, где вырубило питание, задача по-моему нетривиальная. Надо пробовать.
Скрипт позволяет автоматизировать практически любую функцию.
Кстати, в моей машине питание на прикуриватель и прочие аксессуары подается при включении зажигания, но отключается на время работы стартера. Т.е. питание дергает при запуске двигателя, что может подвесить слишком нежный девайс.
ASUS O!Play R1 (amp_r5 скин HD2_11206_r6 blue)
Andrew
 
Posts: 29
Joined: 30 Dec 2010, 07:57

Re: AutoPlay

Postby i84z » 30 Oct 2011, 16:41

Добрый день, уважаемый Andrew.
Странно, что больше никто не задумывался над идеей запуска интернет-радио при включении плеера.
Не могли бы Вы выложить подробный алгоритм - очень уж этот вопрос интересует, поскольку пока включешь телевизор и выбирешь станцию - и слушать не захочется.
Спасибо.
ASUS HDP-R1, прошивка amp_r5_hd2 (синий скин), бут 26
i84z
 
Posts: 1
Joined: 30 Oct 2011, 16:06

Re: AutoPlay

Postby FarVoice » 30 Oct 2011, 17:15

i84z wrote:Добрый день, уважаемый Andrew.
Странно, что больше никто не задумывался над идеей запуска интернет-радио при включении плеера.
Не могли бы Вы выложить подробный алгоритм - очень уж этот вопрос интересует, поскольку пока включешь телевизор и выбирешь станцию - и слушать не захочется.
Спасибо.

C интернет радио вообще без проблем - ставите патч из этого топика, в playlist.m3u прописываете ссылки на на стримы и всё:)
Единственное, если не хочется использовать флешку для хранения плейлиста, надо будет поправить стартовый скрипт, чтобы он искал плейлист не на подключенных девайсах, а там, где вы его положили, например,в /usr/local/etc

Хотя стоп! Я имел ввиду свой патч AutoPlay из ветки viewtopic.php?f=16&t=870
ASUS O!Play R1 (amp_r12_vrtn), xTreamer Pro (amp_r12_vrt), xTreamer Prodigy (iNeXT 2.14 r2), IconBIT HDR12L (amp_r12_vrt), 3Q F425HW (xds42gl_7725_r3), MyGica A11 (mygica_m3_20121222)
User avatar
FarVoice
Администратор
 
Posts: 8572
Joined: 03 Sep 2010, 01:27
Location: Russia, Moscow

Re: AutoPlay

Postby Andrew » 10 Nov 2011, 00:20

i84z wrote:Не могли бы Вы выложить подробный алгоритм

Дык, куда уж подробнее? Вроде, все описано в первом посте.
Хотя я сейчас этот способ не использую. Вместо этого повесил скрипт на кнопку play.
Скрипт запускает первую станцию из фэйворитс при нажатии кнопки play на главном меню.
В остальных режимах кнопка play работает как раньше. Все это, как и модуль, основано на подсчете нажатий кнопок, т.е. требует заточки под конкретный интерфейс/плеер.
Вот скрипт: viewtopic.php?f=8&t=69&p=4158#p4158
ASUS O!Play R1 (amp_r5 скин HD2_11206_r6 blue)
Andrew
 
Posts: 29
Joined: 30 Dec 2010, 07:57

Re: AutoPlay

Postby RusBiT » 03 May 2013, 17:33

не работает автоматический запуск. подскажите куда прописывать путь для запуска?
ASUS O!Play R1 (amp_r10 UPD 13/04/25 HD2 blues)
RusBiT
 
Posts: 17
Joined: 11 Jan 2011, 12:39

Re: AutoPlay

Postby Pokrass » 03 May 2013, 19:49

Для начала, viewtopic.php?f=30&t=1036
Ну и забейте в поиске autoplay - найдете ответ.
IconBIT HDS7L Fw: AMP_r12 GUI: VRT
iNeXT HD1 W Fw: X3D_Series_V4.0.2b160406
User avatar
Pokrass
 
Posts: 3154
Joined: 18 Mar 2012, 04:18
Location: Плюк. Планета № 215 в Тентуре галактики "Кин-дза-дза" в Спирали.


Return to Разработка

Who is online

Users browsing this forum: No registered users and 5 guests

cron