リファクタリング(3)リモコンスクリプトのリファクタリング第2段階

HS-DHGL KURO-RS

ハック de 録 !!スクリプト本体を修正し、旧 I/F では呼ばれなくなったので、 第2段階のリファクタリングへと進む。

構想

放送波(BS アナログ、BS デジタル、地上デジタル)毎、
チューナの機種毎にリモコンシーケンスが書けるようにする。

リモコンデータ置き場

チューナ名は変数として使えば楽かな?(意味不明)
現在、学習した各ボタンのデータは /usr/local/lib/kuro-rs/DST-BX500 においているが、 変数に - (マイナス)は使えないので _ (アンダースコア)に変更し /usr/local/lib/kuro-rs/DST_BX500 とする。
sil:/usr/local/lib/kuro-rs# mv DST-BX500 DST_BX500
sil:/usr/local/lib/kuro-rs#

リモコンスクリプト

#!/bin/sh

DATADIR=/usr/local/lib/kuro-rs
SEND=/usr/local/bin/rs_send

#----------------------------------------------------------------------
# Sony DST-BX500 
DST_BX500 () {
case $CH in
BSD1)	# NHK 1 (BS1)
	SEQ="BUTTON_1 BUTTON_POWER BUTTON_1 BUTTON_1"
	;;
BSD2)	# NHK 2 (BS2)
	SEQ="BUTTON_2 BUTTON_POWER BUTTON_2 BUTTON_2"
	;;
BSD3)	# NHKハイビジョン
	SEQ="BUTTON_3 BUTTON_POWER BUTTON_3 BUTTON_3"
	;;
BSD4)	# BS日テレ
	SEQ="BUTTON_4 BUTTON_POWER BUTTON_4 BUTTON_4"
	;;
BSD5)	# BS朝日
	SEQ="BUTTON_5 BUTTON_POWER BUTTON_5 BUTTON_5"
	;;
BSD6)	# BS- i
	SEQ="BUTTON_6 BUTTON_POWER BUTTON_6 BUTTON_6"
	;;
BSD7)	# BSジャパン
	SEQ="BUTTON_7 BUTTON_POWER BUTTON_7 BUTTON_7"
	;;
BSD8)	# BSフジ
	SEQ="BUTTON_8 BUTTON_POWER BUTTON_8 BUTTON_8"
	;;
BSD9)	# WOWOW
	SEQ="BUTTON_9 BUTTON_POWER BUTTON_9 BUTTON_9"
	;;
BSD10)	# Star channel
	SEQ="BUTTON_10 BUTTON_POWER BUTTON_10 BUTTON_10"
	;;
BSDOFF)	# OFF
	SEQ="BUTTON_POWER"
	;;
*)
	exit
	;;
esac
}

#----------------------------------------------------------------------
#	# BS Analog Tuner
#	XXX_YYY () {
#	case $CH in
#	BSA5)	# WOWOW
#		SEQ="BUTTON_BS5 BUTTON_POWER BUTTON_BS5 BUTTON_BS5"
#		;;
#	BSA7)	# NHK 1 (BS1)
#		SEQ="BUTTON_BS7 BUTTON_POWER BUTTON_BS7 BUTTON_BS7"
#		;;
#	BSA9)	# NHK 2 (BS2)
#		SEQ="BUTTON_BS9 BUTTON_POWER BUTTON_BS9 BUTTON_BS9"
#		;;
#	BSA11)	# NHKハイビジョン
#		SEQ="BUTTON_BS11 BUTTON_POWER BUTTON_BS11 BUTTON_BS11"
#		;;
#	BSAOFF)	# OFF
#		SEQ="BUTTON_POWER"
#		;;
#	*)
#		exit
#		;;
#	esac
#	}

#----------------------------------------------------------------------

CH=$1
case $CH in
BSD*)	# BS Digital
	MACHINE=DST_BX500
	PORT=1

	$MACHINE
	;;

#	BSA*)	# BS Analog
#		MACHINE=XXX_YYY
#		PORT=2
#	
#		$MACHINE
#	    ;;

#	GWD*)	# Grand Wave Digital
#		MACHINE=XXX_YYY
#		PORT=3
#	
#		$MACHINE
#	    ;;

*)
    exit
    ;;
esac

set $SEQ

while [ $# != 0 ]
do
	FILE=$DATADIR/$MACHINE/$1
	if [ ! -f $FILE ]
	then
		echo $FILE not found
		exit
	fi

	$SEND $FILE $PORT > /dev/null 2>&1

	shift
	if [ $# != 0 ]
	then
		sleep 5
	fi
done

$MACHINE を
・関数コール
・リモコンデータ置き場のパス
として利用しているところがミソかな。




HS-DH320GL
楽天市場
Yahoo!ショッピング
somap.com
TSUKUMO ネットショップ
ValuMore!
ムラウチドットコム
アット・ニフティストア icon
Joshin web icon
KURO-RS
楽天市場
Amazon
Yahoo!ショッピング
TSUKUMO
クレバリー


HS-DGLシリーズ ファームウェア アップデータ Ver.1.63β
ハックの記録
LinkStation/玄箱 をハックしよう

「延長対応 ハック de ダブルまる録!! 外部チューナコントロール付き」完成

Copyright (C) 2003-2007 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市