osdteletext.c

来自「MiniWinOuterSM MiniWinOuterSM」· C语言 代码 · 共 46 行

C
46
字号
#include"osdteletext.h"
#include"PrDmx.h"
#include"osdwindows.h"
#include"PrTuner.h"
#define WM_RECVTXTPAGE WM_USER+200
static unsigned int TxtFiltCBK(PRMpgFilt filt, void *userData,BYTE*section,UINT length)
{
	SendMessage((HWND)userData,WM_RECVTXTPAGE,(WPARAM)section,length);
	return 0;
}
static LRESULT WINAPI TeletextProc(HWND hwnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	switch(msgID){
	case WM_KEYDOWN:
		if(wParam==VK_ESCAPE)
			PostQuitMessage(hwnd);
		else
			DefDlgProc(hwnd,msgID,wParam,lParam);
		break;
	case WM_RECVTXTPAGE:
		TTXPes(wParam,lParam);
		break;
	default:return DefDlgProc(hwnd,msgID,wParam,lParam);
	}
	return 0;
}
void StartTeletext(void)
{
	MSG msg;
	PRTunerParams tuner;
	HWND hwnd=CreateMainWindow("Teletext",WS_VISIBLE|WS_OVERLAPPEDWINDOW,150,50,450,450,TeletextProc);
	PRMpgFilt filt=FilterCreate(0,MPGFILT_PES);
	tuner.frequency=395000;
	tuner.u.qam.modulation=3;
	tuner.u.qam.symbol_rate=6875;
	PrTunerSet(0,&tuner);
	FilterSetPID(filt,0x69);
	FilterSetNotify(filt,TxtFiltCBK,hwnd);
	FilterStart(filt);
	while(GetMessage(&msg,hwnd,0,0)){
		DispatchMessage(&msg);
	}
	SendMessage(hwnd,WM_DESTROY,0,0);
	FilterDestroy(filt);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?