[Top Page][All Pages][Recent Changes]

Edit History:Diff

Changes of MS TVチューナー since Epoch

  • + added lines
  • - deleted lines

Return to the edit history

- MS TVチューナー
- 
- [[$$toc]]
- - →[[HSP3・サンプルスクリプト]]に戻る
- 
- ----
- これもやはり、XP専用です。~%
- HSP3.0aで動作確認~%
- TVチューナーボードが必要です。~%
- 
- * スクリプト
- 
- {{{
- ; <<<< HSP 3.0a サンプル >>>>
- ;
- ;  MS TVチューナー
- ;
- 
- #define IID_ITuningSpaceContainer "{5B692E84-E2F1-11D2-9493-00C04F72D980}"
- #define CLSID_SystemTuningSpaces  "{D02AAC50-027E-11D3-9D8E-00C04F72D980}"
- 
- #uselib "oleaut32.dll"
- #func SysFreeString "SysFreeString" int
- #cfunc SysStringLen "SysStringLen" int
- 
- #usecom  ITuningSpaceContainer "{5B692E84-E2F1-11D2-9493-00C04F72D980}"\
- "{D02AAC50-027E-11D3-9D8E-00C04F72D980}"
- #comfunc ITuningSpaceContainer_get_Count 7 var
- #comfunc ITuningSpaceContainer_get_EnumTuningSpaces 16 var
- 
- #usecom  IAnalogTVTuningSpace "{2A6E293C-2595-11D3-B64C-00C04F79498E}"
- #comfunc IAnalogTVTuningSpace_CreateTuneRequest 16 var
- #comfunc IAnalogTVTuningSpace_put_CountryCode   33 int
- #comfunc IAnalogTVTuningSpace_put_MinChannel    27 int
- #comfunc IAnalogTVTuningSpace_put_MaxChannel    29 int
- #comfunc IAnalogTVTuningSpace_get_InputType     30 var
- 
- #usecom  IChannelTuneRequest "{0369B4E0-45B6-11D3-B650-00C04F79498E}"
- #comfunc IChannelTuneRequest_put_Channel 13 int
- 
- #usecom  ITuningSpace "{061C6E30-E622-11D2-9493-00C04F72D980}"\
- "{5FFDC5E6-B83A-4b55-B6E8-C69E765FE9DB}"
- #comfunc ITuningSpace_get_UniqueName 7 var
- #comfunc ITuningSpace_Clone          25 var
- 
- #usecom  IMSVidCtl "{B0EDF162-910A-11D2-B632-00C04F79498E}"
- #comfunc IMSVidCtl_get_BackColor  9 var
- #comfunc IMSVidCtl_put_BackColor 10 int
- #comfunc IMSVidCtl_Refresh       16
- #comfunc IMSVidCtl_View          41 int
- #comfunc IMSVidCtl_Run           44
- #comfunc IMSVidCtl_Pause         43
- #comfunc IMSVidCtl_Stop          45
- 
- #usecom IEnumTuningSpaces  "{8B8EB248-FC2B-11D2-9D8C-00C04F72D980}"
- #comfunc EnumTuningSpaces_Next 3 int,var,var
- 
- 	
- ;チャンネルの設定です。
- ;地域によって違うと思われます。
- 	dim ch,6,2
- 	ch(0,0)=31:ch(1,0)=35:ch(2,0)=37
- 	ch(3,0)=39:ch(4,0)=41:ch(5,0)=43
- 
- 	ch(0,1)=5:ch(1,1)=4:ch(2,1)=6
- 	ch(3,1)=8:ch(4,1)=10:ch(5,1)=12
- 
- 	flg=3
- 	
- 	onexit gosub *exit
- 
- 	screen 0,720,500,2
- 	objsize 50,20
- 	pos   0, 0 : button gosub "▲", *go1
- 	pos  50, 0 : button gosub "▼", *go2
- 
- 	pos 0,20:axobj Viewer,"MSVidCtl.MSVidCtl.1",720,480:axid=stat
- 
- 	newcom pTuningSpCont,ITuningSpaceContainer
- 
- 	ITuningSpaceContainer_get_Count pTuningSpCont,lCount
- 	;lCount=pTuningSpaceContainer("Count")
- 
- 	newcom pEnumTSpaces
- 	ITuningSpaceContainer_get_EnumTuningSpaces pTuningSpCont,pEnumTSpaces
- 	pTuningSpCont=0
- 
- 	dim pTSpaceArray,lCount
- 	EnumTuningSpaces_Next pEnumTSpaces,lCount,pTSpaceArray,tmp
- 	pEnumTSpaces=0
- 
- 	repeat lCount
- 	newcom pTuningSpace,,-1,pTSpaceArray.cnt
- 	ITuningSpace_get_UniqueName pTuningSpace,bstr 
- 		dupptr r,bstr,SysStringLen( bstr)
- 		if (cnvwtos(r)="Antenna"){ 
- 			newcom ppTuningSpac
- 			ITuningSpace_Clone pTuningSpace,ppTuningSpac
- 			delcom pTuningSpace
- 			SysFreeString bstr
- 			break
- 		}
- 	delcom pTuningSpace
- 	SysFreeString bstr
- 	loop
- 
- 	querycom pNTSCTuningSpace,ppTuningSpac,IAnalogTVTuningSpace
- 	ppTuningSpac=0
- 
- 	IAnalogTVTuningSpace_put_CountryCode pNTSCTuningSpace ,81
- 	IAnalogTVTuningSpace_put_MinChannel  pNTSCTuningSpace ,1
- 	IAnalogTVTuningSpace_put_MaxChannel  pNTSCTuningSpace ,62
- 
- 	newcom pTuneRequest
- 	IAnalogTVTuningSpace_CreateTuneRequest pNTSCTuningSpace,pTuneRequest
- 	pNTSCTuningSpace=0
- 
- 	querycom pAnalogTVTuneRequest,pTuneRequest,IChannelTuneRequest
- 	pTuneRequest=0
- 
- 	IChannelTuneRequest_put_Channel pAnalogTVTuneRequest,ch.flg
- 
- 	dimtype var, vartype("variant"), 1
- 	var("value")=pAnalogTVTuneRequest
- 
- 	Viewer("MaintainAspectRatio")=1 
- 	Viewer("AutoSize")=1 
- 	Viewer("BackColor")=12|(12<<8)|(12<<16)
- 	Viewer("ColorKey") = 12|(12<<8)|(12<<16)
- 	
- 	IMSVidCtl_View Viewer,varptr(var)
- 	IMSVidCtl_Run  Viewer
- 	redraw 1 : gsel 0,1
- 
- 	IMSVidCtl_Refresh Viewer
- 	title "TV  -CH "+ch.flg.1
- stop
- 
- *go1
- 	flg++
- 	if (flg>5){flg=0}
- 	title "TV  -CH "+ch.flg.1
- 	IChannelTuneRequest_put_Channel pAnalogTVTuneRequest,ch.flg
- 	;var("value")=pAnalogTVTuneRequest
- 	IMSVidCtl_View Viewer,varptr(var)
- return
- 
- *go2
- 	flg--
- 	if (flg<0){flg=5}
- 	title "TV  -CH "+ch.flg.1
- 	IChannelTuneRequest_put_Channel pAnalogTVTuneRequest,ch.flg
- 	;var("value")=pAnalogTVTuneRequest
- 	IMSVidCtl_View Viewer,varptr(var)
- return
- 
- *exit
- 	IMSVidCtl_Stop  Viewer
- 	delcom pAnalogTVTuneRequest:pAnalogTVTuneRequest=0
- 	delcom Viewer:Viewer=0
- 	clrobj axid
- end
- }}}
- 
- * 解説
- ほとんどのTVボードで動作するはずです。(私自身は2のボードで実験しました。)
- 
- このサンプルではアンテナでの受信環境ですが~%
- ケーブルテレビを使っている方は~%
- {{{
- if (cnvwtos(r)="Antenna") -> if (cnvwtos(r)="Cable") 
- }}}
- のようにします。~%
- その他、個々の環境しだいで以下のものが受信できます。~%
- {{{
- Cable        //ケーブル
- Antenna      //アンテナ
- ATSCnna
- Digital Cable
- AuxIn1l Cable
- FM RadioCable
- DVB-TdioCable
- }}}
- * memo
- 2006/02/06 12:20:14 JST~%
- 修正 dim ch,6,1-->dim ch,6,2
- 
- 2006/04/08 13:23:51 JST~%
- 変更~%
- onexit *exit -> onexit gosub *exit