Skip to content

Commit ae24962

Browse files
authored
[3.10] bpo-46053: Fix OSS audio support on NetBSD (GH-30065). (GH-95477)
(cherry picked from commit 2e7e3c4) Co-authored-by: Thomas Klausner <[email protected]>
1 parent 6765a78 commit ae24962

File tree

3 files changed

+82
-0
lines changed

3 files changed

+82
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix OSS audio support on NetBSD.

Modules/ossaudiodev.c

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,16 +1212,36 @@ PyInit_ossaudiodev(void)
12121212

12131213
/* Expose all the ioctl numbers for masochists who like to do this
12141214
stuff directly. */
1215+
#ifdef SNDCTL_COPR_HALT
12151216
_EXPORT_INT(m, SNDCTL_COPR_HALT);
1217+
#endif
1218+
#ifdef SNDCTL_COPR_LOAD
12161219
_EXPORT_INT(m, SNDCTL_COPR_LOAD);
1220+
#endif
1221+
#ifdef SNDCTL_COPR_RCODE
12171222
_EXPORT_INT(m, SNDCTL_COPR_RCODE);
1223+
#endif
1224+
#ifdef SNDCTL_COPR_RCVMSG
12181225
_EXPORT_INT(m, SNDCTL_COPR_RCVMSG);
1226+
#endif
1227+
#ifdef SNDCTL_COPR_RDATA
12191228
_EXPORT_INT(m, SNDCTL_COPR_RDATA);
1229+
#endif
1230+
#ifdef SNDCTL_COPR_RESET
12201231
_EXPORT_INT(m, SNDCTL_COPR_RESET);
1232+
#endif
1233+
#ifdef SNDCTL_COPR_RUN
12211234
_EXPORT_INT(m, SNDCTL_COPR_RUN);
1235+
#endif
1236+
#ifdef SNDCTL_COPR_SENDMSG
12221237
_EXPORT_INT(m, SNDCTL_COPR_SENDMSG);
1238+
#endif
1239+
#ifdef SNDCTL_COPR_WCODE
12231240
_EXPORT_INT(m, SNDCTL_COPR_WCODE);
1241+
#endif
1242+
#ifdef SNDCTL_COPR_WDATA
12241243
_EXPORT_INT(m, SNDCTL_COPR_WDATA);
1244+
#endif
12251245
#ifdef SNDCTL_DSP_BIND_CHANNEL
12261246
_EXPORT_INT(m, SNDCTL_DSP_BIND_CHANNEL);
12271247
#endif
@@ -1268,46 +1288,104 @@ PyInit_ossaudiodev(void)
12681288
_EXPORT_INT(m, SNDCTL_DSP_STEREO);
12691289
_EXPORT_INT(m, SNDCTL_DSP_SUBDIVIDE);
12701290
_EXPORT_INT(m, SNDCTL_DSP_SYNC);
1291+
#ifdef SNDCTL_FM_4OP_ENABLE
12711292
_EXPORT_INT(m, SNDCTL_FM_4OP_ENABLE);
1293+
#endif
1294+
#ifdef SNDCTL_FM_LOAD_INSTR
12721295
_EXPORT_INT(m, SNDCTL_FM_LOAD_INSTR);
1296+
#endif
1297+
#ifdef SNDCTL_MIDI_INFO
12731298
_EXPORT_INT(m, SNDCTL_MIDI_INFO);
1299+
#endif
1300+
#ifdef SNDCTL_MIDI_MPUCMD
12741301
_EXPORT_INT(m, SNDCTL_MIDI_MPUCMD);
1302+
#endif
1303+
#ifdef SNDCTL_MIDI_MPUMODE
12751304
_EXPORT_INT(m, SNDCTL_MIDI_MPUMODE);
1305+
#endif
1306+
#ifdef SNDCTL_MIDI_PRETIME
12761307
_EXPORT_INT(m, SNDCTL_MIDI_PRETIME);
1308+
#endif
1309+
#ifdef SNDCTL_SEQ_CTRLRATE
12771310
_EXPORT_INT(m, SNDCTL_SEQ_CTRLRATE);
1311+
#endif
1312+
#ifdef SNDCTL_SEQ_GETINCOUNT
12781313
_EXPORT_INT(m, SNDCTL_SEQ_GETINCOUNT);
1314+
#endif
1315+
#ifdef SNDCTL_SEQ_GETOUTCOUNT
12791316
_EXPORT_INT(m, SNDCTL_SEQ_GETOUTCOUNT);
1317+
#endif
12801318
#ifdef SNDCTL_SEQ_GETTIME
12811319
_EXPORT_INT(m, SNDCTL_SEQ_GETTIME);
12821320
#endif
1321+
#ifdef SNDCTL_SEQ_NRMIDIS
12831322
_EXPORT_INT(m, SNDCTL_SEQ_NRMIDIS);
1323+
#endif
1324+
#ifdef SNDCTL_SEQ_NRSYNTHS
12841325
_EXPORT_INT(m, SNDCTL_SEQ_NRSYNTHS);
1326+
#endif
1327+
#ifdef SNDCTL_SEQ_OUTOFBAND
12851328
_EXPORT_INT(m, SNDCTL_SEQ_OUTOFBAND);
1329+
#endif
1330+
#ifdef SNDCTL_SEQ_PANIC
12861331
_EXPORT_INT(m, SNDCTL_SEQ_PANIC);
1332+
#endif
1333+
#ifdef SNDCTL_SEQ_PERCMODE
12871334
_EXPORT_INT(m, SNDCTL_SEQ_PERCMODE);
1335+
#endif
1336+
#ifdef SNDCTL_SEQ_RESET
12881337
_EXPORT_INT(m, SNDCTL_SEQ_RESET);
1338+
#endif
1339+
#ifdef SNDCTL_SEQ_RESETSAMPLES
12891340
_EXPORT_INT(m, SNDCTL_SEQ_RESETSAMPLES);
1341+
#endif
1342+
#ifdef SNDCTL_SEQ_SYNC
12901343
_EXPORT_INT(m, SNDCTL_SEQ_SYNC);
1344+
#endif
1345+
#ifdef SNDCTL_SEQ_TESTMIDI
12911346
_EXPORT_INT(m, SNDCTL_SEQ_TESTMIDI);
1347+
#endif
1348+
#ifdef SNDCTL_SEQ_THRESHOLD
12921349
_EXPORT_INT(m, SNDCTL_SEQ_THRESHOLD);
1350+
#endif
12931351
#ifdef SNDCTL_SYNTH_CONTROL
12941352
_EXPORT_INT(m, SNDCTL_SYNTH_CONTROL);
12951353
#endif
12961354
#ifdef SNDCTL_SYNTH_ID
12971355
_EXPORT_INT(m, SNDCTL_SYNTH_ID);
12981356
#endif
1357+
#ifdef SNDCTL_SYNTH_INFO
12991358
_EXPORT_INT(m, SNDCTL_SYNTH_INFO);
1359+
#endif
1360+
#ifdef SNDCTL_SYNTH_MEMAVL
13001361
_EXPORT_INT(m, SNDCTL_SYNTH_MEMAVL);
1362+
#endif
13011363
#ifdef SNDCTL_SYNTH_REMOVESAMPLE
13021364
_EXPORT_INT(m, SNDCTL_SYNTH_REMOVESAMPLE);
13031365
#endif
1366+
#ifdef SNDCTL_TMR_CONTINUE
13041367
_EXPORT_INT(m, SNDCTL_TMR_CONTINUE);
1368+
#endif
1369+
#ifdef SNDCTL_TMR_METRONOME
13051370
_EXPORT_INT(m, SNDCTL_TMR_METRONOME);
1371+
#endif
1372+
#ifdef SNDCTL_TMR_SELECT
13061373
_EXPORT_INT(m, SNDCTL_TMR_SELECT);
1374+
#endif
1375+
#ifdef SNDCTL_TMR_SOURCE
13071376
_EXPORT_INT(m, SNDCTL_TMR_SOURCE);
1377+
#endif
1378+
#ifdef SNDCTL_TMR_START
13081379
_EXPORT_INT(m, SNDCTL_TMR_START);
1380+
#endif
1381+
#ifdef SNDCTL_TMR_STOP
13091382
_EXPORT_INT(m, SNDCTL_TMR_STOP);
1383+
#endif
1384+
#ifdef SNDCTL_TMR_TEMPO
13101385
_EXPORT_INT(m, SNDCTL_TMR_TEMPO);
1386+
#endif
1387+
#ifdef SNDCTL_TMR_TIMEBASE
13111388
_EXPORT_INT(m, SNDCTL_TMR_TIMEBASE);
1389+
#endif
13121390
return m;
13131391
}

setup.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1663,6 +1663,9 @@ def detect_platform_specific_exts(self):
16631663
# Platform-specific libraries
16641664
if HOST_PLATFORM.startswith(('linux', 'freebsd', 'gnukfreebsd')):
16651665
self.add(Extension('ossaudiodev', ['ossaudiodev.c']))
1666+
elif HOST_PLATFORM.startswith(('netbsd')):
1667+
self.add(Extension('ossaudiodev', ['ossaudiodev.c'],
1668+
libraries=["ossaudio"]))
16661669
elif not AIX:
16671670
self.missing.append('ossaudiodev')
16681671

0 commit comments

Comments
 (0)