这篇教程C++ CDAudio_GetAudioDiskInfo函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CDAudio_GetAudioDiskInfo函数的典型用法代码示例。如果您正苦于以下问题:C++ CDAudio_GetAudioDiskInfo函数的具体用法?C++ CDAudio_GetAudioDiskInfo怎么用?C++ CDAudio_GetAudioDiskInfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CDAudio_GetAudioDiskInfo函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: CDAudio_Play_realqboolean 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_Initint 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_Startupint 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_InitintCDAudio_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_UpdateCDvoid 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_Initint 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_Playvoid 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_InitCDvoid 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_Initint 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_PlayCDvoid 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_InitintCDAudio_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_Initint 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_PlayCDvoid 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_Initint 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_Initint 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_PlayvoidCDAudio_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_Initint 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_fstatic 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_Playvoid 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_fstatic 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_Play2void 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_fstatic 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_GetAudioDiskInfostatic 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_fstatic 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_byNamevoid 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_Initint 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_GetAudioDiskInfostatic 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_Playvoid 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函数代码示例 |