More ... | 編集履歴:差分記録開始以来のMS TVチューナーの変更箇所
- 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 |