您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CDAudio_GetAudioDiskInfo函数代码示例

51自学网 2021-06-01 19:57:56
  C++
这篇教程C++ CDAudio_GetAudioDiskInfo函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CDAudio_GetAudioDiskInfo函数的典型用法代码示例。如果您正苦于以下问题:C++ CDAudio_GetAudioDiskInfo函数的具体用法?C++ CDAudio_GetAudioDiskInfo怎么用?C++ CDAudio_GetAudioDiskInfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CDAudio_GetAudioDiskInfo函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: CDAudio_Play_real

qboolean CDAudio_Play_real (int track, qboolean looping, qboolean complain){	if(track < 1)	{		if(complain)			Con_Print("Could not load BGM track./n");		return false;	}	if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)		{			if(complain)				Con_DPrint ("No CD in player./n");			return false;		}	}	if (track > maxTrack)	{		if(complain)			Con_DPrintf("CDAudio: Bad track number %u./n", track);		return false;	}	if (CDAudio_SysPlay(track) == -1)		return false;	if(cdaudio.integer != 3)		Con_DPrintf ("CD track %u playing.../n", track);	return true;}
开发者ID:Blub,项目名称:darkplaces,代码行数:35,


示例2: CDAudio_Init

int CDAudio_Init (void){	int i;	if (!COM_CheckParm("-cdaudio"))		return -1;	if ((i = COM_CheckParm("-cddev")) != 0 && i < com_argc - 1)		strlcpy (cd_dev, com_argv[i + 1], sizeof(cd_dev));	if ((cdfile = open(cd_dev, O_RDONLY)) == -1) {		Com_Printf ("CDAudio_Init: open of /"%s/" failed (%i)/n", cd_dev, errno);		cdfile = -1;		return -1;	}	for (i = 0; i < 100; i++)		remap[i] = i;	initialized = true;	enabled = true;	if (CDAudio_GetAudioDiskInfo())	{		Com_Printf ("CDAudio_Init: No CD in player./n");		cdValid = false;	}	Cmd_AddCommand ("cd", CD_f);	Com_Printf ("CD Audio Initialized/n");	return 0;}
开发者ID:luaman,项目名称:zq,代码行数:33,


示例3: CDAudio_Startup

int CDAudio_Startup (void){	if (COM_CheckParm("-nocdaudio"))		return -1;	CDAudio_SysStartup ();	if (CDAudio_GetAudioDiskInfo())	{		Con_Print("CDAudio_Init: No CD in player./n");		cdValid = false;	}	saved_vol = CDAudio_SysGetVolume ();	if (saved_vol < 0.0f)	{		Con_Print ("Can't get initial CD volume/n");		saved_vol = 1.0f;	}	else		Con_Printf ("Initial CD volume: %g/n", saved_vol);	initialized = true;	Con_Print("CD Audio Initialized/n");	return 0;}
开发者ID:Blub,项目名称:darkplaces,代码行数:28,


示例4: CDAudio_Init

intCDAudio_Init(void){    int i, err;#ifdef NQ_HACK    // FIXME - not a valid client state in QW?    if (cls.state == ca_dedicated)	return -1;#endif    if (COM_CheckParm("-nocdaudio"))	return -1;    Cmd_AddCommand("cd", CD_f);    err = CDDrv_InitDevice();    if (err)	return err;    for (i = 0; i < 100; i++)	remap[i] = i;    initialized = true;    enabled = true;    Con_Printf("CD Audio Initialized/n");    if (CDAudio_GetAudioDiskInfo()) {	Con_Printf("CDAudio_Init: No CD in player./n");	cdValid = false;    }    Cvar_RegisterVariable(&bgmvolume);    return 0;}
开发者ID:AidHamza,项目名称:eviltoys,代码行数:33,


示例5: I_UpdateCD

/************************************************************************** * * function: UpdateCD * * description: * sets CD volume (may have changed) and initiates play evey 2 seconds * in case the song has elapsed * **************************************************************************/void I_UpdateCD (void){#ifndef NOSDLCD	static Uint32 lastchk = 0;	if (!cdEnabled || !cdrom)		return;	I_SetVolumeCD(cd_volume.value);	if (cdPlaying && lastchk < SDL_GetTicks())	{		lastchk = SDL_GetTicks() + 2000; //two seconds between chks		if (CDAudio_GetAudioDiskInfo()==-1)		{			cdPlaying = SDL_FALSE;			return;		}		if (cdStatus != CD_PLAYING && cdStatus != CD_PAUSED)		{			cdPlaying = SDL_FALSE;			if (playLooping)				I_PlayCD(playTrack, true);		}	}#endif}
开发者ID:ZilverXZX,项目名称:SRB2,代码行数:38,


示例6: I_UpdateCD

void I_UpdateCD(){  if (!enabled)    return;      I_SetVolumeCD(cd_volume.value);	  if (playing && lastchk < SDL_GetTicks())     {      lastchk = SDL_GetTicks() + 2000; //two seconds between chks	      if (CDAudio_GetAudioDiskInfo())	{	  playing = false;	  return;	}      if (cdStatus != CD_PLAYING &&	  cdStatus != CD_PAUSED)	{	  playing = false;	  if (playLooping)	    I_PlayCD(playTrack, true);	}    }  return;}
开发者ID:meiavy,项目名称:doom-legacy,代码行数:27,


示例7: CDAudio_Init

int CDAudio_Init(void){	DWORD	dwReturn;	MCI_OPEN_PARMS	mciOpenParms;    MCI_SET_PARMS	mciSetParms;	int				n;	if (cls.state == ca_dedicated)		return -1;	if (COM_CheckParm("-nocdaudio"))		return -1;    Cmd_AddCommand ("cd", CD_f);    Cvar_RegisterVariable(&bgmvolume, NULL);	Cvar_RegisterVariable(&bgmtype, NULL);	mciOpenParms.lpstrDeviceType = "cdaudio";	dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_SHAREABLE, (DWORD_PTR) (LPVOID) &mciOpenParms);	if (dwReturn)	{		Con_DPrintf("CDAudio_Init: MCI_OPEN failed (%u)/n", (unsigned int)dwReturn);		return -1;	}	wDeviceID = mciOpenParms.wDeviceID;	// Set the time format to track/minute/second/frame (TMSF).	mciSetParms.dwTimeFormat = MCI_FORMAT_TMSF;	dwReturn = mciSendCommand(wDeviceID, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD_PTR) (LPVOID) &mciSetParms);	if (dwReturn)	{		Con_DPrintf("CDAudio_Init: MCI_SET_TIME_FORMAT failed (%u)/n", (unsigned int)dwReturn);		mciSendCommand(wDeviceID, MCI_CLOSE, 0, (DWORD_PTR)NULL);		return -1;	}	for (n = 0; n < 100; n++)		remap[n] = n;    	initialized = true;	enabled = true;	old_cdvolume = bgmvolume.value;	if (CDAudio_GetAudioDiskInfo())	{		Con_Printf("No CD in drive/n");		cdValid = false;	}#ifdef USE_AUX_API	CD_FindCDAux();#endif	/* USE_AUX_API */	Con_Printf("CD Audio initialized/n");	return 0;}
开发者ID:bazilio-ua,项目名称:fxquake,代码行数:58,


示例8: CDAudio_Play

void CDAudio_Play(byte track, qboolean looping){	HANDLE playingThread;	char filename[MAX_PATH];	struct ThreadArgList_t *tal;	if (!enabled)		return;		if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = remap[track];	if (track < 1 || track > maxTrack)	{		Con_DPrintf("CDAudio: Bad track number %u./n", track);		return;	}	if (playing)	{		if (playTrack == track)			return;		CDAudio_Stop();	}	tal = malloc(sizeof(struct ThreadArgList_t));	tal->playLooping = looping;	tal->playTrack = track;	sprintf(filename, "%s//Track%03d.ogg", com_gamedir, track);	if (!OpenOGG(filename, tal))	{		sprintf(filename, "%s//sound//cdtracks//Track%03d.ogg", com_gamedir, track);		if (!OpenOGG(filename, tal))		{			Con_DPrintf("CDAudio: Cannot open Vorbis file /"%s/"", filename);			return;		}	}	playLooping = looping;	playTrack = track;	playing = true;	// force volume update	cdvolume = -1;	playingThread = (HANDLE)_beginthreadex(NULL, 0, PlayingThreadProc, tal, CREATE_SUSPENDED, NULL);	SetThreadPriority(playingThread, THREAD_PRIORITY_TIME_CRITICAL);	ResumeThread(playingThread);}
开发者ID:Azarien,项目名称:SoftQuake,代码行数:57,


示例9: I_InitCD

void I_InitCD(){  int i;  const char *cdName;      // Don't start music on a dedicated server  if (M_CheckParm("-dedicated"))    return ;      // Has been checked in d_main.c, but doesn't hurt here  if (M_CheckParm("-nocd"))    return ;      CONS_Printf(" Initializing CD audio.../n");  // Initialize SDL first  if (SDL_Init(SDL_INIT_CDROM) < 0) {    CONS_Printf(" Couldn't initialize SDL CD: %s/n", SDL_GetError());    return;  }  // Open drive  cdrom = SDL_CDOpen(0);  cdName = SDL_CDName(0);      if (cdrom == NULL) {    if (cdName == NULL)      {	    	CONS_Printf(" Couldn't open default CD-ROM drive: %s/n",		    SDL_GetError());      }    else      {	CONS_Printf(" Couldn't open default CD-ROM drive %s: %s/n",		    cdName, SDL_GetError());      }	    return;  }      for (i = 0; i < MAX_CD_TRACKS; i++)    cdRemap[i] = i;      initialized = true;  enabled = true;  CDAudio_GetAudioDiskInfo();  COM.AddCommand("cd", Command_Cd_f);      CONS_Printf(" CD audio initialized./n");      return ;}
开发者ID:meiavy,项目名称:doom-legacy,代码行数:55,


示例10: I_InitCD

/************************************************************************** * * function: InitCD * * description: * Initialize the first CD drive SDL detects and add console command 'cd' * **************************************************************************/void I_InitCD (void){#ifndef NOSDLCD	INT32 i;	// Has been checked in d_main.c, but doesn't hurt here	if (M_CheckParm ("-nocd"))		return;	CONS_Printf("I_InitCD: Init CD audio/n");	// Initialize SDL first	if (SDL_InitSubSystem(SDL_INIT_CDROM) < 0)	{		CONS_Printf("Couldn't initialize SDL CDROM: %s/n",SDL_GetError());		return;	}	// Open drive	cdrom = SDL_CDOpen(0);	if (!cdrom)	{		const char *cdName = SDL_CDName(0);		if (!cdName)		{			CONS_Printf("Couldn't open default CD-ROM drive: %s/n",				SDL_GetError());		}		else		{			CONS_Printf("Couldn't open default CD-ROM drive %s: %s/n",				cdName, SDL_GetError());		}		//return;	}	for (i = 0; i < MAX_CD_TRACKS; i++)		cdRemap[i] = (Uint8)i;	cdaudio_started = true;	if (cdrom) cdEnabled = true;	if (CDAudio_GetAudioDiskInfo()==-1)	{		CONS_Printf("I_InitCD: No CD in player./n");		cdValid = SDL_FALSE;	}	COM_AddCommand ("cd", Command_Cd_f);	CONS_Printf("CD audio Initialized/n");#endif}
开发者ID:Pupswoof117,项目名称:SRB2-Public,代码行数:63,


示例11: CDAudio_Init

int CDAudio_Init(void){	DWORD	dwReturn;	MCI_OPEN_PARMS	mciOpenParms;	MCI_SET_PARMS	mciSetParms;	int				n;	if (cls.state == ca_dedicated)	{		return -1;	}	if (COM_CheckParm("-nocdaudio"))	{		return -1;	}	mciOpenParms.lpstrDeviceType = "cdaudio";	if (dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_SHAREABLE, (DWORD)(LPVOID) &mciOpenParms))	{		Con_Printf("CDAudio_Init: MCI_OPEN failed (%i)/n", dwReturn);		return -1;	}	wDeviceID = mciOpenParms.wDeviceID;	// Set the time format to track/minute/second/frame (TMSF).	mciSetParms.dwTimeFormat = MCI_FORMAT_TMSF;	if (dwReturn = mciSendCommand(wDeviceID, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID) &mciSetParms))	{		Con_Printf("MCI_SET_TIME_FORMAT failed (%i)/n", dwReturn);		mciSendCommand(wDeviceID, MCI_CLOSE, 0, (DWORD)NULL);		return -1;	}	for (n = 0; n < 100; n++)	{		remap[n] = n;	}	initialized = true;	enabled = true;	if (CDAudio_GetAudioDiskInfo())	{		Con_Printf("CDAudio_Init: No CD in player./n");		cdValid = false;	}	Cmd_AddCommand("cd", CD_f);	Con_Printf("CD Audio Initialized/n");	return 0;}
开发者ID:carriercomm,项目名称:Doodle,代码行数:53,


示例12: I_PlayCD

void I_PlayCD (UINT8 track, UINT8 looping){#ifdef NOSDLCD	(void)track;	(void)looping;#else	if (!cdrom || !cdEnabled)		return;	if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = cdRemap[track];	if (track < 1 || track > maxTrack)	{		CONS_Printf("I_PlayCD: Bad track number %u./n", track);		return;	}	// don't try to play a non-audio track	if (cdrom->track[track].type == SDL_DATA_TRACK)	{		CONS_Printf("I_PlayCD: track %u is not audio/n", track);		return;	}	if (cdPlaying)	{		if (playTrack == track)			return;		I_StopCD();	}	if (SDL_CDPlayTracks(cdrom, track, 0, 1, 0))	{		CONS_Printf("Error playing track %d: %s/n",				track, SDL_GetError());		return;	}	playLooping = looping;	playTrack = (Uint8)track;	cdPlaying = true;	if (cd_volume.value == 0)		I_PauseCD();#endif}
开发者ID:Pupswoof117,项目名称:SRB2-Public,代码行数:53,


示例13: CDAudio_Init

intCDAudio_Init (void){	int         i;#if 0	if (cls.state == ca_dedicated)		return -1;#endif	if (COM_CheckParm ("-nocdaudio"))		return -1;	if ((i = COM_CheckParm ("-cddev")) != 0 && i < com_argc - 1) {		strncpy (cd_dev, com_argv[i + 1], sizeof (cd_dev));		cd_dev[sizeof (cd_dev) - 1] = 0;	}	if ((cdfile = open (cd_dev, O_RDONLY | O_NONBLOCK)) == -1) {		Con_Printf ("CDAudio_Init: open of /"%s/" failed (%i)/n", cd_dev,					errno);		cdfile = -1;		return -1;	}	for (i = 0; i < 100; i++)		remap[i] = i;	initialized = true;	enabled = true;	if (CDAudio_GetAudioDiskInfo ()) {		Con_Printf ("CDAudio_Init: No CD in player./n");		cdValid = false;	}	Cmd_AddCommand ("cd", CD_f, "Control the CD player./n"		"Commands:/n"		"eject - Eject the CD./n"		"info - Reports information on the CD./n"		"loop (track number) - Loops the specified track./n"		"remap (track1) (track2) ... - Remap the current track order./n"		"reset - Causes the CD audio to re-initialize./n"		"resume - Will resume playback after pause./n"		"off - Shuts down the CD audio system../n"		"on - Re-enables the CD audio system after a cd off command./n"		"pause - Pause the CD playback./n"		"play (track number) - Plays the specified track one time./n"		"stop - Stops the currently playing track.");	Con_Printf ("CD Audio Initialized/n");	return 0;}
开发者ID:luaman,项目名称:qforge-newtree,代码行数:53,


示例14: CDAudio_Init

int CDAudio_Init(void){	DWORD	dwReturn;	MCI_OPEN_PARMS	mciOpenParms;    MCI_SET_PARMS	mciSetParms;	int				n;	if (initialized)	  return 0;	cd_nocd = Cvar_Get ("cd_nocd", "0", CVAR_ARCHIVE );	cd_loopcount = Cvar_Get ("cd_loopcount", "4", 0);	cd_looptrack = Cvar_Get ("cd_looptrack", "11", 0);	cd_shuffle = Cvar_Get ("cd_shuffle", "0", CVAR_ARCHIVE );	// NeVo	if ( cd_nocd->value)		return -1;	mciOpenParms.lpstrDeviceType = "cdaudio";	if (dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_SHAREABLE, (DWORD) (LPVOID) &mciOpenParms))	{		Com_Printf("CDAudio_Init: MCI_OPEN failed (%i)/n", dwReturn);		return -1;	}	wDeviceID = mciOpenParms.wDeviceID;    // Set the time format to track/minute/second/frame (TMSF).    mciSetParms.dwTimeFormat = MCI_FORMAT_TMSF;    if (dwReturn = mciSendCommand(wDeviceID, MCI_SET, MCI_SET_TIME_FORMAT, (DWORD)(LPVOID) &mciSetParms))    {		Com_Printf("MCI_SET_TIME_FORMAT failed (%i)/n", dwReturn);        mciSendCommand(wDeviceID, MCI_CLOSE, 0, (DWORD)NULL);		return -1;    }	for (n = 0; n < 100; n++)		remap[n] = n;	initialized = 1;	enabled = 1;	if (CDAudio_GetAudioDiskInfo())	{//		Com_Printf("CDAudio_Init: No CD in player./n");		cdValid = 0;		enabled = 0;	}	Cmd_AddCommand ("cd", CD_f);	Com_Printf("CD Audio Initialized/n");	return 0;}
开发者ID:Jaegermeiste,项目名称:quake2_322,代码行数:52,


示例15: I_PlayCD

void I_PlayCD(int track, bool looping){  if (cdrom == NULL || !enabled)    return;      if (!cdValid)    {      CDAudio_GetAudioDiskInfo();      if (!cdValid)	return;    }      track = cdRemap[track];      if (track < 1 || track > maxTrack)    {      CONS_Printf("I_PlayCD: Bad track number %u./n", track);      return;    }      // don't try to play a non-audio track  if (cdrom->track[track].type == SDL_DATA_TRACK)    {      CONS_Printf("I_PlayCD: track %i is not audio/n", track);      return;    }	  if (playing)    {      if (playTrack == track)	return;      I_StopCD();    }      if (SDL_CDPlayTracks(cdrom, track, 0, 1, 0))    {      CONS_Printf("Error playing track %d: %s/n",		  track, SDL_GetError());      return;    }      playLooping = looping;  playTrack = track;  playing = true;  if (cd_volume.value == 0)    {      I_PauseCD();    }    }
开发者ID:meiavy,项目名称:doom-legacy,代码行数:51,


示例16: CDAudio_Init

int CDAudio_Init(void){	int i;	cvar_t			*cv;	extern uid_t saved_euid;	if (initialized)		return 0;	cv = Cvar_Get ("nocdaudio", "0", CVAR_NOSET);	if (cv->value)		return -1;	cd_nocd = Cvar_Get ("cd_nocd", "0", CVAR_ARCHIVE );	if ( cd_nocd->value)		return -1;	cd_volume = Cvar_Get ("cd_volume", "1", CVAR_ARCHIVE);	cd_dev = Cvar_Get("cd_dev", "/dev/cdrom", CVAR_ARCHIVE);	seteuid(saved_euid);	cdfile = open(cd_dev->string, O_RDONLY | O_NONBLOCK | O_EXCL);	seteuid(getuid());	if (cdfile == -1) {	  Com_Printf("CDAudio_Init: open of /"%s/" failed (%i)/n", cd_dev->string, errno);	  	  cdfile = -1;	  return -1;	}	for (i = 0; i < 100; i++)		remap[i] = i;	initialized = true;	enabled = true;	if (CDAudio_GetAudioDiskInfo())	{		Com_Printf("CDAudio_Init: No CD in player./n");		cdValid = false;	}	Cmd_AddCommand ("cd", CD_f);	Com_Printf("CD Audio Initialized/n");	return 0;}
开发者ID:AJenbo,项目名称:Quake-2,代码行数:51,


示例17: CDAudio_Init

int CDAudio_Init(void){    int i;    if (safemode || COM_CheckParm("-nocdaudio"))        return -1;    if ((i = COM_CheckParm("-cddev")) != 0 && i < com_argc - 1)        cd_dev = com_argv[i + 1];    if ((cdfile = open(cd_dev, O_RDONLY | O_NONBLOCK)) == -1)    {        Con_Printf("%s: open of /"%s/" failed (%i)/n", __thisfunc__, cd_dev, errno);        cdfile = -1;        return -1;    }    for (i = 0; i < 100; i++)        remap[i] = i;    initialized = true;    enabled = true;    old_cdvolume = bgmvolume.value;    Con_Printf("CDAudio initialized (using BSD ioctls)/n");    if (CDAudio_GetAudioDiskInfo())    {        Con_Printf("%s: No CD in drive/n", __thisfunc__);        cdValid = false;    }    Cmd_AddCommand ("cd", CD_f);    hw_vol_works = CD_GetVolume (&orig_vol);    if (hw_vol_works)        hw_vol_works = CDAudio_SetVolume (&bgmvolume);    return 0;}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:39,


示例18: CDAudio_Play

voidCDAudio_Play(byte track, qboolean looping){    int err;    if (!enabled)	return;    if (!cdValid) {	CDAudio_GetAudioDiskInfo();	if (!cdValid)	    return;    }    track = remap[track];    if (track < 1 || track > maxTrack) {	Con_DPrintf("CDAudio: Bad track number %u./n", track);	return;    }    if (!CDDrv_IsAudioTrack(track)) {	Con_Printf("CDAudio: track %i is not audio/n", track);	return;    }    if (playing) {	if (playTrack == track)	    return;	CDAudio_Stop();    }    err = CDDrv_PlayTrack(track);    if (!err) {	playLooping = looping;	playTrack = track;	playing = true;    }    if (cdvolume == 0.0)	CDAudio_Pause();}
开发者ID:AidHamza,项目名称:eviltoys,代码行数:36,


示例19: CDAudio_Init

int CDAudio_Init(void){	WAVEFORMATEX	format;	DSBUFFERDESC	dsbuf;	DWORD			dwSize;	char*			lpData;	int				n;	if (cls.state == ca_dedicated)		return -1;	if (COM_CheckParm("-nocdaudio"))		return -1;	if (!dsound_init)	{		Con_Printf("CDAudio_Init: DirectSound not initialized./n");		return -1;	}	memset (&format, 0, sizeof(format));	format.wFormatTag = WAVE_FORMAT_PCM;    format.nChannels = 2;    format.wBitsPerSample = 16;    format.nSamplesPerSec = 44100;    format.nBlockAlign = format.nChannels * format.wBitsPerSample / 8;    format.cbSize = 0;    format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;	memset (&dsbuf, 0, sizeof(dsbuf));	dsbuf.dwSize = sizeof(DSBUFFERDESC);	dsbuf.dwFlags = DSBCAPS_GLOBALFOCUS | DSBCAPS_CTRLVOLUME | DSBCAPS_CTRLPOSITIONNOTIFY;	dsbuf.dwBufferBytes = format.nAvgBytesPerSec;	dsbuf.lpwfxFormat = &format;	if (DS_OK != pDS->lpVtbl->CreateSoundBuffer(pDS, &dsbuf, &pDSBufCD, NULL))	{		Con_Printf("CDAudio_Init: CreateSoundBuffer failed./n");		return -1;	}	pDSBufCD->lpVtbl->QueryInterface(pDSBufCD, &IID_IDirectSoundNotify, &pDSBufCDNotify);	gCDBufSize = dsbuf.dwBufferBytes;	cdPlayingFinishedEvent = CreateEvent(NULL, TRUE, TRUE, NULL);	cdStopEvent = CreateEvent(NULL, TRUE, TRUE, NULL);	for (n = 0; n < 100; n++)		remap[n] = n;	initialized = true;	enabled = true;	if (CDAudio_GetAudioDiskInfo())	{		Con_Printf("CDAudio_Init: No tracks found./n");		cdValid = false;	}	Cmd_AddCommand ("cd", CD_f);	Con_Printf("CD Audio Initialized/n");	return 0;}
开发者ID:Azarien,项目名称:SoftQuake,代码行数:66,


示例20: Command_Cd_f

static void Command_Cd_f(){  const char *command;  int   ret, n;  if (!initialized)    return;  if (COM.Argc() < 2) {    CONS_Printf("cd [on] [off] [remap] [reset] [open]/n"		"   [info] [play <track>] [resume]/n"		"   [stop] [pause] [loop <track>]/n");    return;  }  command = COM.Argv(1);  if (!strncmp(command, "on", 2)) {    enabled = true;    return;  }  if (!strncmp(command, "off", 3)) {    I_StopCD();    enabled = false;    return;  }	  if (!strncmp(command, "remap", 5)) {    ret = COM.Argc() - 2;    if (ret <= 0) {      for (n = 1; n < MAX_CD_TRACKS; n++)	if (cdRemap[n] != n)	  CONS_Printf("  %u -> %u/n", n, cdRemap[n]);      return;    }    for (n = 1; n <= ret; n++)      cdRemap[n] = atoi(COM.Argv(n+1));    return;  }          if (!strncmp(command, "reset", 5)) {    enabled = true;    I_StopCD();                for (n = 0; n < MAX_CD_TRACKS; n++)      cdRemap[n] = n;    CDAudio_GetAudioDiskInfo();    return;  }          if (!cdValid)    {      CDAudio_GetAudioDiskInfo();      if (!cdValid)	return;    }  if (!strncmp(command, "open", 4)) {    I_EjectCD();    cdValid = false;    return;  }  if (!strncmp(command, "info", 4)) {    CONS_Printf("%u tracks/n", maxTrack);    if (playing)      CONS_Printf("Currently %s track %u/n", playLooping ? "looping" : "playing", playTrack);    else if (wasPlaying)      CONS_Printf("Paused %s track %u/n", playLooping ? "looping" : "playing", playTrack);    CONS_Printf("Volume is %d/n", cdvolume);    return;  }  if (!strncmp(command, "play", 4)) {    I_PlayCD((byte)atoi(COM.Argv(2)), false);    return;  }  if (!strncmp(command, "loop", 4)) {    I_PlayCD((byte)atoi(COM.Argv(2)), true);    return;  }  if (!strncmp(command, "stop", 4)) {    I_StopCD();    return;  }          if (!strncmp(command, "pause", 5)) {    I_PauseCD();    return;  }          if (!strncmp(command, "resume", 6)) {    I_ResumeCD();    return;  }          CONS_Printf("Invalid command /"cd %s/"/n", COM.Argv(1));//.........这里部分代码省略.........
开发者ID:meiavy,项目名称:doom-legacy,代码行数:101,


示例21: CDAudio_Play

void CDAudio_Play(byte track, qboolean looping){	struct cdrom_tocentry entry;	struct cdrom_ti ti;	if (cdfile == -1 || !enabled)		return;		if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = remap[track];	if (track < 1 || track > maxTrack)	{		Con_DPrintf("CDAudio: Bad track number %u./n", track);		return;	}	// don't try to play a non-audio track	entry.cdte_track = track;	entry.cdte_format = CDROM_MSF;    if ( ioctl(cdfile, CDROMREADTOCENTRY, &entry) == -1 )	{		Con_DPrintf("ioctl cdromreadtocentry failed/n");		return;	}	if (entry.cdte_ctrl == CDROM_DATA_TRACK)	{		Con_Printf("CDAudio: track %i is not audio/n", track);		return;	}	if (playing)	{		if (playTrack == track)			return;		CDAudio_Stop();	}	ti.cdti_trk0 = track;	ti.cdti_trk1 = track;	ti.cdti_ind0 = 1;	ti.cdti_ind1 = 99;	if ( ioctl(cdfile, CDROMPLAYTRKIND, &ti) == -1 )     {		Con_DPrintf("ioctl cdromplaytrkind failed/n");		return;    }	if ( ioctl(cdfile, CDROMRESUME) == -1 ) 		Con_DPrintf("ioctl cdromresume failed/n");	playLooping = looping;	playTrack = track;	playing = true;	if (cdvolume == 0.0)		CDAudio_Pause ();}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:65,


示例22: CD_f

static void CD_f (void){	char	*command;	int		ret;	int		n;	if (Cmd_Argc() < 2)		return;	command = Cmd_Argv (1);	if (Q_strcasecmp(command, "on") == 0)	{		enabled = true;		return;	}	if (Q_strcasecmp(command, "off") == 0)	{		if (playing)			CDAudio_Stop();		enabled = false;		return;	}	if (Q_strcasecmp(command, "reset") == 0)	{		enabled = true;		if (playing)			CDAudio_Stop();		for (n = 0; n < 100; n++)			remap[n] = n;		CDAudio_GetAudioDiskInfo();		return;	}	if (Q_strcasecmp(command, "remap") == 0)	{		ret = Cmd_Argc() - 2;		if (ret <= 0)		{			for (n = 1; n < 100; n++)				if (remap[n] != n)					Con_Printf("  %u -> %u/n", n, remap[n]);			return;		}		for (n = 1; n <= ret; n++)			remap[n] = Q_atoi(Cmd_Argv (n+1));		return;	}	if (Q_strcasecmp(command, "close") == 0)	{		CDAudio_CloseDoor();		return;	}	if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)		{			Con_Printf("No CD in player./n");			return;		}	}	if (Q_strcasecmp(command, "play") == 0)	{		CDAudio_Play((byte)Q_atoi(Cmd_Argv (2)), false);		return;	}	if (Q_strcasecmp(command, "loop") == 0)	{		CDAudio_Play((byte)Q_atoi(Cmd_Argv (2)), true);		return;	}	if (Q_strcasecmp(command, "stop") == 0)	{		CDAudio_Stop();		return;	}	if (Q_strcasecmp(command, "pause") == 0)	{		CDAudio_Pause();		return;	}	if (Q_strcasecmp(command, "resume") == 0)	{		CDAudio_Resume();		return;	}	if (Q_strcasecmp(command, "eject") == 0)	{		if (playing)//.........这里部分代码省略.........
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:101,


示例23: CDAudio_Play2

void CDAudio_Play2(int track, qboolean looping){	DWORD				dwReturn;    MCI_PLAY_PARMS		mciPlayParms;	MCI_STATUS_PARMS	mciStatusParms;	if (!enabled)		return;		if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = remap[track];	if (track < 1 || track > maxTrack)	{		CDAudio_Stop();		return;	}	// don't try to play a non-audio track	mciStatusParms.dwItem = MCI_CDA_STATUS_TYPE_TRACK;	mciStatusParms.dwTrack = track;    dwReturn = mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM | MCI_TRACK | MCI_WAIT, (DWORD) (LPVOID) &mciStatusParms);	if (dwReturn)	{		Com_DPrintf("MCI_STATUS failed (%i)/n", dwReturn);		return;	}	if (mciStatusParms.dwReturn != MCI_CDA_TRACK_AUDIO)	{		Com_Printf("CDAudio: track %i is not audio/n", track);		return;	}	// get the length of the track to be played	mciStatusParms.dwItem = MCI_STATUS_LENGTH;	mciStatusParms.dwTrack = track;    dwReturn = mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM | MCI_TRACK | MCI_WAIT, (DWORD) (LPVOID) &mciStatusParms);	if (dwReturn)	{		Com_DPrintf("MCI_STATUS failed (%i)/n", dwReturn);		return;	}	if (playing)	{		if (playTrack == track)			return;		CDAudio_Stop();	}    mciPlayParms.dwFrom = MCI_MAKE_TMSF(track, 0, 0, 0);	mciPlayParms.dwTo = (mciStatusParms.dwReturn << 8) | track;    mciPlayParms.dwCallback = (DWORD)cl_hwnd;    dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY | MCI_FROM | MCI_TO, (DWORD)(LPVOID) &mciPlayParms);	if (dwReturn)	{		Com_DPrintf("CDAudio: MCI_PLAY failed (%i)/n", dwReturn);		return;	}	playLooping = looping;	playTrack = track;	playing = true;	if ( Cvar_VariableValue( "cd_nocd" ) )		CDAudio_Pause ();}
开发者ID:Izhido,项目名称:qrevpak,代码行数:73,


示例24: CD_f

static void CD_f (void){	const char	*command;	int		ret, n;	if (Cmd_Argc() < 2)	{		Con_Printf("commands:");		Con_Printf("on, off, reset, remap, /n");		Con_Printf("play, stop, loop, pause, resume/n");		Con_Printf("eject, info/n");		return;	}	command = Cmd_Argv (1);	if (q_strcasecmp(command, "on") == 0)	{		enabled = true;		return;	}	if (q_strcasecmp(command, "off") == 0)	{		if (playing)			CDAudio_Stop();		enabled = false;		return;	}	if (q_strcasecmp(command, "reset") == 0)	{		enabled = true;		if (playing)			CDAudio_Stop();		for (n = 0; n < 100; n++)			remap[n] = n;		CDAudio_GetAudioDiskInfo();		return;	}	if (q_strcasecmp(command, "remap") == 0)	{		ret = Cmd_Argc () - 2;		if (ret <= 0)		{			for (n = 1; n < 100; n++)				if (remap[n] != n)					Con_Printf ("  %u -> %u/n", n, remap[n]);			return;		}		for (n = 1; n <= ret; n++)			remap[n] = atoi(Cmd_Argv (n + 1));		return;	}	if (!cdValid)	{		CDAudio_GetAudioDiskInfo ();		if (!cdValid)		{			Con_Printf("No CD in player./n");			return;		}	}	if (q_strcasecmp(command, "play") == 0)	{		CDAudio_Play((byte)atoi(Cmd_Argv (2)), false);		return;	}	if (q_strcasecmp(command, "loop") == 0)	{		CDAudio_Play((byte)atoi(Cmd_Argv (2)), true);		return;	}	if (q_strcasecmp(command, "stop") == 0)	{		CDAudio_Stop();		return;	}	if (q_strcasecmp(command, "pause") == 0)	{		CDAudio_Pause();		return;	}	if (q_strcasecmp(command, "resume") == 0)	{		CDAudio_Resume();		return;	}	if (q_strcasecmp(command, "eject") == 0)	{		if (playing)			CDAudio_Stop();//.........这里部分代码省略.........
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:101,


示例25: CDAudio_GetAudioDiskInfo

static int CDAudio_GetAudioDiskInfo(void){#if defined(__FreeBSD__)	struct ioc_toc_header tochdr;#else	struct cdrom_tochdr tochdr;#endif	cdValid = false;#if defined(__FreeBSD__)	if ( ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1 )     {      Com_DPrintf("ioctl cdioreadtocheader failed/n");#else	if ( ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1 )     {      Com_DPrintf("ioctl cdromreadtochdr failed/n");#endif	  return -1;    }#if defined(__FreeBSD__)	if (tochdr.starting_track < 1)#else	if (tochdr.cdth_trk0 < 1)#endif	{		Com_DPrintf("CDAudio: no music tracks/n");		return -1;	}	cdValid = true;#if defined(__FreeBSD__)	maxTrack = tochdr.ending_track;#else	maxTrack = tochdr.cdth_trk1;#endif	return 0;}void CDAudio_Play(int track, qboolean looping){#if defined(__FreeBSD__)	struct ioc_read_toc_entry entry;	struct cd_toc_entry toc_buffer;	struct ioc_play_track ti;#else	struct cdrom_tocentry entry;	struct cdrom_ti ti;#endif	if (cdfile == -1 || !enabled)		return;		if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = remap[track];	if (track < 1 || track > maxTrack)	{		Com_DPrintf("CDAudio: Bad track number %u./n", track);		return;	}#if defined(__FreeBSD__)	#define CDROM_DATA_TRACK 4	bzero((char *)&toc_buffer, sizeof(toc_buffer));	entry.data_len = sizeof(toc_buffer);	entry.data = &toc_buffer;	// don't try to play a non-audio track	entry.starting_track = track;	entry.address_format = CD_MSF_FORMAT;    if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 )	{		Com_DPrintf("ioctl cdromreadtocentry failed/n");		return;	}	if (toc_buffer.control == CDROM_DATA_TRACK)#else	// don't try to play a non-audio track	entry.cdte_track = track;	entry.cdte_format = CDROM_LBA;    if ( ioctl(cdfile, CDROMREADTOCENTRY, &entry) == -1 )	{		Com_DPrintf("ioctl cdromreadtocentry failed/n");		return;	}	if (entry.cdte_ctrl == CDROM_DATA_TRACK)#endif	{		Com_Printf("CDAudio: track %i is not audio/n", track);		return;//.........这里部分代码省略.........
开发者ID:chrisnew,项目名称:quake2,代码行数:101,


示例26: CD_f

static void CD_f (void){	const char *command;#ifdef MAXTRACKS	int ret;	int n;#endif	command = Cmd_Argv (1);	if (strcasecmp(command, "remap") != 0)		Host_StartVideo();	if (strcasecmp(command, "on") == 0)	{		enabled = true;		return;	}	if (strcasecmp(command, "off") == 0)	{		CDAudio_Stop();		enabled = false;		return;	}	if (strcasecmp(command, "reset") == 0)	{		enabled = true;		CDAudio_Stop();#ifdef MAXTRACKS		for (n = 0; n < MAXTRACKS; n++)			*remap[n] = 0; // empty string, that is, unremapped#endif		CDAudio_GetAudioDiskInfo();		return;	}	if (strcasecmp(command, "rescan") == 0)	{		CDAudio_Shutdown();		CDAudio_Startup();		return;	}	if (strcasecmp(command, "remap") == 0)	{#ifdef MAXTRACKS		ret = Cmd_Argc() - 2;		if (ret <= 0)		{			for (n = 1; n < MAXTRACKS; n++)				if (*remap[n])					Con_Printf("  %u -> %s/n", n, remap[n]);			return;		}		for (n = 1; n <= ret; n++)			strlcpy(remap[n], Cmd_Argv (n+1), sizeof(*remap));#endif		return;	}	if (strcasecmp(command, "close") == 0)	{		CDAudio_CloseDoor();		return;	}	if (strcasecmp(command, "play") == 0)	{		if (music_playlist_index.integer >= 0)			return;		CDAudio_Play_byName(Cmd_Argv (2), false, true, 0);		return;	}	if (strcasecmp(command, "loop") == 0)	{		if (music_playlist_index.integer >= 0)			return;		CDAudio_Play_byName(Cmd_Argv (2), true, true, 0);		return;	}	if (strcasecmp(command, "stop") == 0)	{		if (music_playlist_index.integer >= 0)			return;		CDAudio_Stop();		return;	}	if (strcasecmp(command, "pause") == 0)	{		if (music_playlist_index.integer >= 0)			return;		CDAudio_Pause();		return;	}//.........这里部分代码省略.........
开发者ID:Blub,项目名称:darkplaces,代码行数:101,


示例27: CDAudio_Play_byName

void CDAudio_Play_byName (const char *trackname, qboolean looping, qboolean tryreal, float startposition){	unsigned int track;	sfx_t* sfx;	char filename[MAX_QPATH];	Host_StartVideo();	if (!enabled)		return;	if(tryreal && strspn(trackname, "0123456789") == strlen(trackname))	{		track = (unsigned char) atoi(trackname);#ifdef MAXTRACKS		if(track > 0 && track < MAXTRACKS)			if(*remap[track])			{				if(strspn(remap[track], "0123456789") == strlen(remap[track]))				{					trackname = remap[track];				}				else				{					// ignore remappings to fake tracks if we're going to play a real track					switch(cdaudio.integer)					{						case 0: // we never access CD						case 1: // we have a replacement							trackname = remap[track];							break;						case 2: // we only use fake track replacement if CD track is invalid							CDAudio_GetAudioDiskInfo();							if(!cdValid || track > maxTrack)								trackname = remap[track];							break;						case 3: // we always play from CD - ignore this remapping then						case 4: // we randomize anyway							break;					}				}			}#endif	}	if(tryreal && strspn(trackname, "0123456789") == strlen(trackname))	{		track = (unsigned char) atoi(trackname);		if (track < 1)		{			Con_DPrintf("CDAudio: Bad track number %u./n", track);			return;		}	}	else		track = 0;	// div0: I assume this code was intentionally there. Maybe turn it into a cvar?	if (cdPlaying && cdPlayTrack == track && faketrack == -1)		return;	CDAudio_Stop ();	if(track >= 1)	{		if(cdaudio.integer == 3) // only play real CD tracks at all		{			if(CDAudio_Play_real(track, looping, true))				goto success;			return;		}		if(cdaudio.integer == 2) // prefer real CD track over fake		{			if(CDAudio_Play_real(track, looping, false))				goto success;		}	}	if(cdaudio.integer == 4) // only play real CD tracks, EVEN instead of fake tracks!	{		if(CDAudio_Play_real(track, looping, false))			goto success;				if(cdValid && maxTrack > 0)		{			track = 1 + (rand() % maxTrack);			if(CDAudio_Play_real(track, looping, true))				goto success;		}		else		{			Con_DPrint ("No CD in player./n");		}		return;	}	// Try playing a fake track (sound file) first	if(track >= 1)	{		                              dpsnprintf(filename, sizeof(filename), "sound/cdtracks/track%03u.wav", track);//.........这里部分代码省略.........
开发者ID:Blub,项目名称:darkplaces,代码行数:101,


示例28: CDAudio_Init

int CDAudio_Init(void){	int	i, x, sdl_num_drives;	if (safemode || COM_CheckParm("-nocdaudio"))		return -1;	if (SDL_InitSubSystem(SDL_INIT_CDROM) < 0)	{		Con_Printf("Couldn't init SDL cdrom: %s/n", SDL_GetError());		return -1;	}	sdl_num_drives = SDL_CDNumDrives ();	Con_Printf ("SDL detected %d CD-ROM drive%c/n", sdl_num_drives,					sdl_num_drives == 1 ? ' ' : 's');	if (sdl_num_drives < 1)		return -1;	if ((i = COM_CheckParm("-cddev")) != 0 && i < com_argc - 1)	{		for (x = 0; x < sdl_num_drives; x++)		{			if (!q_strcasecmp(SDL_CDName(x), com_argv[i+1]))			{				cd_dev = x;				break;			}		}		if (cd_dev == -1)		{			Con_Printf("SDL couldn't find cdrom device %s/n", com_argv[i+1]);			return -1;		}	}	if (cd_dev == -1)		cd_dev = 0;	// default drive	cd_handle = SDL_CDOpen(cd_dev);	if (!cd_handle)	{		Con_Printf ("%s: Unable to open CD-ROM drive %s (%s)/n",				__thisfunc__, SDL_CDName(cd_dev), SDL_GetError());		return -1;	}	for (i = 0; i < 100; i++)		remap[i] = i;	enabled = true;	old_cdvolume = bgmvolume.value;	Con_Printf("CDAudio initialized (SDL, using %s)/n", SDL_CDName(cd_dev));	if (CDAudio_GetAudioDiskInfo())	{		Con_Printf("%s: No CD in drive/n", __thisfunc__);		cdValid = false;	}	Cmd_AddCommand ("cd", CD_f);// cd hardware volume: no SDL support at present.	hw_vol_works = CD_GetVolume (NULL);	if (hw_vol_works)		hw_vol_works = CDAudio_SetVolume (&bgmvolume);	return 0;}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:70,


示例29: CDAudio_GetAudioDiskInfo

static int CDAudio_GetAudioDiskInfo(void){#if defined(__FreeBSD__)	struct ioc_toc_header tochdr;#endif#ifdef __linux__	struct cdrom_tochdr tochdr;#endif	cdValid = false;#if defined(__FreeBSD__)	if ( ioctl(cdfile, CDIOREADTOCHEADER, &tochdr) == -1 )     {      Com_DPrintf("ioctl cdioreadtocheader failed/n");#endif#ifdef __linux__	if ( ioctl(cdfile, CDROMREADTOCHDR, &tochdr) == -1 )     {      Com_DPrintf("ioctl cdromreadtochdr failed/n");#endif	  return -1;    }#if defined(__FreeBSD__)	if (tochdr.starting_track < 1)#endif#ifdef __linux__	if (tochdr.cdth_trk0 < 1)#endif	{		Com_DPrintf("CDAudio: no music tracks/n");		return -1;	}	cdValid = true;#if defined(__FreeBSD__)	maxTrack = tochdr.ending_track;#endif#ifdef __linux__	maxTrack = tochdr.cdth_trk1;#endif	return 0;}void CDAudio_Play(int track, qboolean looping){#if defined(__FreeBSD__)	struct ioc_read_toc_entry entry;	struct cd_toc_entry toc_buffer;	struct ioc_play_track ti;#endif#if defined(__linux__)	struct cdrom_tocentry entry;	struct cdrom_ti ti;#endif	if (cdfile == -1 || !enabled)		return;		if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = remap[track];	if (track < 1 || track > maxTrack)	{		Com_DPrintf("CDAudio: Bad track number %u./n", track);		return;	}#if defined(__FreeBSD__)	#define CDROM_DATA_TRACK 4	bzero((char *)&toc_buffer, sizeof(toc_buffer));	entry.data_len = sizeof(toc_buffer);	entry.data = &toc_buffer;	// don't try to play a non-audio track	entry.starting_track = track;	entry.address_format = CD_MSF_FORMAT;    if ( ioctl(cdfile, CDIOREADTOCENTRYS, &entry) == -1 )	{		Com_DPrintf("ioctl cdromreadtocentry failed/n");		return;	}	if (toc_buffer.control == CDROM_DATA_TRACK)#endif#if defined(__linux__)	// don't try to play a non-audio track	entry.cdte_track = track;	entry.cdte_format = CDROM_LBA;    if ( ioctl(cdfile, CDROMREADTOCENTRY, &entry) == -1 )	{		Com_DPrintf("ioctl cdromreadtocentry failed/n");		return;//.........这里部分代码省略.........
开发者ID:AJenbo,项目名称:Quake-2,代码行数:101,


示例30: CDAudio_Play

void CDAudio_Play(byte track, qboolean looping){	int	len_m, len_s, len_f;	if (!cd_handle || !enabled)		return;	if (!cdValid)	{		CDAudio_GetAudioDiskInfo();		if (!cdValid)			return;	}	track = remap[track];	if (track < 1 || track > cd_handle->numtracks)	{		Con_Printf ("%s: Bad track number %d./n", __thisfunc__, track);		return;	}	if (cd_handle->track[track-1].type == SDL_DATA_TRACK)	{		Con_Printf ("%s: track %d is not audio/n", __thisfunc__, track);		return;	}	if (playing)	{		if (playTrack == track)			return;		CDAudio_Stop ();	}	if (SDL_CDPlay(cd_handle, cd_handle->track[track-1].offset, cd_handle->track[track-1].length) < 0)	{		// ok, check for status now		int cd_status = SDL_CDStatus(cd_handle);		if (cd_status > 0)			Con_Printf ("%s: Unable to play %d: %s/n", __thisfunc__, track, SDL_GetError ());		return;	}	playLooping = looping;	playTrack = track;	playing = true;	FRAMES_TO_MSF(cd_handle->track[track-1].length, &len_m, &len_s, &len_f);	endOfTrack = realtime + ((double)len_m * 60.0) + (double)len_s + (double)len_f / (double)CD_FPS;	/*	 * Add the pregap for the next track.  This means that disc-at-once CDs	 * won't loop smoothly, but they wouldn't anyway so it doesn't really	 * matter.  SDL doesn't give us pregap information anyway, so you'll	 * just have to live with it.	 */	endOfTrack += 2.0;	pausetime = -1.0;	if (!hw_vol_works && bgmvolume.value == 0.0)		CDAudio_Pause ();}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:64,



注:本文中的CDAudio_GetAudioDiskInfo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CDAudio_Play函数代码示例
C++ CD3DX12_HEAP_PROPERTIES函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。