[Python-checkins] python/dist/src/Modules ossaudiodev.c,1.2,1.3

gward@users.sourceforge.net gward@users.sourceforge.net
2002年11月30日 15:05:28 -0800


Update of /cvsroot/python/python/dist/src/Modules
In directory sc8-pr-cvs1:/tmp/cvs-serv13592
Modified Files:
	ossaudiodev.c 
Log Message:
Added mode 'rw' for full-duplex (play and record at the same time) mode.
Added _EXPORT_INT macro to export an integer constant to Python-space.
Use it for all the AFMT_* constants, and update the list of AFMT_*
constants to match what's in Linux 2.4: add AFMT_{QUERY,IMA_ADPCM,
MPEG,AC3}. This should probably be tested with older versions of OSS,
eg. with Linux 2.2 and 2.0.
Export all SNDCTL_* ioctl numbers (where "all" is the set found in
/usr/include/linux/soundcard.h on my Debian 3.0 system -- again
Linux 2.4). Again needs to be tested with older OSS versions.
Index: ossaudiodev.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/ossaudiodev.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ossaudiodev.c	30 Nov 2002 22:56:44 -0000	1.2
--- ossaudiodev.c	30 Nov 2002 23:05:26 -0000	1.3
***************
*** 104,109 ****
 else if (strcmp(mode, "w") == 0)
 imode = O_WRONLY;
 else {
! PyErr_SetString(LinuxAudioError, "mode should be 'r' or 'w'");
 return NULL;
 }
--- 104,111 ----
 else if (strcmp(mode, "w") == 0)
 imode = O_WRONLY;
+ else if (strcmp(mode, "rw") == 0)
+ imode = O_RDWR;
 else {
! PyErr_SetString(LinuxAudioError, "mode must be 'r', 'w', or 'rw'");
 return NULL;
 }
***************
*** 629,632 ****
--- 631,638 ----
 };
 
+ 
+ #define _EXPORT_INT(mod, name) \
+ if (PyModule_AddIntConstant(mod, #name, (long) (name)) == -1) return;
+ 
 void
 initlinuxaudiodev(void)
***************
*** 640,662 ****
 	PyModule_AddObject(m, "error", LinuxAudioError);
 
! if (PyModule_AddIntConstant(m, "AFMT_MU_LAW", (long)AFMT_MU_LAW) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_A_LAW", (long)AFMT_A_LAW) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_U8", (long)AFMT_U8) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_S8", (long)AFMT_S8) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_U16_BE", (long)AFMT_U16_BE) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_U16_LE", (long)AFMT_U16_LE) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_S16_BE", (long)AFMT_S16_BE) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_S16_LE", (long)AFMT_S16_LE) == -1)
! 	return;
! if (PyModule_AddIntConstant(m, "AFMT_S16_NE", (long)AFMT_S16_NE) == -1)
! 	return;
 
! return;
 }
--- 646,738 ----
 	PyModule_AddObject(m, "error", LinuxAudioError);
 
! /* Expose the audio format numbers -- essential! */
! _EXPORT_INT(m, AFMT_QUERY);
! _EXPORT_INT(m, AFMT_MU_LAW);
! _EXPORT_INT(m, AFMT_A_LAW);
! _EXPORT_INT(m, AFMT_IMA_ADPCM);
! _EXPORT_INT(m, AFMT_U8);
! _EXPORT_INT(m, AFMT_S16_LE);
! _EXPORT_INT(m, AFMT_S16_BE);
! _EXPORT_INT(m, AFMT_S8);
! _EXPORT_INT(m, AFMT_U16_LE);
! _EXPORT_INT(m, AFMT_U16_BE);
! _EXPORT_INT(m, AFMT_MPEG);
! _EXPORT_INT(m, AFMT_AC3);
! _EXPORT_INT(m, AFMT_S16_NE);
 
! /* Expose all the ioctl numbers for masochists who like to do this
! stuff directly. */
! _EXPORT_INT(m, SNDCTL_COPR_HALT);
! _EXPORT_INT(m, SNDCTL_COPR_LOAD);
! _EXPORT_INT(m, SNDCTL_COPR_RCODE);
! _EXPORT_INT(m, SNDCTL_COPR_RCVMSG);
! _EXPORT_INT(m, SNDCTL_COPR_RDATA);
! _EXPORT_INT(m, SNDCTL_COPR_RESET);
! _EXPORT_INT(m, SNDCTL_COPR_RUN);
! _EXPORT_INT(m, SNDCTL_COPR_SENDMSG);
! _EXPORT_INT(m, SNDCTL_COPR_WCODE);
! _EXPORT_INT(m, SNDCTL_COPR_WDATA);
! _EXPORT_INT(m, SNDCTL_DSP_BIND_CHANNEL);
! _EXPORT_INT(m, SNDCTL_DSP_CHANNELS);
! _EXPORT_INT(m, SNDCTL_DSP_GETBLKSIZE);
! _EXPORT_INT(m, SNDCTL_DSP_GETCAPS);
! _EXPORT_INT(m, SNDCTL_DSP_GETCHANNELMASK);
! _EXPORT_INT(m, SNDCTL_DSP_GETFMTS);
! _EXPORT_INT(m, SNDCTL_DSP_GETIPTR);
! _EXPORT_INT(m, SNDCTL_DSP_GETISPACE);
! _EXPORT_INT(m, SNDCTL_DSP_GETODELAY);
! _EXPORT_INT(m, SNDCTL_DSP_GETOPTR);
! _EXPORT_INT(m, SNDCTL_DSP_GETOSPACE);
! _EXPORT_INT(m, SNDCTL_DSP_GETSPDIF);
! _EXPORT_INT(m, SNDCTL_DSP_GETTRIGGER);
! _EXPORT_INT(m, SNDCTL_DSP_MAPINBUF);
! _EXPORT_INT(m, SNDCTL_DSP_MAPOUTBUF);
! _EXPORT_INT(m, SNDCTL_DSP_NONBLOCK);
! _EXPORT_INT(m, SNDCTL_DSP_POST);
! _EXPORT_INT(m, SNDCTL_DSP_PROFILE);
! _EXPORT_INT(m, SNDCTL_DSP_RESET);
! _EXPORT_INT(m, SNDCTL_DSP_SAMPLESIZE);
! _EXPORT_INT(m, SNDCTL_DSP_SETDUPLEX);
! _EXPORT_INT(m, SNDCTL_DSP_SETFMT);
! _EXPORT_INT(m, SNDCTL_DSP_SETFRAGMENT);
! _EXPORT_INT(m, SNDCTL_DSP_SETSPDIF);
! _EXPORT_INT(m, SNDCTL_DSP_SETSYNCRO);
! _EXPORT_INT(m, SNDCTL_DSP_SETTRIGGER);
! _EXPORT_INT(m, SNDCTL_DSP_SPEED);
! _EXPORT_INT(m, SNDCTL_DSP_STEREO);
! _EXPORT_INT(m, SNDCTL_DSP_SUBDIVIDE);
! _EXPORT_INT(m, SNDCTL_DSP_SYNC);
! _EXPORT_INT(m, SNDCTL_FM_4OP_ENABLE);
! _EXPORT_INT(m, SNDCTL_FM_LOAD_INSTR);
! _EXPORT_INT(m, SNDCTL_MIDI_INFO);
! _EXPORT_INT(m, SNDCTL_MIDI_MPUCMD);
! _EXPORT_INT(m, SNDCTL_MIDI_MPUMODE);
! _EXPORT_INT(m, SNDCTL_MIDI_PRETIME);
! _EXPORT_INT(m, SNDCTL_SEQ_CTRLRATE);
! _EXPORT_INT(m, SNDCTL_SEQ_GETINCOUNT);
! _EXPORT_INT(m, SNDCTL_SEQ_GETOUTCOUNT);
! _EXPORT_INT(m, SNDCTL_SEQ_GETTIME);
! _EXPORT_INT(m, SNDCTL_SEQ_NRMIDIS);
! _EXPORT_INT(m, SNDCTL_SEQ_NRSYNTHS);
! _EXPORT_INT(m, SNDCTL_SEQ_OUTOFBAND);
! _EXPORT_INT(m, SNDCTL_SEQ_PANIC);
! _EXPORT_INT(m, SNDCTL_SEQ_PERCMODE);
! _EXPORT_INT(m, SNDCTL_SEQ_RESET);
! _EXPORT_INT(m, SNDCTL_SEQ_RESETSAMPLES);
! _EXPORT_INT(m, SNDCTL_SEQ_SYNC);
! _EXPORT_INT(m, SNDCTL_SEQ_TESTMIDI);
! _EXPORT_INT(m, SNDCTL_SEQ_THRESHOLD);
! _EXPORT_INT(m, SNDCTL_SYNTH_CONTROL);
! _EXPORT_INT(m, SNDCTL_SYNTH_ID);
! _EXPORT_INT(m, SNDCTL_SYNTH_INFO);
! _EXPORT_INT(m, SNDCTL_SYNTH_MEMAVL);
! _EXPORT_INT(m, SNDCTL_SYNTH_REMOVESAMPLE);
! _EXPORT_INT(m, SNDCTL_TMR_CONTINUE);
! _EXPORT_INT(m, SNDCTL_TMR_METRONOME);
! _EXPORT_INT(m, SNDCTL_TMR_SELECT);
! _EXPORT_INT(m, SNDCTL_TMR_SOURCE);
! _EXPORT_INT(m, SNDCTL_TMR_START);
! _EXPORT_INT(m, SNDCTL_TMR_STOP);
! _EXPORT_INT(m, SNDCTL_TMR_TEMPO);
! _EXPORT_INT(m, SNDCTL_TMR_TIMEBASE);
 }

AltStyle によって変換されたページ (->オリジナル) /