📄 mpd.c
字号:
#ifdef MPD#include "httppil.h"#include "httpapi.h"#include "procpil.h"int mpState=0;SHELL_PARAM mpx;int mpRead(char* buf, int bufsize){ int bytes=0;#ifdef WIN32 ReadFile((HANDLE)mpx.fdRead,buf,bufsize-1,&bytes,NULL);#else bytes=read(mpx.fdRead,buf,bufsize-1);#endif *(buf+bytes)=0; return bytes;}int mpCommand(char* cmd){ int ret,bytes=0; char* p=malloc(strlen(cmd)+2); ret=sprintf(p,"%s\n",cmd);#ifdef WIN32 WriteFile((HANDLE)mpx.fdWrite,p,ret,&bytes,NULL);#else ret=write(mpx.fdWrite,p,ret);#endif free(p); return ret;}int mpOpen(char* pchFilename){ char cmd[256]; if (mpState) { mpCommand("quit"); //write(mpx.fdWrite,"quit\n",5); ShellWait(&mpx,1); ShellClean(&mpx); } memset(&mpx,0,sizeof(mpx));#ifdef WIN32 sprintf(cmd,"d:\\mplayer\\mplayer.exe -slave -quiet %s",pchFilename);#else sprintf(cmd,"/cygdrive/c/mplayer/mplayer -slave -quiet %s",pchFilename);#endif mpx.pchCommandLine=cmd; if (ShellExec(&mpx)) return -1; msleep(1000); mpState=1; return 0;}int uhMpd(UrlHandlerParam* param){ char *cmd=param->pucRequest; if (!strncmp(cmd,"open=",5)) { if (mpOpen(cmd+5) || !(mpRead(param->pucBuffer,param->iDataBytes))) { strcpy(param->pucBuffer,"Failed to launch MPlayer"); } } else if (!strncmp(cmd,"command=",8)) { strcpy(param->pucBuffer,(mpCommand(cmd+8)>0)?"OK":"Error"); } else { return 0; } param->iDataBytes=strlen(param->pucBuffer); param->fileType=HTTPFILETYPE_TEXT; return FLAG_DATA_RAW;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -