Message146027
For Freevo: yes, it uses the CDROM module. But this module doesn't look to be perfect because Freevo has a fallback for FreeBSD and another for... Linux (because of missing CDROM.CDROM_DRIVE_STATUS?):
-----------------------------
try:
from CDROM import *
# test if CDROM_DRIVE_STATUS is there
# (for some strange reason, this is missing sometimes)
CDROM_DRIVE_STATUS
except:
if os.uname()[0] == 'FreeBSD':
# FreeBSD ioctls - there is no CDROM.py...
CDIOCEJECT = 0x20006318
CDIOCCLOSE = 0x2000631c
CDIOREADTOCENTRYS = 0xc0086305
CD_LBA_FORMAT = 1
CD_MSF_FORMAT = 2
CDS_NO_DISC = 1
CDS_DISC_OK = 4
else:
# see linux/cdrom.h and Documentation/ioctl/cdrom.txt
CDROMEJECT = 0x5309
CDROM_GET_CAPABILITY = 0x5331
CDROMCLOSETRAY = 0x5319 # pendant of CDROMEJECT
CDROM_SET_OPTIONS = 0x5320 # Set behavior options
CDROM_CLEAR_OPTIONS = 0x5321 # Clear behavior options
CDROM_SELECT_SPEED = 0x5322 # Set the CD-ROM speed
CDROM_SELECT_DISC = 0x5323 # Select disc (for juke-boxes)
CDROM_MEDIA_CHANGED = 0x5325 # Check is media changed
CDROM_DRIVE_STATUS = 0x5326 # Get tray position, etc.
CDROM_DISC_STATUS = 0x5327 # Get disc type, etc.
CDROM_CHANGER_NSLOTS = 0x5328 # Get number of slots
CDROM_LOCKDOOR = 0x5329 # lock or unlock door
CDROM_DEBUG = 0x5330 # Turn debug messages on/off
CDROM_GET_CAPABILITY = 0x5331 # get capabilities
# CDROM_DRIVE_STATUS
CDS_NO_INFO = 0
CDS_NO_DISC = 1
CDS_TRAY_OPEN = 2
CDS_DRIVE_NOT_READY = 3
CDS_DISC_OK = 4
# capability flags
CDC_CLOSE_TRAY = 0x1 # caddy systems _can't_ close
CDC_OPEN_TRAY = 0x2 # but _can_ eject.
CDC_LOCK = 0x4 # disable manual eject
CDC_SELECT_SPEED = 0x8 # programmable speed
CDC_SELECT_DISC = 0x10 # select disc from juke-box
CDC_MO_DRIVE = 0x40000
CDC_MRW = 0x80000
CDC_MRW_W = 0x100000
CDC_RAM = 0x200000
# CDROM_DISC_STATUS
CDS_AUDIO = 100
CDS_DATA_1 = 101
CDS_DATA_2 = 102
CDS_XA_2_1 = 103
CDS_XA_2_2 = 104
CDS_MIXED = 105
-----------------------------
So Freevo does stil work if we remove the CDROM module. I still think that the Python standard library is not the right place for such constants. A third party module providing an API would be a better idea.
socket.SO_PEERCRED has been added to Python 3.3 by c64216addd7f:
"Add support for the send/recvmsg API to the socket module. Patch by David Watson and Heiko Wundram. (Closes #6560)"
socket.SO_PEERCRED is not listed in socket documentation.
socket has no SO_BINDTODEVICE constant yet.
RTLD_NOW, RTLD_GLOBAL and RTLD_LAZY will added to the posix module if my issue #13226 is accepted. |
|
Date |
User |
Action |
Args |
2011-10-20 16:43:39 | vstinner | set | recipients:
+ vstinner, lemburg, loewis, doko, amaury.forgeotdarc, pitrou, jwilk, ned.deily, djc, ezio.melotti, eric.araujo, rpetrov, Arfrever, r.david.murray, Neurogeek, neologix, rosslagerwall, python-dev, Ramchandra Apte |
2011-10-20 16:43:39 | vstinner | set | messageid: <1319129019.86.0.614119292137.issue12619@psf.upfronthosting.co.za> |
2011-10-20 16:43:39 | vstinner | link | issue12619 messages |
2011-10-20 16:43:38 | vstinner | create | |
|