亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? usrusbtool.c

?? sl811hs_vxworks_host_driver_v1_0_13 sl811的主驅(qū)動(dòng)
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):

	    txBfrCount = fread (txBfr, sizeof (char), sizeof (txBfr), txFile);
	    txBfrIndex = 0;
	    }

	if (txCharCount == 0 || txBfrCount == 0)
	    {
	    closeTxFile ();
	    txCharCount = 0;
	    }

	if (txBfrCount == 0)
	    return ERROR;

	*txChar = txBfr [txBfrIndex++];
	--txBfrCount;
	}

    return OK;
    }


/*************************************************************************
*
* prnAttachCallback - receives attach callbacks from printer SIO driver
*
* RETURNS: N/A
*/

LOCAL SIO_CHAN *pPrnSioChan;

LOCAL VOID prnAttachCallback
    (
    pVOID arg,			    /* caller-defined argument */
    SIO_CHAN *pChan,		    /* pointer to affected SIO_CHAN */
    UINT16 attachCode		    /* defined as USB_KBD_xxxx */
    )

    {
    FILE *fout = (FILE *) arg;

    fprintf (fout, "pChan = %p, attach code = %s\n", pChan,
	(attachCode == USB_PRN_ATTACH) ? "USB_PRN_ATTACH" : "USB_PRN_REMOVE");

    if (attachCode == USB_PRN_ATTACH)
	{
	if (pPrnSioChan == NULL)
	    {
	    if (usbPrinterSioChanLock (pChan) != OK)
		fprintf (fout, "usbPrinterSioChanLock() returned ERROR\n");
	    else
		{
		pPrnSioChan = pChan;

		if ((*pPrnSioChan->pDrvFuncs->callbackInstall) (pPrnSioChan, 
		    SIO_CALLBACK_GET_TX_CHAR, prnTxCallback, NULL) != OK)
		    {
		    fprintf (fout, "callbackInstall() returned ERROR.\n");
		    }
		}
	    }
	else
	    {
	    fprintf (fout, "Another channel already in use, ignored.\n");
	    }
	}
    else
	{
	if (pChan == pPrnSioChan)
	    {
	    if (usbPrinterSioChanUnlock (pChan) != OK)
		fprintf (fout, "usbPrinterSioChanUnlock() returned ERROR\n");

	    pPrnSioChan = NULL;
	    }
	}
    }


/*************************************************************************
*
* cmdPrnInit - initializes USB printer SIO driver
*
* RETURNS: RET_CONTINUE
*/

LOCAL BOOL prnInitialized = FALSE;

LOCAL UINT16 cmdPrnInit
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    if (prnInitialized)
	{
	fprintf (fout, "USB printer SIO driver already initialized.\n");
	return RET_CONTINUE;
	}

    if (usbPrinterDevInit () == OK)
	{
	fprintf (fout, "usbPrinterDevInit() returned OK\n");
	prnInitialized = TRUE;

	/* Register for attach notification */

	if (usbPrinterDynamicAttachRegister (prnAttachCallback, (pVOID) fout) != OK)
	    {
	    fprintf (fout, "usbPrinterDynamicAttachRegister() returned ERROR\n");
	    return RET_CONTINUE;
	    }
	}
    else
	fprintf (fout, "usbPrinterDevInit() returned ERROR\n");

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdPrnDown - shuts down USB printer SIO driver
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdPrnDown
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    if (!prnInitialized)
	{
	fprintf (fout, "USB printer SIO driver not initialized.\n");
	return RET_CONTINUE;
	}

    prnInitialized = FALSE;
    pPrnSioChan = NULL;

    /* unregister */

    if (usbPrinterDynamicAttachUnRegister (prnAttachCallback, (pVOID) fout) != OK)
	fprintf (fout, "usbPrinterDynamicAttachUnRegister() returned ERROR\n");

    if (usbPrinterDevShutdown () == OK)
	fprintf (fout, "usbPrinterDevShutdown() returned OK\n");
    else
	fprintf (fout, "usbPrinterDevShutdown() returned ERROR\n");

    return RET_CONTINUE;
    }


/*************************************************************************
*
* waitForPrinter - waits for a printer to be connected
*
* RETURNS: OK if printer connected, else ERROR
*/

LOCAL STATUS waitForPrinter 
    (
    FILE *fout
    )

    {
    THREAD_HANDLE thread;
    UINT8 bfr [USB_PRN_MAX_DEVICE_ID_LEN];
    pUSB_PRINTER_CAPABILITIES pCaps = (pUSB_PRINTER_CAPABILITIES) bfr;
    UINT16 idLen;
    UINT8 protocol;
    UINT16 i;


    /* Create thread to watch for keypress */

    enterPressed = FALSE;

    if (OSS_THREAD_CREATE (enterThread, (pVOID) fout, OSS_PRIORITY_INHERIT, "tEnter",
	&thread) != OK)
	{
	fprintf (fout, "Error creating thread.\n");
	return ERROR;
	}


    /* Wait for a printer to be attached. */

    if (pPrnSioChan == NULL)
	{
	fprintf (fout, "Waiting for printer to be attached...\n");
	while (!enterPressed && pPrnSioChan == NULL)
	    OSS_THREAD_SLEEP (1);
	}


    /* kill keypress thread */

    OSS_THREAD_DESTROY (thread);

    if (enterPressed)
	return ERROR;


    /* Display the printer characteristics. */

    if ((*pPrnSioChan->pDrvFuncs->ioctl) (pPrnSioChan, SIO_USB_PRN_DEVICE_ID_GET, 
	(void *) &bfr) != OK)
	fprintf (fout, "ioctl (SIO_USB_PRN_DEVICE_ID_GET) returned ERROR.\n");
    else
	{
	idLen = FROM_BIGW (pCaps->length);
	fprintf (fout, "Device ID length = %d\n", idLen);
	fprintf (fout, "Device ID = ");
	for (i = 0; i < idLen - 2; i++)
	    fprintf (fout, "%c", pCaps->caps [i]);
	fprintf (fout, "\n");
	}

    if ((*pPrnSioChan->pDrvFuncs->ioctl) (pPrnSioChan, SIO_USB_PRN_PROTOCOL_GET,
	(void *) &protocol) != OK)
	fprintf (fout, "ioctl (SIO_USB_PRN_PROTOCOL_GET) returned ERROR.\n");
    else
	{
	fprintf (fout, "protocol = 0x%x ", protocol);
	switch (protocol)
	    {
	    case USB_PROTOCOL_PRINTER_UNIDIR:
		fprintf (fout, "(USB_PROTOCOL_PRINTER_UNIDIR)\n");
		break;

	    case USB_PROTOCOL_PRINTER_BIDIR:
		fprintf (fout, "(USB_PROTOCOL_PRINTER_BIDIR)\n");
		break;

	    default:
		fprintf (fout, "(unknown)\n");
		break;
	    }
	}

    return OK;
    }


/*************************************************************************
*
* cmdPrint - performs printer test
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdPrint
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    long blocks;


    /* Get parameters */

    *ppCmd = GetHexToken (*ppCmd, &blocks, 1);


    /* Wait for a printer to be connected */

    if (waitForPrinter (fout) == OK)
	{
	/* trigger a transmission. */

	patternTest = TRUE;
	nextCharVal = 0;
	txCharCount = blocks * 4096;

	fprintf (fout, "sending %d 4k blocks to printer...\n", (UINT16) blocks);

	if ((*pPrnSioChan->pDrvFuncs->txStartup) (pPrnSioChan) != OK)
	    fprintf (fout, "txStartup() returned ERROR.\n");
	}

    return RET_CONTINUE;
    }


/*************************************************************************
*
* cmdPrintFnm - sends file to printer
*
* RETURNS: RET_CONTINUE
*/

LOCAL UINT16 cmdPrintFnm
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    char fnm [MAX_CMD_LEN];
    FILE *f;
    long fsize;


    /* Get filename parameter */

    *ppCmd = GetNextToken (*ppCmd, fnm, sizeof (fnm));


    /* Terminate any current dump test */

    closeTxFile ();


    /* Attempt to open file */

    if ((f = fopen (fnm, "rb")) == NULL)
	{
	fprintf (fout, "Unable to open '%s'.\n", fnm);
	return RET_CONTINUE;
	}


    /* Determine file size */

    fseek (f, 0, SEEK_END);
    fsize = ftell (f);

    fprintf (fout, "file '%s' is %ld bytes.\n", fnm, fsize);

    fseek (f, 0, SEEK_SET);


    /* Wait for printer */

    if (waitForPrinter (fout) == OK)
	{
	/* Initiate transmission */

	patternTest = FALSE;
	txFile = f;
	txBfrCount = 0;
	txCharCount = fsize;

	fprintf (fout, "sending %ld bytes to printer...\n", fsize);

	if ((*pPrnSioChan->pDrvFuncs->txStartup) (pPrnSioChan) != OK)
	    {
	    fprintf (fout, "txStartup() returned ERROR.\n");
	    closeTxFile ();
	    }

	/* NOTE: If this path is successful, the file will be closed by
	 * the prnTxCallback().
	 */

	}
    else
	{

	/* Close input file */

	fclose (f);
	}
    
    return RET_CONTINUE;
    }
#endif	/*INCLUDE_USB_PRINTER*/


#ifdef INCLUDE_USB_SPEAKER
/*************************************************************************
*
* spkrAttachCallback - receives attach callbacks from speaker SEQ_DEV driver
*
* RETURNS: N/A
*/

LOCAL SEQ_DEV *pSpkrSeqDev = NULL;

LOCAL VOID spkrAttachCallback
    (
    pVOID arg,			    /* caller-defined argument */
    SEQ_DEV *pSeqDev,		    /* pointer to affected SEQ_DEV */
    UINT16 attachCode		    /* defined as USB_KBD_xxxx */
    )

    {
    FILE *fout = (FILE *) arg;

    fprintf (fout, "pSeqDev = %p, attach code = %s\n", pSeqDev,
	(attachCode == USB_SPKR_ATTACH) ? "USB_SPKR_ATTACH" : "USB_SPKR_REMOVE");

    if (attachCode == USB_SPKR_ATTACH)
	{
	if (pSpkrSeqDev == NULL)
	    {
	    if (usbSpeakerSeqDevLock (pSeqDev) != OK)
		fprintf (fout, "usbSpeakerSeqDevLock() returned ERROR\n");
	    else
		{
		pSpkrSeqDev = pSeqDev;
		}
	    }
	else
	    {
	    fprintf (fout, "Another channel already in use, ignored.\n");
	    }
	}
    else
	{
	if (pSeqDev == pSpkrSeqDev)
	    {
	    if (usbSpeakerSeqDevUnlock (pSeqDev) != OK)
		fprintf (fout, "usbSpeakerSeqDevUnlock() returned ERROR\n");

	    pSpkrSeqDev = NULL;
	    }
	}
    }


/***************************************************************************
*
* audioThread - Dumps audio data to usbSpeakerLib
*
* By convention, <param> is the file handle for the file to be played and 
* the global "wavDataLength" should be the length of the data chunk.  The
* file position should be set to the beginning of the data in the data chunk.
*
* This thread closes the file after reading all data.
*
* RETURNS: N/A
*/

LOCAL BOOL audioThreadBusy = FALSE;
LOCAL UINT32 wavDataLen;

LOCAL VOID audioThread
    (
    pVOID param
    )

    {
    FILE *wavFile = (FILE *) param;
    pUINT8 pBfr;
    UINT32 remDataLen = wavDataLen;
    UINT32 actLen;


    /* Create a buffer for audio data */

    if ((pBfr = OSS_MALLOC (AUDIO_BFR_SIZE)) == NULL)
	{
	printf ("Out of memory creating audio buffer.\n");
	}
    else
	{
	/* open the audio stream. */

	if ((*pSpkrSeqDev->sd_ioctl) (pSpkrSeqDev, 
	    USB_SPKR_IOCTL_OPEN_AUDIO_STREAM, 0) != OK)
	    {
	    printf ("IOCTL OPEN_AUDIO_STREAM returned ERROR.\n");
	    }
	else
	    {
	    /* Read audio data and pass it to usbSpeakerLib. */

	    while (remDataLen > 0 &&
		(actLen = fread (pBfr, 1, min (remDataLen, AUDIO_BFR_SIZE), 
		    wavFile)) > 0)
		{
		if ((*pSpkrSeqDev->sd_seqWrt) (pSpkrSeqDev, actLen,
		    pBfr, FALSE) != OK)
		    {
		    printf ("sd_seqWrt() returned ERROR.\n");
		    break;
		    }
		else
		    {
		    remDataLen -= actLen;
		    }
		}

	    /* Mark the end of the audio stream. */

	    if ((*pSpkrSeqDev->sd_ioctl) (pSpkrSeqDev, 
		USB_SPKR_IOCTL_CLOSE_AUDIO_STREAM, 0) != OK)
		{
		printf ("IOCTL CLOSE_AUDIO_STREAM returned ERROR.\n");
		}
	    }

	OSS_FREE (pBfr);
	}


    /* Close the input file. */

    fclose (wavFile);

    audioThreadBusy = FALSE;
    }


/*************************************************************************
*
* cmdSpkrInit - initializes USB speaker SEQ_DEV driver
*
* RETURNS: RET_CONTINUE
*/

LOCAL BOOL spkrInitialized = FALSE;

LOCAL UINT16 cmdSpkrInit
    (
    pVOID Param,		/* Generic parameter passed down */
    char **ppCmd,		/* Ptr to remainder of cmd line */
    FILE *fin,			/* stream for input (if any) */
    FILE *fout			/* stream for output (if any) */
    )

    {
    if (spkrInitialized)
	{
	fprintf (fout, "USB speaker SEQ_DEV driver already initialized.\n");
	return RET_CONTINUE;
	}

    if (usbSpeakerDevInit () == OK)
	{
	fprintf (fout, "usbSpeakerDevInit() returned OK\n");
	spkrInitialized = TRUE;

	/* Register for attach notification */

	if (usbSpeakerDynamicAttachRegister (spkrAttachCallback, (pVOID) fout) != OK)
	    {
	    fprintf (fout, "usbSpeakerDynamicAttachRegister() returned ERROR\n");
	    return RET_CONTINUE;
	    }
	}
    el

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线电影一区二区三区| 亚洲日本电影在线| 久久午夜羞羞影院免费观看| 亚洲精品一区二区三区香蕉| 精品不卡在线视频| 亚洲欧洲av色图| 亚洲sss视频在线视频| 麻豆精品一二三| 国产91精品精华液一区二区三区| 成人手机在线视频| 欧美三区在线视频| 精品成人私密视频| 一区二区三区中文字幕电影| 蜜臀久久久99精品久久久久久| 韩国av一区二区| 欧美私人免费视频| 久久综合久久综合亚洲| 一区在线中文字幕| 国内精品国产成人| 在线精品国精品国产尤物884a| 精品国产91久久久久久久妲己| 综合婷婷亚洲小说| 国产综合久久久久久鬼色| 91成人在线观看喷潮| 日本一区二区三区dvd视频在线| 亚洲一区二区三区四区五区中文| 国产制服丝袜一区| 欧美日本一道本在线视频| 亚洲欧美在线aaa| 国产福利电影一区二区三区| 欧美午夜在线观看| 亚洲免费观看视频| 成人一区二区三区视频在线观看 | 中文字幕制服丝袜一区二区三区 | 午夜精品福利一区二区蜜股av| 国产一区二区三区免费| 欧美高清激情brazzers| 一级女性全黄久久生活片免费| 成人黄色在线网站| 久久―日本道色综合久久| 日韩二区在线观看| 精品视频全国免费看| 亚洲一区二区三区中文字幕在线| 成人av综合一区| 国产精品三级久久久久三级| 国产盗摄精品一区二区三区在线| 日韩精品一区二区三区蜜臀 | 成人av资源下载| 国产精品久久久久久久蜜臀| 国产+成+人+亚洲欧洲自线| 久久久天堂av| 成人综合婷婷国产精品久久蜜臀| 欧美精彩视频一区二区三区| 成人精品小蝌蚪| 亚洲卡通欧美制服中文| av动漫一区二区| 亚洲午夜日本在线观看| 91精品免费观看| 国产一区二区三区四区五区入口| 2014亚洲片线观看视频免费| 国产999精品久久久久久| 国产欧美中文在线| 91福利在线观看| 看国产成人h片视频| 国产女同互慰高潮91漫画| 在线观看www91| 国产米奇在线777精品观看| 中文字幕一区二区三区四区不卡 | 欧美午夜精品久久久久久孕妇 | 成人av中文字幕| 视频一区国产视频| 国产嫩草影院久久久久| 色国产精品一区在线观看| 日韩av网站免费在线| 亚洲欧洲精品成人久久奇米网| 欧美精品v国产精品v日韩精品| 国产精品自拍三区| 午夜精品国产更新| 亚洲图片欧美激情| 精品国产一区二区国模嫣然| 日本大香伊一区二区三区| 国产精品 日产精品 欧美精品| 日韩成人dvd| 亚洲欧美一区二区三区久本道91 | 狠狠色丁香久久婷婷综合丁香| 99视频有精品| 国产成人综合在线| 免费高清在线视频一区·| 亚洲欧美视频一区| 中文幕一区二区三区久久蜜桃| 日韩亚洲欧美成人一区| 欧美精选在线播放| 在线免费观看日本欧美| eeuss鲁一区二区三区| 国产一区二区0| 国产精品一区二区黑丝| 久久成人久久鬼色| 精品亚洲免费视频| 国产一区亚洲一区| 美女久久久精品| 免费人成网站在线观看欧美高清| 亚洲a一区二区| 男男gaygay亚洲| 天使萌一区二区三区免费观看| 五月天视频一区| 青椒成人免费视频| 国产在线一区二区| 成人性色生活片免费看爆迷你毛片| 国产成人免费视频| 91视视频在线直接观看在线看网页在线看 | 国产精品一二三区| 不卡在线视频中文字幕| 972aa.com艺术欧美| 91福利在线导航| 久久综合五月天婷婷伊人| 国产日韩欧美精品一区| 亚洲欧美偷拍另类a∨色屁股| 亚洲国产一区二区三区 | 日韩精品免费视频人成| 久久国产人妖系列| av在线不卡电影| 91精品国产综合久久福利软件 | 国产精品91一区二区| 99精品国产一区二区三区不卡| 欧美日韩激情一区二区| 国产三级欧美三级日产三级99 | 精品一区二区三区久久久| 豆国产96在线|亚洲| 欧美日韩视频不卡| 国产欧美一区二区精品性色| 日韩精品亚洲一区二区三区免费| 成人性生交大片免费看视频在线| 555www色欧美视频| 亚洲婷婷综合色高清在线| 精品一区二区三区蜜桃| 欧美日韩国产成人在线免费| 国产精品国产三级国产普通话99 | 丝瓜av网站精品一区二区| 成人视屏免费看| 欧美精品一区二区三区蜜桃| 亚洲成人你懂的| 色婷婷综合久久久久中文| 国产欧美一区二区精品久导航| 日韩电影在线一区| 欧美三级在线看| 一区二区三区四区视频精品免费 | 欧美—级在线免费片| 国内国产精品久久| 精品国产一区二区在线观看| 日本色综合中文字幕| 欧美日韩成人高清| 香蕉久久夜色精品国产使用方法| 91视频com| 亚洲一区二区三区中文字幕在线| 色婷婷综合久色| 亚洲成在线观看| 欧美美女bb生活片| 日本不卡高清视频| 精品999久久久| 国产高清不卡一区| 国产精品国产三级国产aⅴ原创| av在线播放不卡| 亚洲香肠在线观看| 欧美一区二区三区免费大片| 九色综合国产一区二区三区| 久久久国产精华| av不卡在线播放| 亚洲国产一区二区三区青草影视| 欧美老肥妇做.爰bbww视频| 青青草国产精品97视觉盛宴| 欧美精品一区二区久久婷婷| 成人中文字幕电影| 午夜欧美一区二区三区在线播放| 欧美一级在线免费| 国产sm精品调教视频网站| 夜夜精品浪潮av一区二区三区| 5月丁香婷婷综合| 成人免费视频播放| 亚洲成人tv网| 国产日本亚洲高清| 日本高清成人免费播放| 激情久久五月天| 亚洲宅男天堂在线观看无病毒| 精品久久久久久久久久久久久久久久久 | 亚洲视频免费在线观看| 4438亚洲最大| 99国内精品久久| 国产在线播放一区三区四| 亚洲丰满少妇videoshd| 久久伊人蜜桃av一区二区| 欧美午夜精品电影| av不卡一区二区三区| 国产精品一区二区三区四区| 日韩国产成人精品| 亚洲人成伊人成综合网小说| 久久噜噜亚洲综合| 亚洲精品一区二区三区在线观看 | 卡一卡二国产精品| 婷婷国产在线综合| 亚洲一区二区三区美女|