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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? input.c

?? Ming is a library for generating Macromedia Flash files (.swf), written in C, and includes useful ut
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*    Ming, an SWF output library    Copyright (C) 2002  Opaque Industries - http://www.opaque.net/    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Lesser General Public    License as published by the Free Software Foundation; either    version 2.1 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public    License along with this library; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//* $Id: input.c,v 1.29 2008/06/22 14:13:09 krechert Exp $ */#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <sys/stat.h>#ifndef WIN32	#include <unistd.h>#endif#include "libming.h"#include "input.h"#include "method.h"#include "error.h"struct SWFInput_s{	void (*destroy)(SWFInput This);	int (*getChar)(SWFInput This);	int (*read)(SWFInput This, unsigned char* buffer, int count);	void (*seek)(SWFInput This, long offset, int whence);	int (*eof)(SWFInput This);	int offset;	int length;	void *data;#if TRACK_ALLOCS	/* memory node for garbage collection */	mem_node *gcnode;#endif	int buffer;	int bufbits;};voidSWFInput_byteAlign(SWFInput input){	if(input->bufbits > 0)	{		input->bufbits = 0;		input->buffer = 0;	}}intSWFInput_readBits(SWFInput input, int number){	int ret = input->buffer;	if ( number == input->bufbits )	{		input->bufbits = 0;		input->buffer = 0;		return ret;	}	if ( number > input->bufbits )	{		number -= input->bufbits;		while( number > 8 )		{			ret <<= 8;			ret += SWFInput_getChar(input);			number -= 8;		}				input->buffer = SWFInput_getChar(input);				if ( number > 0 )		{			ret <<= number;			input->bufbits = 8-number;			ret += input->buffer >> (8-number);			input->buffer &= (1<<input->bufbits)-1;		}		return ret;	}	ret = input->buffer >> (input->bufbits-number);	input->bufbits -= number;	input->buffer &= (1<<input->bufbits)-1;//	printf("done: readBits(%i) numer < bufbits %i\n", number, ret);	return ret;}int SWFInput_readSBits(SWFInput input, int number){	int num = SWFInput_readBits(input, number);	if ( num & (1<<(number-1)) )		return num - (1<<number);	else		return num;}intSWFInput_getChar(SWFInput input){	return input->getChar(input);}intSWFInput_getUInt16(SWFInput input){	int num = SWFInput_getChar(input);	num += SWFInput_getChar(input) << 8;	return num;}intSWFInput_getUInt16_BE(SWFInput input){	int num = SWFInput_getChar(input) << 8;	num += SWFInput_getChar(input);	return num;}intSWFInput_getSInt16(SWFInput input){	int num = SWFInput_getChar(input);	num += SWFInput_getChar(input) * 256;	return num;}unsigned long SWFInput_getUInt24_BE(SWFInput input){	unsigned long num = SWFInput_getChar(input) << 16;	num += SWFInput_getChar(input) << 8;	num += SWFInput_getChar(input);	return num;}unsigned longSWFInput_getUInt32(SWFInput input){	unsigned long num = SWFInput_getChar(input);	num += SWFInput_getChar(input) << 8;	num += SWFInput_getChar(input) << 16;	num += SWFInput_getChar(input) << 24;	return num;}unsigned longSWFInput_getUInt32_BE(SWFInput input){	unsigned long num = SWFInput_getChar(input) << 24;	num += SWFInput_getChar(input) << 16;	num += SWFInput_getChar(input) << 8;	num += SWFInput_getChar(input);	return num;}intSWFInput_read(SWFInput input, unsigned char* buffer, int count){	return input->read(input, buffer, count);}voidSWFInput_seek(SWFInput input, long offset, int whence){	input->seek(input, offset, whence);}intSWFInput_length(SWFInput input){	int pos = SWFInput_tell(input);	SWFInput_seek(input, 0, SEEK_END);	SWFInput_seek(input, pos, SEEK_SET);	return input->length;}intSWFInput_eof(SWFInput input){	return input->eof(input);}intSWFInput_tell(SWFInput input){	return input->offset;}voidSWFInput_rewind(SWFInput input){	SWFInput_seek(input, 0, SEEK_SET);}voiddestroySWFInput(SWFInput input){	input->destroy(input);}static voidSWFInput_dtor(SWFInput input){#if TRACK_ALLOCS	ming_gc_remove_node(input->gcnode);#endif	free(input);}/* SWFInput_file */static voidSWFInput_file_seek(SWFInput input, long offset, int whence){	if ( fseek((FILE *)input->data, offset, whence) == -1 )	{		if ( errno == EBADF )			SWF_error("This is not a seekable stream- use newSWFInput_stream instead");		else if ( errno == EINVAL )			SWF_error("Invalid whence argument");		else			SWF_error("Unknown error");	}	if ( whence == SEEK_SET )		input->offset = offset;	else if ( whence == SEEK_END )		input->offset = input->length - offset;	else if ( whence == SEEK_CUR )		input->offset += offset;}static intSWFInput_file_eof(SWFInput input){	return feof((FILE *)input->data);}static intSWFInput_file_getChar(SWFInput input){	int c = fgetc((FILE *)input->data);	if ( c == EOF )		input->length = input->offset;	else		++input->offset;	return c;}static int SWFInput_file_read(SWFInput input, unsigned char *buffer, int count){	int len = fread(buffer, 1, count, (FILE *)input->data);	input->offset += len;	return len;}SWFInputnewSWFInput_file(FILE *f){	SWFInput input;	struct stat buf;	/* XXX - doesn't check for validity of f.. */	if ( fseek(f, 0, SEEK_CUR) == -1 )		return newSWFInput_stream(f);	if ( fstat(fileno(f), &buf) == -1 )		SWF_error("Couldn't fstat filehandle in newSWFInput_file");;	input = (SWFInput) malloc(sizeof(struct SWFInput_s));	/* If malloc failed, return NULL to signify this */	if (NULL == input)		return NULL;	input->getChar = SWFInput_file_getChar;	input->destroy = SWFInput_dtor;	input->eof = SWFInput_file_eof;	input->seek = SWFInput_file_seek;	input->read = SWFInput_file_read;	input->data = f;	input->bufbits = 0;	input->buffer = 0;	input->offset = 0;	input->length = buf.st_size;#if TRACK_ALLOCS	input->gcnode = ming_gc_add_node(input, (dtorfunctype) destroySWFInput);#endif	return input;}static void SWFInput_dtor_close(SWFInput input){	fclose((FILE *)input->data);	SWFInput_dtor(input);}SWFInputnewSWFInput_filename(const char *filename){	FILE *file;	SWFInput input;		file = fopen(filename, "rb");	if(file == NULL)	{		SWF_warn("newSWFInput_filename: fopen failed\n");		return NULL;	}	input = newSWFInput_file(file);	if(input == NULL)		return NULL;	input->destroy = SWFInput_dtor_close;	return input;}/* SWFInput_buffer */static intSWFInput_buffer_getChar(SWFInput input){	if ( input->offset >= input->length )		return EOF;	else		return ((unsigned char *)input->data)[input->offset++];}static intSWFInput_buffer_eof(SWFInput input){	return input->offset >= input->length;}static intSWFInput_buffer_read(SWFInput input, unsigned char* buffer, int count){	if ( count > input->length - input->offset )		count = input->length - input->offset;	memcpy(buffer, (unsigned char*)input->data + input->offset, count);	input->offset += count;	return count;}static voidSWFInput_buffer_seek(SWFInput input, long offset, int whence){	if ( whence == SEEK_CUR )	{		if ( offset >= 0 )			input->offset = min(input->length, input->offset + offset);		else			input->offset = max(0, input->offset + offset);	}	else if ( whence == SEEK_END )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久99| 懂色中文一区二区在线播放| 日韩免费观看高清完整版 | 国产精品一色哟哟哟| 久久综合九色综合97婷婷女人 | 欧美日韩亚洲综合在线 | 中文字幕一区二区三区在线不卡| 波多野结衣91| 一区二区三区在线免费视频| 精品视频色一区| 免费三级欧美电影| wwwwww.欧美系列| 成人美女视频在线看| 一区二区三区在线免费观看| 538在线一区二区精品国产| 麻豆91精品视频| 中文字幕永久在线不卡| 欧美日韩在线播| 国内成人免费视频| 中文字幕一区二区视频| 欧美日韩aaaaa| 国产精品99久久久久久似苏梦涵| 国产精品亲子乱子伦xxxx裸| 色哟哟一区二区三区| 麻豆成人综合网| 自拍偷拍亚洲欧美日韩| 欧美一区二区视频在线观看2020| 国产乱淫av一区二区三区| 欧美网站大全在线观看| 精品国产成人系列| 91一区二区三区在线播放| 亚洲成a人在线观看| 26uuu精品一区二区| 91在线看国产| 久久国产尿小便嘘嘘尿| 中文字幕欧美一| 精品人伦一区二区色婷婷| 波多野结衣精品在线| 日本成人超碰在线观看| 亚洲欧洲一区二区在线播放| 7777精品伊人久久久大香线蕉超级流畅| 麻豆国产精品777777在线| 亚洲特级片在线| 久久久亚洲综合| 欧美区视频在线观看| 成人黄色小视频在线观看| 欧美一二三四区在线| 国产精品毛片久久久久久久| 美女高潮久久久| 欧美一级片免费看| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩国产一级二级| 亚洲激情自拍视频| 91精彩视频在线观看| 亚洲一区二区黄色| 欧美电影一区二区| 美女在线观看视频一区二区| 日韩欧美一二三区| 国内不卡的二区三区中文字幕 | a级精品国产片在线观看| 久久婷婷久久一区二区三区| 久久国产精品第一页| 欧美国产一区在线| 欧美日韩一区二区三区四区| 久久久不卡影院| 亚洲成人黄色影院| 欧美军同video69gay| 久久99国产精品久久99| 中文字幕亚洲一区二区av在线| 国产精品护士白丝一区av| 9i看片成人免费高清| 亚洲二区在线视频| 日本成人超碰在线观看| 亚洲第一主播视频| 亚洲国产aⅴ天堂久久| 一区二区三区不卡视频| 亚洲免费观看高清完整版在线观看 | 欧美一区二区三区在线电影| 美腿丝袜一区二区三区| 日韩午夜激情视频| 91丨porny丨首页| 久久99热狠狠色一区二区| 精久久久久久久久久久| 色婷婷亚洲综合| 欧美羞羞免费网站| 91国产丝袜在线播放| 欧洲色大大久久| 欧美三级蜜桃2在线观看| 在线播放欧美女士性生活| 欧美一区二区三区视频免费播放| 91精品国模一区二区三区| 欧美一区二区日韩| 精品国产电影一区二区| 国产亚洲精品免费| 亚洲欧洲日产国产综合网| 亚洲欧美日韩精品久久久久| 亚洲国产综合在线| 毛片一区二区三区| 激情综合色综合久久| 国产成人精品亚洲日本在线桃色 | 亚洲中国最大av网站| 成人欧美一区二区三区小说 | 中文字幕一区视频| 亚洲高清一区二区三区| 青青草97国产精品免费观看无弹窗版| 亚洲欧美日韩国产综合在线| 丝袜亚洲另类欧美| 美女一区二区三区在线观看| 国产乱一区二区| 日本乱码高清不卡字幕| 精品日韩在线观看| 亚洲视频精选在线| 青青草一区二区三区| 北条麻妃国产九九精品视频| 欧美日韩在线播| 欧美韩国日本一区| 精品一区二区三区在线播放视频 | 久久久久久久久伊人| 亚洲精品五月天| 精品影视av免费| 欧美优质美女网站| 国产偷国产偷精品高清尤物 | 日韩视频在线你懂得| 久久久久免费观看| 亚洲国产裸拍裸体视频在线观看乱了 | 中文字幕中文在线不卡住| 亚洲在线一区二区三区| 美女看a上一区| 欧美午夜精品久久久久久孕妇| 日韩vs国产vs欧美| 中文字幕在线观看不卡视频| 蜜臀av亚洲一区中文字幕| 国产伦精品一区二区三区免费 | 成人深夜视频在线观看| 欧美日韩精品一区视频| 国产精品网曝门| 青青青爽久久午夜综合久久午夜| 波多野结衣亚洲一区| 欧美精品一区二区三区蜜桃| 亚洲精品国产高清久久伦理二区| 国产在线日韩欧美| 51精品视频一区二区三区| 亚洲品质自拍视频网站| 成人h动漫精品一区二区| 欧美大片顶级少妇| 丝袜a∨在线一区二区三区不卡| 99久久婷婷国产综合精品| 久久亚洲一级片| 看电视剧不卡顿的网站| 欧美日韩国产美女| 亚洲激情五月婷婷| av影院午夜一区| 欧美激情中文字幕| 国产精品自拍av| 久久综合久色欧美综合狠狠| 美女性感视频久久| 欧美丰满嫩嫩电影| 亚洲成av人片在www色猫咪| 91免费观看国产| 中文字幕在线观看一区| 99麻豆久久久国产精品免费| 国产精品系列在线| 国产成人av电影免费在线观看| 欧美精品一区二区三区久久久| 免费看精品久久片| 制服.丝袜.亚洲.中文.综合| 亚洲超碰精品一区二区| 在线精品视频免费观看| 一区二区在线电影| 色综合久久久久久久久久久| 亚洲欧美国产毛片在线| 91久久精品网| 亚洲成人手机在线| 成人在线视频一区| 91极品美女在线| 亚洲福利一二三区| 欧美三级电影在线看| 亚洲444eee在线观看| 在线播放中文一区| 久久69国产一区二区蜜臀| 精品国产一区二区三区久久久蜜月 | 国产成人精品综合在线观看| 国产视频不卡一区| 成人久久视频在线观看| 亚洲丝袜制服诱惑| 国产精品久久免费看| 一本色道久久综合狠狠躁的推荐 | 激情文学综合插| 亚洲精品伦理在线| 亚洲卡通动漫在线| 欧美国产国产综合| 久久婷婷久久一区二区三区| 欧美一区二区三区免费在线看 | 91蝌蚪porny| 成人性视频网站| 国产一区视频导航| 另类人妖一区二区av| 五月婷婷欧美视频| 亚洲成av人片观看| 老司机午夜精品99久久|