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

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

?? foo_asap.cpp

?? TCPMP 0.72rc2已經添加FLV的支持
?? CPP
字號:
/* * foo_asap.cpp - ASAP plugin for foobar2000 * * Copyright (C) 2006  Piotr Fusik * * This file is part of ASAP (Another Slight Atari Player), * see http://asap.sourceforge.net * * ASAP is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 2 of the License, * or (at your option) any later version. * * ASAP 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with ASAP; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */#include "config.h"#define FREQUENCY          44100#define BITS_PER_SAMPLE    16#define QUALITY            1#define BUFFERED_BLOCKS    576#define SUPPORT_SUBSONGS   1#include "foobar2000/SDK/componentversion.h"#include "foobar2000/SDK/input.h"#if SUPPORT_SUBSONGS#include "foobar2000/SDK/playlist_loader.h"#endif#include "asap.h"#define EXT(c1, c2, c3) ((c1 + (c2 << 8) + (c3 << 16)) | 0x202020)static bool is_our_file(const char *filename){	const char *p;	int ext;	for (p = filename; *p != '\0'; p++);	ext = 0;	for (;;) {		if (--p <= filename || *p < ' ')			return false; /* no filename extension or invalid character */		if (*p == '.')			break;		ext = (ext << 8) + (*p & 0xff);	}	switch (ext | 0x202020) {	case EXT('C', 'M', 'C'):	case EXT('C', 'M', 'R'):	case EXT('D', 'M', 'C'):	case EXT('M', 'P', 'D'):	case EXT('M', 'P', 'T'):	case EXT('R', 'M', 'T'):	case EXT('S', 'A', 'P'):	case EXT('T', 'M', 'C'):#ifdef STEREO_SOUND	case EXT('T', 'M', '8'):#endif	case EXT('T', 'M', '2'):		return true;	default:		return false;	}}static unsigned int channels;static unsigned int buffered_bytes;static int open_asap(const char *filename, reader *r){	::buffered_bytes = 0;	static bool initialized = false;	if (!initialized) {		::ASAP_Initialize(FREQUENCY,			BITS_PER_SAMPLE == 8 ? AUDIO_FORMAT_U8 : AUDIO_FORMAT_S16_NE,			QUALITY);		initialized = true;	}	static unsigned char module[65000];	unsigned int module_len;#if SUPPORT_SUBSONGS	if (r == NULL) {		r = file::g_open_read(filename);		if (r == NULL)			return 0;		module_len = r->read(module, sizeof(module));		r->reader_release();	}	else#endif		module_len = r->read(module, sizeof(module));	return ::ASAP_Load(filename, module, module_len);}static#if BITS_PER_SAMPLE == 8	unsigned char#else	short int#endif	buffer[BUFFERED_BLOCKS * 2];class input_asap : public input{public:	bool test_filename(const char *full_path, const char *extension) { return ::is_our_file(full_path); }	set_info_t set_info(reader *r, const file_info *info) { return SET_INFO_FAILURE; }	bool open(reader *r, file_info *info, unsigned flags);	bool can_seek() { return false; }	bool seek(double seconds) { return false; }	int run(audio_chunk *chunk);};bool input_asap::open(reader *r, file_info *info, unsigned flags){	if (!::open_asap(info->get_file_path(), r))		return false;	if ((flags & OPEN_FLAG_DECODE) == 0)		return true;	::ASAP_PlaySong(#if SUPPORT_SUBSONGS		info->get_subsong_index()#else		::ASAP_GetDefSong()#endif	);	::channels = ::ASAP_GetChannels();	::buffered_bytes = BUFFERED_BLOCKS * ::channels * (BITS_PER_SAMPLE / 8);	return true;}int input_asap::run(audio_chunk *chunk){	if (::buffered_bytes == 0)		return 0;	::ASAP_Generate(::buffer, ::buffered_bytes);	chunk->set_data_fixedpoint(::buffer, ::buffered_bytes, FREQUENCY, ::channels, BITS_PER_SAMPLE);	return 1;}static service_factory_single_t<input,input_asap> foo;DECLARE_COMPONENT_VERSION("ASAP", ASAP_VERSION, ASAP_CREDITS "\n" ASAP_COPYRIGHT);static const char * const names_and_masks[][2] = {	{ "Slight Atari Player (*.sap)", "*.SAP" },	{ "Chaos Music Composer (*.cmc;*.cmr;*.dmc)", "*.CMC;*.CMR;*.DMC" },	{ "Music ProTracker (*.mpt;*.mpd)", "*.MPT;*.MPD" },	{ "Raster Music Tracker (*.rmt)", "*.RMT" },#ifdef STEREO_SOUND	{ "Theta Music Composer 1.x (*.tmc;*.tm8)", "*.TMC;*.TM8" },#else	{ "Theta Music Composer 1.x (*.tmc)", "*.TMC" },#endif	{ "Theta Music Composer 2.x (*.tm2)", "*.TM2" }};#define N_FILE_TYPES (sizeof(names_and_masks) / sizeof(names_and_masks[0]))class input_file_type_asap : public service_impl_single_t<input_file_type>{public:	virtual unsigned get_count() { return N_FILE_TYPES; }	virtual bool get_name(unsigned idx, string_base &out)	{		if (idx < N_FILE_TYPES) { out = ::names_and_masks[idx][0]; return true; }		return false;	}	virtual bool get_mask(unsigned idx, string_base &out)	{		if (idx < N_FILE_TYPES) { out = ::names_and_masks[idx][1]; return true; }		return false;	}};static service_factory_single_t<input_file_type,input_file_type_asap> foo2;#if SUPPORT_SUBSONGSclass indexer_asap : public track_indexer{public:	virtual int get_tracks(const char *filename, callback *out, reader *r)	{		if (!::is_our_file(filename))			return 0;		if (::open_asap(filename, r) == 0)			return 0;		unsigned int d = ::ASAP_GetDefSong();		out->on_entry(make_playable_location(filename, (int) d));		unsigned int n = ::ASAP_GetSongs();		unsigned int i;		for (i = 0; i < n; i++)			if (i != d)				out->on_entry(make_playable_location(filename, (int) i));		return 1;	}};static service_factory_single_t<track_indexer,indexer_asap> foo3;#endif /* SUPPORT_SUBSONGS */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆中文一区二区| 久久9热精品视频| 久久综合九色综合97_久久久| www.日韩在线| 免费一级欧美片在线观看| 国产精品国产三级国产有无不卡 | 久久久国产精品不卡| 欧美性色欧美a在线播放| 国产aⅴ精品一区二区三区色成熟| 亚洲国产va精品久久久不卡综合| 国产三级一区二区| 精品国产一区二区在线观看| 欧美性受xxxx黑人xyx性爽| 国产成人在线视频网站| 成人av网站大全| 奇米四色…亚洲| 亚洲一区二区三区中文字幕在线 | 丝袜美腿亚洲综合| 一区二区在线观看免费| 亚洲国产精品av| 久久青草国产手机看片福利盒子| 欧美日韩国产精选| 91福利国产成人精品照片| 成人国产电影网| 国产成人午夜电影网| 精品一区二区三区av| 美女国产一区二区三区| 天堂资源在线中文精品| 一区二区三区高清| 亚洲精品欧美在线| 亚洲人成精品久久久久| 日韩码欧中文字| 亚洲私人黄色宅男| 亚洲欧美偷拍另类a∨色屁股| 国产精品色呦呦| 国产精品私人自拍| 欧美国产日本视频| 国产午夜精品美女毛片视频| 久久这里只有精品6| 久久综合色8888| 久久久久久电影| 久久精品免视看| 亚洲国产精品成人综合色在线婷婷 | 国产69精品久久99不卡| 国产丶欧美丶日本不卡视频| 国产在线麻豆精品观看| 国产精品亚洲人在线观看| 国产在线视频一区二区| 国产成人精品免费| 成人app在线观看| 色综合亚洲欧洲| 欧美性大战久久久久久久蜜臀| 欧美探花视频资源| 88在线观看91蜜桃国自产| 91精品国产福利| 久久久久高清精品| 中文字幕亚洲一区二区va在线| 国产精品拍天天在线| 亚洲欧美日韩国产成人精品影院 | 日本vs亚洲vs韩国一区三区二区| 日产国产欧美视频一区精品| 另类小说图片综合网| 69堂成人精品免费视频| 欧美精品777| 久久综合久久综合久久综合| 国产精品美女久久久久久久网站| 国产精品二三区| 午夜精品久久一牛影视| 老色鬼精品视频在线观看播放| 国产精品一二三区在线| 日本乱人伦一区| 欧美一二三四区在线| 国产欧美一区视频| 亚洲在线视频网站| 精品一区中文字幕| 成人动漫在线一区| 4438成人网| 亚洲国产精品二十页| 午夜精品久久一牛影视| 国产精品一区二区91| 欧美日韩一区精品| 国产日韩欧美综合一区| 亚洲激情自拍偷拍| 韩国v欧美v亚洲v日本v| 在线精品视频小说1| 精品国产乱码久久久久久蜜臀| 亚洲美女屁股眼交| 国产一级精品在线| 欧美美女黄视频| 国产精品情趣视频| 免费视频最近日韩| 91美女在线视频| 久久精品夜夜夜夜久久| 天天综合网天天综合色| www.欧美.com| 精品国产露脸精彩对白| 亚洲一区免费视频| av一区二区三区在线| 日韩视频一区二区三区| 一区二区三区精品在线| 国产jizzjizz一区二区| 欧美一区二区三区四区在线观看| 国产精品国产精品国产专区不蜜 | 国产精品美女久久久久久久久久久 | 精品视频资源站| 国产精品美女久久久久久久| 午夜精品一区二区三区三上悠亚| 成人黄色片在线观看| 欧美videos中文字幕| 亚洲一区二区四区蜜桃| 欧美图片一区二区三区| 裸体健美xxxx欧美裸体表演| 日韩一级高清毛片| 亚洲码国产岛国毛片在线| 国产精品99久久久| 日韩精品一区二区三区在线播放| 亚洲精品乱码久久久久久黑人| 国产成人精品免费| 精品av久久707| 老司机精品视频在线| 69堂精品视频| 天天影视网天天综合色在线播放| av激情成人网| 国产精品久久久久久久久快鸭| 国产一区二区不卡在线| 精品美女被调教视频大全网站| 日韩激情在线观看| 欧美精品一二三区| 亚洲成a人片在线不卡一二三区| 色94色欧美sute亚洲线路一ni| 国产精品麻豆网站| 国产成人欧美日韩在线电影| 精品国产91九色蝌蚪| 理论片日本一区| 精品欧美一区二区三区精品久久| 琪琪久久久久日韩精品| 日韩一区二区三区四区| 男女激情视频一区| 欧美一区二区高清| 麻豆国产精品777777在线| 日韩亚洲电影在线| 韩国v欧美v日本v亚洲v| 久久精品夜色噜噜亚洲a∨| 国产成人精品免费| 国产精品久久久久7777按摩 | 久久精品国产精品亚洲精品 | 日韩一区二区在线观看视频| 蜜桃精品视频在线| 久久尤物电影视频在线观看| 国产一区二区中文字幕| 国产欧美精品一区二区色综合朱莉 | 精品久久久三级丝袜| 国产成人午夜视频| ...av二区三区久久精品| 欧美亚洲一区三区| 日韩av网站在线观看| 精品国产3级a| 成人av在线播放网站| 一区二区三区在线免费视频 | 中文字幕永久在线不卡| 欧美日韩中文国产| 免费成人av在线| 欧美高清在线一区二区| 91九色02白丝porn| 蜜臀av国产精品久久久久| 欧美国产精品一区| 欧美性生活一区| 国产麻豆精品视频| 亚洲日本一区二区| 日韩一区二区三区在线| 成人黄色av电影| 日韩激情在线观看| 日韩不卡手机在线v区| 久久久www免费人成精品| 91视视频在线观看入口直接观看www | 日韩一级视频免费观看在线| 国产不卡视频在线观看| 亚洲综合网站在线观看| 欧美成人猛片aaaaaaa| 99精品久久免费看蜜臀剧情介绍| 亚洲成在线观看| 国产欧美久久久精品影院| 欧美日韩专区在线| 国产成人精品网址| 石原莉奈在线亚洲二区| 中文字幕精品—区二区四季| 欧美另类久久久品| 国产不卡一区视频| 首页亚洲欧美制服丝腿| 中文字幕欧美国产| 制服.丝袜.亚洲.另类.中文 | 555夜色666亚洲国产免| 风间由美一区二区三区在线观看| 五月天久久比比资源色| 国产精品毛片高清在线完整版| 欧美一区二区三区成人| 色综合中文字幕国产| 国产河南妇女毛片精品久久久| 视频一区中文字幕国产| 亚洲日穴在线视频|