⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xaosmediaaddon.cpp

📁 另一个分形程序
💻 CPP
字号:
#include <MediaAddOn.h>#include <Mime.h>#include <stdio.h>#include <MediaDefs.h>#include <File.h>#include "XaoSProducer.h"#include "version.h"#include "be_checkfile.h"#include "xerror.h"int linkaddontoo;#if 0struct media_format xaos_format={	B_MEDIA_ENCODED_VIDEO};#endifstruct media_format video_format={	B_MEDIA_RAW_VIDEO};static const struct flavor_info flavor={	"XaoS " XaoS_VERSION,	"Play XaoS animation files",	B_BUFFER_PRODUCER | B_FILE_INTERFACE /*| B_CONTROLLABLE*/,	0,	0,	1,  /* FIXME: Possible instances. XaoS is not threaded so we use 1 for now. Change this in future */	0,	0,	/*&xaos_format*/NULL,	0,	1,	&video_format};class XaoSAddOn : public BMediaAddOn{	public:		XaoSAddOn(image_id addonID) : BMediaAddOn(addonID) {}		~XaoSAddOn() {}		status_t AutoStart(int, BMediaNode **, int32 *, bool *) {return B_ERROR;}		virtual bool WantsAutoStart(void) {return false;}		virtual int32 CountFlavors(void) {return 1;}		virtual status_t GetConfigurationFor(BMediaNode *node, BMessage *cfg) {return B_OK;}			virtual status_t GetFlavorAt(int32 c, const flavor_info **outInfo)		{			video_format.u.raw_video = media_raw_video_format::wildcard;			video_format.u.raw_video.interlace = 1;#if 0			xaos_format.u.encoded_video = media_encoded_video_format::wildcard;			xaos_format.u.encoded_video.encoding = ('XaoS';			xaos_format.u.encoded_video.output.interlace = 1;#endif			*outInfo=&flavor;			if (!c) return B_OK; else return B_ERROR;		}		virtual status_t InitCheck(const char **outFailureText)		{			x_message("Check!\n");			*outFailureText=error;			return B_OK;		}		virtual BMediaNode *InstantiateNodeFor(const flavor_info *info, BMessage *config, status_t *outError)		{			return new XaoSProducer(NULL, this);		}                virtual status_t SniffRef(const entry_ref &file, BMimeType *outMimeType, float *outQuality, int32 *outInternalId)		{			BFile node(&file, O_RDONLY);			if (node.InitCheck() != B_OK) {				return B_ERROR;			}			if (XaoSCheckFile(&node))			{				outMimeType->SetType("video/x-xaos-animation");				*outQuality=(float)1;				return B_OK;			}			return B_ERROR;		}		virtual status_t SniffType(const BMimeType &type, float *outQuality, int32 *outInternalID)		{			if (!strcmp("video/x-xaos-animation", type.Type()))			{				printf("Snifftype!\n");				*outQuality=(float)1;				return B_OK;			} else {				printf("Unknown!\n");				*outQuality=(float)0;				return B_ERROR;			}			return B_MEDIA_NO_HANDLER;		}	private:		const char *error;};extern "C" {XaoSAddOn *make_media_addon(image_id addonID){	printf("XaoSAddOn\n");	return new XaoSAddOn(addonID);}}

⌨️ 快捷键说明

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