mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
New files (not really...)
This commit is contained in:
parent
dd8cb446e1
commit
70f1418d35
10 changed files with 1056 additions and 0 deletions
49
Lib/irix5/FCNTL.py
Executable file
49
Lib/irix5/FCNTL.py
Executable file
|
@ -0,0 +1,49 @@
|
||||||
|
# These lines were generated by h2py.py (see demo/scripts)
|
||||||
|
# from <sys/fcntl.h> on Irix 4.0.2.
|
||||||
|
# The applicability on other systems is not clear.
|
||||||
|
|
||||||
|
FNDELAY = 0x04
|
||||||
|
FAPPEND = 0x08
|
||||||
|
FSYNC = 0x10
|
||||||
|
FRCACH = 0x20
|
||||||
|
FASYNC = 0x40
|
||||||
|
FNONBLK = 0x80
|
||||||
|
FCREAT = 0x100
|
||||||
|
FTRUNC = 0x200
|
||||||
|
FEXCL = 0x400
|
||||||
|
FNOCTTY = 0x800
|
||||||
|
O_RDONLY = 0
|
||||||
|
O_WRONLY = 1
|
||||||
|
O_RDWR = 2
|
||||||
|
O_ACCMODE = 0x3
|
||||||
|
O_NDELAY = FNDELAY
|
||||||
|
O_APPEND = FAPPEND
|
||||||
|
O_SYNC = FSYNC
|
||||||
|
O_NONBLOCK = FNONBLK
|
||||||
|
O_CREAT = FCREAT
|
||||||
|
O_TRUNC = FTRUNC
|
||||||
|
O_EXCL = FEXCL
|
||||||
|
O_NOCTTY = FNOCTTY
|
||||||
|
F_DUPFD = 0
|
||||||
|
F_GETFD = 1
|
||||||
|
F_SETFD = 2
|
||||||
|
F_GETFL = 3
|
||||||
|
F_SETFL = 4
|
||||||
|
F_GETLK = 5
|
||||||
|
F_SETLK = 6
|
||||||
|
F_SETLKW = 7
|
||||||
|
F_CHKFL = 8
|
||||||
|
F_ALLOCSP = 10
|
||||||
|
F_FREESP = 11
|
||||||
|
F_SETBSDLK = 12
|
||||||
|
F_SETBSDLKW = 13
|
||||||
|
F_RGETLK = 20
|
||||||
|
F_RSETLK = 21
|
||||||
|
F_RSETLKW = 22
|
||||||
|
F_GETOWN = 10
|
||||||
|
F_SETOWN = 11
|
||||||
|
F_RDLCK = 01
|
||||||
|
F_WRLCK = 02
|
||||||
|
F_UNLCK = 03
|
||||||
|
FD_CLOEXEC = 0x1
|
||||||
|
FD_NODUP_FORK = 0x2
|
59
Lib/irix5/IN.py
Executable file
59
Lib/irix5/IN.py
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
# Symbolic constants from <netinet/in.h>.
|
||||||
|
# These constants are SGI specific!
|
||||||
|
# See demo/scripts/h2py.py for a tool to help generate a version for
|
||||||
|
# your system.
|
||||||
|
|
||||||
|
IPPROTO_IP = 0
|
||||||
|
IPPROTO_ICMP = 1
|
||||||
|
IPPROTO_IGMP = 2
|
||||||
|
IPPROTO_GGP = 3
|
||||||
|
IPPROTO_TCP = 6
|
||||||
|
IPPROTO_EGP = 8
|
||||||
|
IPPROTO_PUP = 12
|
||||||
|
IPPROTO_UDP = 17
|
||||||
|
IPPROTO_IDP = 22
|
||||||
|
IPPROTO_TP = 29
|
||||||
|
IPPROTO_XTP = 36
|
||||||
|
IPPROTO_EON = 80
|
||||||
|
IPPROTO_RAW = 255
|
||||||
|
IPPROTO_MAX = 256
|
||||||
|
IPPORT_RESERVED = 1024
|
||||||
|
IPPORT_USERRESERVED = 5000
|
||||||
|
IN_CLASSA_NET = 0xff000000
|
||||||
|
IN_CLASSA_NSHIFT = 24
|
||||||
|
IN_CLASSA_HOST = 0x00ffffff
|
||||||
|
IN_CLASSA_MAX = 128
|
||||||
|
IN_CLASSB_NET = 0xffff0000
|
||||||
|
IN_CLASSB_NSHIFT = 16
|
||||||
|
IN_CLASSB_HOST = 0x0000ffff
|
||||||
|
IN_CLASSB_MAX = 65536
|
||||||
|
IN_CLASSC_NET = 0xffffff00
|
||||||
|
IN_CLASSC_NSHIFT = 8
|
||||||
|
IN_CLASSC_HOST = 0x000000ff
|
||||||
|
IN_CLASSD_NET = 0xf0000000
|
||||||
|
IN_CLASSD_NSHIFT = 28
|
||||||
|
IN_CLASSD_HOST = 0x0fffffff
|
||||||
|
INADDR_ANY = 0x00000000
|
||||||
|
INADDR_BROADCAST = 0xffffffff
|
||||||
|
INADDR_LOOPBACK = 0x7F000001
|
||||||
|
INADDR_UNSPEC_GROUP = 0xe0000000
|
||||||
|
INADDR_ALLHOSTS_GROUP = 0xe0000001
|
||||||
|
INADDR_MAX_LOCAL_GROUP = 0xe00000ff
|
||||||
|
INADDR_NONE = 0xffffffff
|
||||||
|
IN_LOOPBACKNET = 127
|
||||||
|
IP_OPTIONS = 1
|
||||||
|
IP_HDRINCL = 7
|
||||||
|
IP_TOS = 8
|
||||||
|
IP_TTL = 9
|
||||||
|
IP_RECVOPTS = 10
|
||||||
|
IP_RECVRETOPTS = 11
|
||||||
|
IP_RECVDSTADDR = 12
|
||||||
|
IP_RETOPTS = 13
|
||||||
|
IP_MULTICAST_IF = 2
|
||||||
|
IP_MULTICAST_TTL = 3
|
||||||
|
IP_MULTICAST_LOOP = 4
|
||||||
|
IP_ADD_MEMBERSHIP = 5
|
||||||
|
IP_DROP_MEMBERSHIP = 6
|
||||||
|
IP_DEFAULT_MULTICAST_TTL = 1
|
||||||
|
IP_DEFAULT_MULTICAST_LOOP = 1
|
||||||
|
IP_MAX_MEMBERSHIPS = 20
|
233
Lib/irix5/IOCTL.py
Executable file
233
Lib/irix5/IOCTL.py
Executable file
|
@ -0,0 +1,233 @@
|
||||||
|
# These lines were mostly generated by h2py.py (see demo/scripts)
|
||||||
|
# from <sys/ioctl.h>, <sys/termio.h> and <termios.h> on Irix 4.0.2
|
||||||
|
# with some manual changes to cope with imperfections in h2py.py.
|
||||||
|
# The applicability on other systems is not clear; especially non-SYSV
|
||||||
|
# systems may have a totally different set of ioctls.
|
||||||
|
|
||||||
|
IOCTYPE = 0xff00
|
||||||
|
LIOC = (ord('l')<<8)
|
||||||
|
LIOCGETP = (LIOC|1)
|
||||||
|
LIOCSETP = (LIOC|2)
|
||||||
|
LIOCGETS = (LIOC|5)
|
||||||
|
LIOCSETS = (LIOC|6)
|
||||||
|
DIOC = (ord('d')<<8)
|
||||||
|
DIOCGETC = (DIOC|1)
|
||||||
|
DIOCGETB = (DIOC|2)
|
||||||
|
DIOCSETE = (DIOC|3)
|
||||||
|
IOCPARM_MASK = 0x7f
|
||||||
|
IOC_VOID = 0x20000000
|
||||||
|
IOC_OUT = 0x40000000
|
||||||
|
IOC_IN = 0x80000000
|
||||||
|
IOC_INOUT = (IOC_IN|IOC_OUT)
|
||||||
|
int = 'i'
|
||||||
|
short = 'h'
|
||||||
|
long = 'l'
|
||||||
|
def sizeof(t): import struct; return struct.calcsize(t)
|
||||||
|
def _IO(x,y): return (IOC_VOID|((x)<<8)|y)
|
||||||
|
def _IOR(x,y,t): return (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)
|
||||||
|
def _IOW(x,y,t): return (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)
|
||||||
|
# this should be _IORW, but stdio got there first
|
||||||
|
def _IOWR(x,y,t): return (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)
|
||||||
|
FIONREAD = _IOR(ord('f'), 127, int)
|
||||||
|
FIONBIO = _IOW(ord('f'), 126, int)
|
||||||
|
FIOASYNC = _IOW(ord('f'), 125, int)
|
||||||
|
FIOSETOWN = _IOW(ord('f'), 124, int)
|
||||||
|
FIOGETOWN = _IOR(ord('f'), 123, int)
|
||||||
|
NCC = 8
|
||||||
|
NCC_PAD = 7
|
||||||
|
NCC_EXT = 16
|
||||||
|
NCCS = (NCC+NCC_PAD+NCC_EXT)
|
||||||
|
VINTR = 0
|
||||||
|
VQUIT = 1
|
||||||
|
VERASE = 2
|
||||||
|
VKILL = 3
|
||||||
|
VEOF = 4
|
||||||
|
VEOL = 5
|
||||||
|
VEOL2 = 6
|
||||||
|
VMIN = VEOF
|
||||||
|
VTIME = VEOL
|
||||||
|
VSWTCH = 7
|
||||||
|
VLNEXT = (NCC+NCC_PAD+0)
|
||||||
|
VWERASE = (NCC+NCC_PAD+1)
|
||||||
|
VRPRNT = (NCC+NCC_PAD+2)
|
||||||
|
VFLUSHO = (NCC+NCC_PAD+3)
|
||||||
|
VSTOP = (NCC+NCC_PAD+4)
|
||||||
|
VSTART = (NCC+NCC_PAD+5)
|
||||||
|
CNUL = '\0'
|
||||||
|
CDEL = '\377'
|
||||||
|
CESC = '\\'
|
||||||
|
CINTR = '\177'
|
||||||
|
CQUIT = '\34'
|
||||||
|
CBRK = '\377'
|
||||||
|
def CTRL(c): return ord(c) & 0x0f
|
||||||
|
CERASE = CTRL('H')
|
||||||
|
CKILL = CTRL('U')
|
||||||
|
CEOF = CTRL('d')
|
||||||
|
CEOT = CEOF
|
||||||
|
CSTART = CTRL('q')
|
||||||
|
CSTOP = CTRL('s')
|
||||||
|
CSWTCH = CTRL('z')
|
||||||
|
CSUSP = CSWTCH
|
||||||
|
CNSWTCH = 0
|
||||||
|
CLNEXT = CTRL('v')
|
||||||
|
CWERASE = CTRL('w')
|
||||||
|
CFLUSHO = CTRL('o')
|
||||||
|
CFLUSH = CFLUSHO
|
||||||
|
CRPRNT = CTRL('r')
|
||||||
|
CDSUSP = CTRL('y')
|
||||||
|
IGNBRK = 0000001
|
||||||
|
BRKINT = 0000002
|
||||||
|
IGNPAR = 0000004
|
||||||
|
PARMRK = 0000010
|
||||||
|
INPCK = 0000020
|
||||||
|
ISTRIP = 0000040
|
||||||
|
INLCR = 0000100
|
||||||
|
IGNCR = 0000200
|
||||||
|
ICRNL = 0000400
|
||||||
|
IUCLC = 0001000
|
||||||
|
IXON = 0002000
|
||||||
|
IXANY = 0004000
|
||||||
|
IXOFF = 0010000
|
||||||
|
IBLKMD = 0020000
|
||||||
|
OPOST = 0000001
|
||||||
|
OLCUC = 0000002
|
||||||
|
ONLCR = 0000004
|
||||||
|
OCRNL = 0000010
|
||||||
|
ONOCR = 0000020
|
||||||
|
ONLRET = 0000040
|
||||||
|
OFILL = 0000100
|
||||||
|
OFDEL = 0000200
|
||||||
|
NLDLY = 0000400
|
||||||
|
NL0 = 0
|
||||||
|
NL1 = 0000400
|
||||||
|
CRDLY = 0003000
|
||||||
|
CR0 = 0
|
||||||
|
CR1 = 0001000
|
||||||
|
CR2 = 0002000
|
||||||
|
CR3 = 0003000
|
||||||
|
TABDLY = 0014000
|
||||||
|
TAB0 = 0
|
||||||
|
TAB1 = 0004000
|
||||||
|
TAB2 = 0010000
|
||||||
|
TAB3 = 0014000
|
||||||
|
BSDLY = 0020000
|
||||||
|
BS0 = 0
|
||||||
|
BS1 = 0020000
|
||||||
|
VTDLY = 0040000
|
||||||
|
VT0 = 0
|
||||||
|
VT1 = 0040000
|
||||||
|
FFDLY = 0100000
|
||||||
|
FF0 = 0
|
||||||
|
FF1 = 0100000
|
||||||
|
CBAUD = 0000017
|
||||||
|
B0 = 0
|
||||||
|
B50 = 0000001
|
||||||
|
B75 = 0000002
|
||||||
|
B110 = 0000003
|
||||||
|
B134 = 0000004
|
||||||
|
B150 = 0000005
|
||||||
|
B200 = 0000006
|
||||||
|
B300 = 0000007
|
||||||
|
B600 = 0000010
|
||||||
|
B1200 = 0000011
|
||||||
|
B1800 = 0000012
|
||||||
|
B2400 = 0000013
|
||||||
|
B4800 = 0000014
|
||||||
|
B9600 = 0000015
|
||||||
|
B19200 = 0000016
|
||||||
|
EXTA = 0000016
|
||||||
|
B38400 = 0000017
|
||||||
|
EXTB = 0000017
|
||||||
|
CSIZE = 0000060
|
||||||
|
CS5 = 0
|
||||||
|
CS6 = 0000020
|
||||||
|
CS7 = 0000040
|
||||||
|
CS8 = 0000060
|
||||||
|
CSTOPB = 0000100
|
||||||
|
CREAD = 0000200
|
||||||
|
PARENB = 0000400
|
||||||
|
PARODD = 0001000
|
||||||
|
HUPCL = 0002000
|
||||||
|
CLOCAL = 0004000
|
||||||
|
LOBLK = 0040000
|
||||||
|
ISIG = 0000001
|
||||||
|
ICANON = 0000002
|
||||||
|
XCASE = 0000004
|
||||||
|
ECHO = 0000010
|
||||||
|
ECHOE = 0000020
|
||||||
|
ECHOK = 0000040
|
||||||
|
ECHONL = 0000100
|
||||||
|
NOFLSH = 0000200
|
||||||
|
IIEXTEN = 0000400
|
||||||
|
ITOSTOP = 0001000
|
||||||
|
SSPEED = B9600
|
||||||
|
IOCTYPE = 0xff00
|
||||||
|
TIOC = (ord('T')<<8)
|
||||||
|
oTCGETA = (TIOC|1)
|
||||||
|
oTCSETA = (TIOC|2)
|
||||||
|
oTCSETAW = (TIOC|3)
|
||||||
|
oTCSETAF = (TIOC|4)
|
||||||
|
TCSBRK = (TIOC|5)
|
||||||
|
TCXONC = (TIOC|6)
|
||||||
|
TCFLSH = (TIOC|7)
|
||||||
|
TCGETA = (TIOC|8)
|
||||||
|
TCSETA = (TIOC|9)
|
||||||
|
TCSETAW = (TIOC|10)
|
||||||
|
TCSETAF = (TIOC|11)
|
||||||
|
TIOCFLUSH = (TIOC|12)
|
||||||
|
TCDSET = (TIOC|32)
|
||||||
|
TCBLKMD = (TIOC|33)
|
||||||
|
TIOCPKT = (TIOC|112)
|
||||||
|
TIOCPKT_DATA = 0x00
|
||||||
|
TIOCPKT_FLUSHREAD = 0x01
|
||||||
|
TIOCPKT_FLUSHWRITE = 0x02
|
||||||
|
TIOCPKT_NOSTOP = 0x10
|
||||||
|
TIOCPKT_DOSTOP = 0x20
|
||||||
|
TIOCNOTTY = (TIOC|113)
|
||||||
|
TIOCSTI = (TIOC|114)
|
||||||
|
TIOCSPGRP = _IOW(ord('t'), 118, int)
|
||||||
|
TIOCGPGRP = _IOR(ord('t'), 119, int)
|
||||||
|
TIOCCONS = _IOW(ord('t'), 120, int)
|
||||||
|
struct_winsize = 'hhhh'
|
||||||
|
TIOCGWINSZ = _IOR(ord('t'), 104, struct_winsize)
|
||||||
|
TIOCSWINSZ = _IOW(ord('t'), 103, struct_winsize)
|
||||||
|
TFIOC = (ord('F')<<8)
|
||||||
|
oFIONREAD = (TFIOC|127)
|
||||||
|
LDIOC = (ord('D')<<8)
|
||||||
|
LDOPEN = (LDIOC|0)
|
||||||
|
LDCLOSE = (LDIOC|1)
|
||||||
|
LDCHG = (LDIOC|2)
|
||||||
|
LDGETT = (LDIOC|8)
|
||||||
|
LDSETT = (LDIOC|9)
|
||||||
|
TERM_NONE = 0
|
||||||
|
TERM_TEC = 1
|
||||||
|
TERM_V61 = 2
|
||||||
|
TERM_V10 = 3
|
||||||
|
TERM_TEX = 4
|
||||||
|
TERM_D40 = 5
|
||||||
|
TERM_H45 = 6
|
||||||
|
TERM_D42 = 7
|
||||||
|
TM_NONE = 0000
|
||||||
|
TM_SNL = 0001
|
||||||
|
TM_ANL = 0002
|
||||||
|
TM_LCF = 0004
|
||||||
|
TM_CECHO = 0010
|
||||||
|
TM_CINVIS = 0020
|
||||||
|
TM_SET = 0200
|
||||||
|
LDISC0 = 0
|
||||||
|
LDISC1 = 1
|
||||||
|
NTTYDISC = LDISC1
|
||||||
|
VSUSP = VSWTCH
|
||||||
|
TCSANOW = 0
|
||||||
|
TCSADRAIN = 1
|
||||||
|
TCSAFLUSH = 2
|
||||||
|
TCIFLUSH = 0
|
||||||
|
TCOFLUSH = 1
|
||||||
|
TCIOFLUSH = 2
|
||||||
|
TCOOFF = 0
|
||||||
|
TCOON = 1
|
||||||
|
TCIOFF = 2
|
||||||
|
TCION = 3
|
||||||
|
TO_STOP = LOBLK
|
||||||
|
IEXTEN = IIEXTEN
|
||||||
|
TOSTOP = ITOSTOP
|
77
Lib/irix5/SOCKET.py
Executable file
77
Lib/irix5/SOCKET.py
Executable file
|
@ -0,0 +1,77 @@
|
||||||
|
SOCK_STREAM = 1
|
||||||
|
SOCK_DGRAM = 2
|
||||||
|
SOCK_RAW = 3
|
||||||
|
SOCK_RDM = 4
|
||||||
|
SOCK_SEQPACKET = 5
|
||||||
|
SO_DEBUG = 0x0001
|
||||||
|
SO_ACCEPTCONN = 0x0002
|
||||||
|
SO_REUSEADDR = 0x0004
|
||||||
|
SO_KEEPALIVE = 0x0008
|
||||||
|
SO_DONTROUTE = 0x0010
|
||||||
|
SO_BROADCAST = 0x0020
|
||||||
|
SO_USELOOPBACK = 0x0040
|
||||||
|
SO_LINGER = 0x0080
|
||||||
|
SO_OOBINLINE = 0x0100
|
||||||
|
SO_REUSEPORT = 0x0200
|
||||||
|
SO_SNDBUF = 0x1001
|
||||||
|
SO_RCVBUF = 0x1002
|
||||||
|
SO_SNDLOWAT = 0x1003
|
||||||
|
SO_RCVLOWAT = 0x1004
|
||||||
|
SO_SNDTIMEO = 0x1005
|
||||||
|
SO_RCVTIMEO = 0x1006
|
||||||
|
SO_ERROR = 0x1007
|
||||||
|
SO_TYPE = 0x1008
|
||||||
|
SOL_SOCKET = 0xffff
|
||||||
|
AF_UNSPEC = 0
|
||||||
|
AF_UNIX = 1
|
||||||
|
AF_INET = 2
|
||||||
|
AF_IMPLINK = 3
|
||||||
|
AF_PUP = 4
|
||||||
|
AF_CHAOS = 5
|
||||||
|
AF_NS = 6
|
||||||
|
AF_ISO = 7
|
||||||
|
AF_OSI = AF_ISO
|
||||||
|
AF_ECMA = 8
|
||||||
|
AF_DATAKIT = 9
|
||||||
|
AF_CCITT = 10
|
||||||
|
AF_SNA = 11
|
||||||
|
AF_DECnet = 12
|
||||||
|
AF_DLI = 13
|
||||||
|
AF_LAT = 14
|
||||||
|
AF_HYLINK = 15
|
||||||
|
AF_APPLETALK = 16
|
||||||
|
AF_ROUTE = 17
|
||||||
|
AF_RAW = 18
|
||||||
|
AF_LINK = 18
|
||||||
|
pseudo_AF_XTP = 19
|
||||||
|
AF_MAX = 20
|
||||||
|
PF_UNSPEC = AF_UNSPEC
|
||||||
|
PF_UNIX = AF_UNIX
|
||||||
|
PF_INET = AF_INET
|
||||||
|
PF_IMPLINK = AF_IMPLINK
|
||||||
|
PF_PUP = AF_PUP
|
||||||
|
PF_CHAOS = AF_CHAOS
|
||||||
|
PF_NS = AF_NS
|
||||||
|
PF_ISO = AF_ISO
|
||||||
|
PF_OSI = AF_ISO
|
||||||
|
PF_ECMA = AF_ECMA
|
||||||
|
PF_DATAKIT = AF_DATAKIT
|
||||||
|
PF_CCITT = AF_CCITT
|
||||||
|
PF_SNA = AF_SNA
|
||||||
|
PF_DECnet = AF_DECnet
|
||||||
|
PF_DLI = AF_DLI
|
||||||
|
PF_LAT = AF_LAT
|
||||||
|
PF_HYLINK = AF_HYLINK
|
||||||
|
PF_APPLETALK = AF_APPLETALK
|
||||||
|
PF_ROUTE = AF_ROUTE
|
||||||
|
PF_LINK = AF_LINK
|
||||||
|
PF_XTP = pseudo_AF_XTP
|
||||||
|
PF_RAW = AF_RAW
|
||||||
|
PF_MAX = AF_MAX
|
||||||
|
SOMAXCONN = 5
|
||||||
|
MSG_OOB = 0x1
|
||||||
|
MSG_PEEK = 0x2
|
||||||
|
MSG_DONTROUTE = 0x4
|
||||||
|
MSG_BTAG = 0x40
|
||||||
|
MSG_ETAG = 0x80
|
||||||
|
MSG_MAXIOVLEN = 16
|
110
Lib/irix5/jpeg.py
Executable file
110
Lib/irix5/jpeg.py
Executable file
|
@ -0,0 +1,110 @@
|
||||||
|
# Implement 'jpeg' interface using SGI's compression library
|
||||||
|
|
||||||
|
# XXX Options 'smooth' and 'optimize' are ignored.
|
||||||
|
|
||||||
|
# XXX It appears that compressing grayscale images doesn't work right;
|
||||||
|
# XXX the resulting file causes weirdness.
|
||||||
|
|
||||||
|
error = 'jpeg.error' # Exception
|
||||||
|
|
||||||
|
options = {'quality': 75, 'optimize': 0, 'smooth': 0, 'forcegray': 0}
|
||||||
|
|
||||||
|
comp = None
|
||||||
|
decomp = None
|
||||||
|
|
||||||
|
def compress(imgdata, width, height, bytesperpixel):
|
||||||
|
global comp
|
||||||
|
import cl, CL
|
||||||
|
if comp is None: comp = cl.OpenCompressor(CL.JPEG)
|
||||||
|
if bytesperpixel == 1:
|
||||||
|
format = CL.GRAYSCALE
|
||||||
|
elif bytesperpixel == 4:
|
||||||
|
format = CL.RGBX
|
||||||
|
if options['forcegray']:
|
||||||
|
iformat = CL.GRAYSCALE
|
||||||
|
else:
|
||||||
|
iformat = CL.YUV
|
||||||
|
# XXX How to support 'optimize'?
|
||||||
|
params = [CL.IMAGE_WIDTH, width, CL.IMAGE_HEIGHT, height, \
|
||||||
|
CL.ORIGINAL_FORMAT, format, \
|
||||||
|
CL.ORIENTATION, CL.BOTTOM_UP, \
|
||||||
|
CL.QUALITY_FACTOR, options['quality'], \
|
||||||
|
CL.INTERNAL_FORMAT, iformat, \
|
||||||
|
]
|
||||||
|
comp.SetParams(params)
|
||||||
|
jpegdata = comp.Compress(1, imgdata)
|
||||||
|
return jpegdata
|
||||||
|
|
||||||
|
def decompress(jpegdata):
|
||||||
|
global decomp
|
||||||
|
import cl, CL
|
||||||
|
if decomp is None: decomp = cl.OpenDecompressor(CL.JPEG)
|
||||||
|
headersize = decomp.ReadHeader(jpegdata)
|
||||||
|
params = [CL.IMAGE_WIDTH, 0, CL.IMAGE_HEIGHT, 0, CL.INTERNAL_FORMAT, 0]
|
||||||
|
decomp.GetParams(params)
|
||||||
|
width, height, format = params[1], params[3], params[5]
|
||||||
|
if format == CL.GRAYSCALE or options['forcegray']:
|
||||||
|
format = CL.GRAYSCALE
|
||||||
|
bytesperpixel = 1
|
||||||
|
else:
|
||||||
|
format = CL.RGBX
|
||||||
|
bytesperpixel = 4
|
||||||
|
# XXX How to support 'smooth'?
|
||||||
|
params = [CL.ORIGINAL_FORMAT, format, \
|
||||||
|
CL.ORIENTATION, CL.BOTTOM_UP, \
|
||||||
|
CL.FRAME_BUFFER_SIZE, width*height*bytesperpixel]
|
||||||
|
decomp.SetParams(params)
|
||||||
|
imgdata = decomp.Decompress(1, jpegdata)
|
||||||
|
return imgdata, width, height, bytesperpixel
|
||||||
|
|
||||||
|
def setoption(name, value):
|
||||||
|
if type(value) <> type(0):
|
||||||
|
raise TypeError, 'jpeg.setoption: numeric options only'
|
||||||
|
if name == 'forcegrey':
|
||||||
|
name = 'forcegray'
|
||||||
|
if not options.has_key(name):
|
||||||
|
raise KeyError, 'jpeg.setoption: unknown option name'
|
||||||
|
options[name] = int(value)
|
||||||
|
|
||||||
|
def test():
|
||||||
|
import sys
|
||||||
|
if sys.argv[1:2] == ['-g']:
|
||||||
|
del sys.argv[1]
|
||||||
|
setoption('forcegray', 1)
|
||||||
|
if not sys.argv[1:]:
|
||||||
|
sys.argv.append('/usr/local/images/data/jpg/asterix.jpg')
|
||||||
|
for file in sys.argv[1:]:
|
||||||
|
show(file)
|
||||||
|
|
||||||
|
def show(file):
|
||||||
|
import gl, GL, DEVICE
|
||||||
|
jpegdata = open(file, 'r').read()
|
||||||
|
imgdata, width, height, bytesperpixel = decompress(jpegdata)
|
||||||
|
gl.foreground()
|
||||||
|
gl.prefsize(width, height)
|
||||||
|
win = gl.winopen(file)
|
||||||
|
if bytesperpixel == 1:
|
||||||
|
gl.cmode()
|
||||||
|
gl.pixmode(GL.PM_SIZE, 8)
|
||||||
|
gl.gconfig()
|
||||||
|
for i in range(256):
|
||||||
|
gl.mapcolor(i, i, i, i)
|
||||||
|
else:
|
||||||
|
gl.RGBmode()
|
||||||
|
gl.pixmode(GL.PM_SIZE, 32)
|
||||||
|
gl.gconfig()
|
||||||
|
gl.qdevice(DEVICE.REDRAW)
|
||||||
|
gl.qdevice(DEVICE.ESCKEY)
|
||||||
|
gl.qdevice(DEVICE.WINQUIT)
|
||||||
|
gl.qdevice(DEVICE.WINSHUT)
|
||||||
|
gl.lrectwrite(0, 0, width-1, height-1, imgdata)
|
||||||
|
while 1:
|
||||||
|
dev, val = gl.qread()
|
||||||
|
if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
|
||||||
|
break
|
||||||
|
if dev == DEVICE.REDRAW:
|
||||||
|
gl.lrectwrite(0, 0, width-1, height-1, imgdata)
|
||||||
|
gl.winclose(win)
|
||||||
|
# Now test the compression and write the result to a fixed filename
|
||||||
|
newjpegdata = compress(imgdata, width, height, bytesperpixel)
|
||||||
|
open('/tmp/j.jpg', 'w').write(newjpegdata)
|
49
Lib/plat-irix5/FCNTL.py
Executable file
49
Lib/plat-irix5/FCNTL.py
Executable file
|
@ -0,0 +1,49 @@
|
||||||
|
# These lines were generated by h2py.py (see demo/scripts)
|
||||||
|
# from <sys/fcntl.h> on Irix 4.0.2.
|
||||||
|
# The applicability on other systems is not clear.
|
||||||
|
|
||||||
|
FNDELAY = 0x04
|
||||||
|
FAPPEND = 0x08
|
||||||
|
FSYNC = 0x10
|
||||||
|
FRCACH = 0x20
|
||||||
|
FASYNC = 0x40
|
||||||
|
FNONBLK = 0x80
|
||||||
|
FCREAT = 0x100
|
||||||
|
FTRUNC = 0x200
|
||||||
|
FEXCL = 0x400
|
||||||
|
FNOCTTY = 0x800
|
||||||
|
O_RDONLY = 0
|
||||||
|
O_WRONLY = 1
|
||||||
|
O_RDWR = 2
|
||||||
|
O_ACCMODE = 0x3
|
||||||
|
O_NDELAY = FNDELAY
|
||||||
|
O_APPEND = FAPPEND
|
||||||
|
O_SYNC = FSYNC
|
||||||
|
O_NONBLOCK = FNONBLK
|
||||||
|
O_CREAT = FCREAT
|
||||||
|
O_TRUNC = FTRUNC
|
||||||
|
O_EXCL = FEXCL
|
||||||
|
O_NOCTTY = FNOCTTY
|
||||||
|
F_DUPFD = 0
|
||||||
|
F_GETFD = 1
|
||||||
|
F_SETFD = 2
|
||||||
|
F_GETFL = 3
|
||||||
|
F_SETFL = 4
|
||||||
|
F_GETLK = 5
|
||||||
|
F_SETLK = 6
|
||||||
|
F_SETLKW = 7
|
||||||
|
F_CHKFL = 8
|
||||||
|
F_ALLOCSP = 10
|
||||||
|
F_FREESP = 11
|
||||||
|
F_SETBSDLK = 12
|
||||||
|
F_SETBSDLKW = 13
|
||||||
|
F_RGETLK = 20
|
||||||
|
F_RSETLK = 21
|
||||||
|
F_RSETLKW = 22
|
||||||
|
F_GETOWN = 10
|
||||||
|
F_SETOWN = 11
|
||||||
|
F_RDLCK = 01
|
||||||
|
F_WRLCK = 02
|
||||||
|
F_UNLCK = 03
|
||||||
|
FD_CLOEXEC = 0x1
|
||||||
|
FD_NODUP_FORK = 0x2
|
59
Lib/plat-irix5/IN.py
Executable file
59
Lib/plat-irix5/IN.py
Executable file
|
@ -0,0 +1,59 @@
|
||||||
|
# Symbolic constants from <netinet/in.h>.
|
||||||
|
# These constants are SGI specific!
|
||||||
|
# See demo/scripts/h2py.py for a tool to help generate a version for
|
||||||
|
# your system.
|
||||||
|
|
||||||
|
IPPROTO_IP = 0
|
||||||
|
IPPROTO_ICMP = 1
|
||||||
|
IPPROTO_IGMP = 2
|
||||||
|
IPPROTO_GGP = 3
|
||||||
|
IPPROTO_TCP = 6
|
||||||
|
IPPROTO_EGP = 8
|
||||||
|
IPPROTO_PUP = 12
|
||||||
|
IPPROTO_UDP = 17
|
||||||
|
IPPROTO_IDP = 22
|
||||||
|
IPPROTO_TP = 29
|
||||||
|
IPPROTO_XTP = 36
|
||||||
|
IPPROTO_EON = 80
|
||||||
|
IPPROTO_RAW = 255
|
||||||
|
IPPROTO_MAX = 256
|
||||||
|
IPPORT_RESERVED = 1024
|
||||||
|
IPPORT_USERRESERVED = 5000
|
||||||
|
IN_CLASSA_NET = 0xff000000
|
||||||
|
IN_CLASSA_NSHIFT = 24
|
||||||
|
IN_CLASSA_HOST = 0x00ffffff
|
||||||
|
IN_CLASSA_MAX = 128
|
||||||
|
IN_CLASSB_NET = 0xffff0000
|
||||||
|
IN_CLASSB_NSHIFT = 16
|
||||||
|
IN_CLASSB_HOST = 0x0000ffff
|
||||||
|
IN_CLASSB_MAX = 65536
|
||||||
|
IN_CLASSC_NET = 0xffffff00
|
||||||
|
IN_CLASSC_NSHIFT = 8
|
||||||
|
IN_CLASSC_HOST = 0x000000ff
|
||||||
|
IN_CLASSD_NET = 0xf0000000
|
||||||
|
IN_CLASSD_NSHIFT = 28
|
||||||
|
IN_CLASSD_HOST = 0x0fffffff
|
||||||
|
INADDR_ANY = 0x00000000
|
||||||
|
INADDR_BROADCAST = 0xffffffff
|
||||||
|
INADDR_LOOPBACK = 0x7F000001
|
||||||
|
INADDR_UNSPEC_GROUP = 0xe0000000
|
||||||
|
INADDR_ALLHOSTS_GROUP = 0xe0000001
|
||||||
|
INADDR_MAX_LOCAL_GROUP = 0xe00000ff
|
||||||
|
INADDR_NONE = 0xffffffff
|
||||||
|
IN_LOOPBACKNET = 127
|
||||||
|
IP_OPTIONS = 1
|
||||||
|
IP_HDRINCL = 7
|
||||||
|
IP_TOS = 8
|
||||||
|
IP_TTL = 9
|
||||||
|
IP_RECVOPTS = 10
|
||||||
|
IP_RECVRETOPTS = 11
|
||||||
|
IP_RECVDSTADDR = 12
|
||||||
|
IP_RETOPTS = 13
|
||||||
|
IP_MULTICAST_IF = 2
|
||||||
|
IP_MULTICAST_TTL = 3
|
||||||
|
IP_MULTICAST_LOOP = 4
|
||||||
|
IP_ADD_MEMBERSHIP = 5
|
||||||
|
IP_DROP_MEMBERSHIP = 6
|
||||||
|
IP_DEFAULT_MULTICAST_TTL = 1
|
||||||
|
IP_DEFAULT_MULTICAST_LOOP = 1
|
||||||
|
IP_MAX_MEMBERSHIPS = 20
|
233
Lib/plat-irix5/IOCTL.py
Executable file
233
Lib/plat-irix5/IOCTL.py
Executable file
|
@ -0,0 +1,233 @@
|
||||||
|
# These lines were mostly generated by h2py.py (see demo/scripts)
|
||||||
|
# from <sys/ioctl.h>, <sys/termio.h> and <termios.h> on Irix 4.0.2
|
||||||
|
# with some manual changes to cope with imperfections in h2py.py.
|
||||||
|
# The applicability on other systems is not clear; especially non-SYSV
|
||||||
|
# systems may have a totally different set of ioctls.
|
||||||
|
|
||||||
|
IOCTYPE = 0xff00
|
||||||
|
LIOC = (ord('l')<<8)
|
||||||
|
LIOCGETP = (LIOC|1)
|
||||||
|
LIOCSETP = (LIOC|2)
|
||||||
|
LIOCGETS = (LIOC|5)
|
||||||
|
LIOCSETS = (LIOC|6)
|
||||||
|
DIOC = (ord('d')<<8)
|
||||||
|
DIOCGETC = (DIOC|1)
|
||||||
|
DIOCGETB = (DIOC|2)
|
||||||
|
DIOCSETE = (DIOC|3)
|
||||||
|
IOCPARM_MASK = 0x7f
|
||||||
|
IOC_VOID = 0x20000000
|
||||||
|
IOC_OUT = 0x40000000
|
||||||
|
IOC_IN = 0x80000000
|
||||||
|
IOC_INOUT = (IOC_IN|IOC_OUT)
|
||||||
|
int = 'i'
|
||||||
|
short = 'h'
|
||||||
|
long = 'l'
|
||||||
|
def sizeof(t): import struct; return struct.calcsize(t)
|
||||||
|
def _IO(x,y): return (IOC_VOID|((x)<<8)|y)
|
||||||
|
def _IOR(x,y,t): return (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)
|
||||||
|
def _IOW(x,y,t): return (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)
|
||||||
|
# this should be _IORW, but stdio got there first
|
||||||
|
def _IOWR(x,y,t): return (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|y)
|
||||||
|
FIONREAD = _IOR(ord('f'), 127, int)
|
||||||
|
FIONBIO = _IOW(ord('f'), 126, int)
|
||||||
|
FIOASYNC = _IOW(ord('f'), 125, int)
|
||||||
|
FIOSETOWN = _IOW(ord('f'), 124, int)
|
||||||
|
FIOGETOWN = _IOR(ord('f'), 123, int)
|
||||||
|
NCC = 8
|
||||||
|
NCC_PAD = 7
|
||||||
|
NCC_EXT = 16
|
||||||
|
NCCS = (NCC+NCC_PAD+NCC_EXT)
|
||||||
|
VINTR = 0
|
||||||
|
VQUIT = 1
|
||||||
|
VERASE = 2
|
||||||
|
VKILL = 3
|
||||||
|
VEOF = 4
|
||||||
|
VEOL = 5
|
||||||
|
VEOL2 = 6
|
||||||
|
VMIN = VEOF
|
||||||
|
VTIME = VEOL
|
||||||
|
VSWTCH = 7
|
||||||
|
VLNEXT = (NCC+NCC_PAD+0)
|
||||||
|
VWERASE = (NCC+NCC_PAD+1)
|
||||||
|
VRPRNT = (NCC+NCC_PAD+2)
|
||||||
|
VFLUSHO = (NCC+NCC_PAD+3)
|
||||||
|
VSTOP = (NCC+NCC_PAD+4)
|
||||||
|
VSTART = (NCC+NCC_PAD+5)
|
||||||
|
CNUL = '\0'
|
||||||
|
CDEL = '\377'
|
||||||
|
CESC = '\\'
|
||||||
|
CINTR = '\177'
|
||||||
|
CQUIT = '\34'
|
||||||
|
CBRK = '\377'
|
||||||
|
def CTRL(c): return ord(c) & 0x0f
|
||||||
|
CERASE = CTRL('H')
|
||||||
|
CKILL = CTRL('U')
|
||||||
|
CEOF = CTRL('d')
|
||||||
|
CEOT = CEOF
|
||||||
|
CSTART = CTRL('q')
|
||||||
|
CSTOP = CTRL('s')
|
||||||
|
CSWTCH = CTRL('z')
|
||||||
|
CSUSP = CSWTCH
|
||||||
|
CNSWTCH = 0
|
||||||
|
CLNEXT = CTRL('v')
|
||||||
|
CWERASE = CTRL('w')
|
||||||
|
CFLUSHO = CTRL('o')
|
||||||
|
CFLUSH = CFLUSHO
|
||||||
|
CRPRNT = CTRL('r')
|
||||||
|
CDSUSP = CTRL('y')
|
||||||
|
IGNBRK = 0000001
|
||||||
|
BRKINT = 0000002
|
||||||
|
IGNPAR = 0000004
|
||||||
|
PARMRK = 0000010
|
||||||
|
INPCK = 0000020
|
||||||
|
ISTRIP = 0000040
|
||||||
|
INLCR = 0000100
|
||||||
|
IGNCR = 0000200
|
||||||
|
ICRNL = 0000400
|
||||||
|
IUCLC = 0001000
|
||||||
|
IXON = 0002000
|
||||||
|
IXANY = 0004000
|
||||||
|
IXOFF = 0010000
|
||||||
|
IBLKMD = 0020000
|
||||||
|
OPOST = 0000001
|
||||||
|
OLCUC = 0000002
|
||||||
|
ONLCR = 0000004
|
||||||
|
OCRNL = 0000010
|
||||||
|
ONOCR = 0000020
|
||||||
|
ONLRET = 0000040
|
||||||
|
OFILL = 0000100
|
||||||
|
OFDEL = 0000200
|
||||||
|
NLDLY = 0000400
|
||||||
|
NL0 = 0
|
||||||
|
NL1 = 0000400
|
||||||
|
CRDLY = 0003000
|
||||||
|
CR0 = 0
|
||||||
|
CR1 = 0001000
|
||||||
|
CR2 = 0002000
|
||||||
|
CR3 = 0003000
|
||||||
|
TABDLY = 0014000
|
||||||
|
TAB0 = 0
|
||||||
|
TAB1 = 0004000
|
||||||
|
TAB2 = 0010000
|
||||||
|
TAB3 = 0014000
|
||||||
|
BSDLY = 0020000
|
||||||
|
BS0 = 0
|
||||||
|
BS1 = 0020000
|
||||||
|
VTDLY = 0040000
|
||||||
|
VT0 = 0
|
||||||
|
VT1 = 0040000
|
||||||
|
FFDLY = 0100000
|
||||||
|
FF0 = 0
|
||||||
|
FF1 = 0100000
|
||||||
|
CBAUD = 0000017
|
||||||
|
B0 = 0
|
||||||
|
B50 = 0000001
|
||||||
|
B75 = 0000002
|
||||||
|
B110 = 0000003
|
||||||
|
B134 = 0000004
|
||||||
|
B150 = 0000005
|
||||||
|
B200 = 0000006
|
||||||
|
B300 = 0000007
|
||||||
|
B600 = 0000010
|
||||||
|
B1200 = 0000011
|
||||||
|
B1800 = 0000012
|
||||||
|
B2400 = 0000013
|
||||||
|
B4800 = 0000014
|
||||||
|
B9600 = 0000015
|
||||||
|
B19200 = 0000016
|
||||||
|
EXTA = 0000016
|
||||||
|
B38400 = 0000017
|
||||||
|
EXTB = 0000017
|
||||||
|
CSIZE = 0000060
|
||||||
|
CS5 = 0
|
||||||
|
CS6 = 0000020
|
||||||
|
CS7 = 0000040
|
||||||
|
CS8 = 0000060
|
||||||
|
CSTOPB = 0000100
|
||||||
|
CREAD = 0000200
|
||||||
|
PARENB = 0000400
|
||||||
|
PARODD = 0001000
|
||||||
|
HUPCL = 0002000
|
||||||
|
CLOCAL = 0004000
|
||||||
|
LOBLK = 0040000
|
||||||
|
ISIG = 0000001
|
||||||
|
ICANON = 0000002
|
||||||
|
XCASE = 0000004
|
||||||
|
ECHO = 0000010
|
||||||
|
ECHOE = 0000020
|
||||||
|
ECHOK = 0000040
|
||||||
|
ECHONL = 0000100
|
||||||
|
NOFLSH = 0000200
|
||||||
|
IIEXTEN = 0000400
|
||||||
|
ITOSTOP = 0001000
|
||||||
|
SSPEED = B9600
|
||||||
|
IOCTYPE = 0xff00
|
||||||
|
TIOC = (ord('T')<<8)
|
||||||
|
oTCGETA = (TIOC|1)
|
||||||
|
oTCSETA = (TIOC|2)
|
||||||
|
oTCSETAW = (TIOC|3)
|
||||||
|
oTCSETAF = (TIOC|4)
|
||||||
|
TCSBRK = (TIOC|5)
|
||||||
|
TCXONC = (TIOC|6)
|
||||||
|
TCFLSH = (TIOC|7)
|
||||||
|
TCGETA = (TIOC|8)
|
||||||
|
TCSETA = (TIOC|9)
|
||||||
|
TCSETAW = (TIOC|10)
|
||||||
|
TCSETAF = (TIOC|11)
|
||||||
|
TIOCFLUSH = (TIOC|12)
|
||||||
|
TCDSET = (TIOC|32)
|
||||||
|
TCBLKMD = (TIOC|33)
|
||||||
|
TIOCPKT = (TIOC|112)
|
||||||
|
TIOCPKT_DATA = 0x00
|
||||||
|
TIOCPKT_FLUSHREAD = 0x01
|
||||||
|
TIOCPKT_FLUSHWRITE = 0x02
|
||||||
|
TIOCPKT_NOSTOP = 0x10
|
||||||
|
TIOCPKT_DOSTOP = 0x20
|
||||||
|
TIOCNOTTY = (TIOC|113)
|
||||||
|
TIOCSTI = (TIOC|114)
|
||||||
|
TIOCSPGRP = _IOW(ord('t'), 118, int)
|
||||||
|
TIOCGPGRP = _IOR(ord('t'), 119, int)
|
||||||
|
TIOCCONS = _IOW(ord('t'), 120, int)
|
||||||
|
struct_winsize = 'hhhh'
|
||||||
|
TIOCGWINSZ = _IOR(ord('t'), 104, struct_winsize)
|
||||||
|
TIOCSWINSZ = _IOW(ord('t'), 103, struct_winsize)
|
||||||
|
TFIOC = (ord('F')<<8)
|
||||||
|
oFIONREAD = (TFIOC|127)
|
||||||
|
LDIOC = (ord('D')<<8)
|
||||||
|
LDOPEN = (LDIOC|0)
|
||||||
|
LDCLOSE = (LDIOC|1)
|
||||||
|
LDCHG = (LDIOC|2)
|
||||||
|
LDGETT = (LDIOC|8)
|
||||||
|
LDSETT = (LDIOC|9)
|
||||||
|
TERM_NONE = 0
|
||||||
|
TERM_TEC = 1
|
||||||
|
TERM_V61 = 2
|
||||||
|
TERM_V10 = 3
|
||||||
|
TERM_TEX = 4
|
||||||
|
TERM_D40 = 5
|
||||||
|
TERM_H45 = 6
|
||||||
|
TERM_D42 = 7
|
||||||
|
TM_NONE = 0000
|
||||||
|
TM_SNL = 0001
|
||||||
|
TM_ANL = 0002
|
||||||
|
TM_LCF = 0004
|
||||||
|
TM_CECHO = 0010
|
||||||
|
TM_CINVIS = 0020
|
||||||
|
TM_SET = 0200
|
||||||
|
LDISC0 = 0
|
||||||
|
LDISC1 = 1
|
||||||
|
NTTYDISC = LDISC1
|
||||||
|
VSUSP = VSWTCH
|
||||||
|
TCSANOW = 0
|
||||||
|
TCSADRAIN = 1
|
||||||
|
TCSAFLUSH = 2
|
||||||
|
TCIFLUSH = 0
|
||||||
|
TCOFLUSH = 1
|
||||||
|
TCIOFLUSH = 2
|
||||||
|
TCOOFF = 0
|
||||||
|
TCOON = 1
|
||||||
|
TCIOFF = 2
|
||||||
|
TCION = 3
|
||||||
|
TO_STOP = LOBLK
|
||||||
|
IEXTEN = IIEXTEN
|
||||||
|
TOSTOP = ITOSTOP
|
77
Lib/plat-irix5/SOCKET.py
Executable file
77
Lib/plat-irix5/SOCKET.py
Executable file
|
@ -0,0 +1,77 @@
|
||||||
|
SOCK_STREAM = 1
|
||||||
|
SOCK_DGRAM = 2
|
||||||
|
SOCK_RAW = 3
|
||||||
|
SOCK_RDM = 4
|
||||||
|
SOCK_SEQPACKET = 5
|
||||||
|
SO_DEBUG = 0x0001
|
||||||
|
SO_ACCEPTCONN = 0x0002
|
||||||
|
SO_REUSEADDR = 0x0004
|
||||||
|
SO_KEEPALIVE = 0x0008
|
||||||
|
SO_DONTROUTE = 0x0010
|
||||||
|
SO_BROADCAST = 0x0020
|
||||||
|
SO_USELOOPBACK = 0x0040
|
||||||
|
SO_LINGER = 0x0080
|
||||||
|
SO_OOBINLINE = 0x0100
|
||||||
|
SO_REUSEPORT = 0x0200
|
||||||
|
SO_SNDBUF = 0x1001
|
||||||
|
SO_RCVBUF = 0x1002
|
||||||
|
SO_SNDLOWAT = 0x1003
|
||||||
|
SO_RCVLOWAT = 0x1004
|
||||||
|
SO_SNDTIMEO = 0x1005
|
||||||
|
SO_RCVTIMEO = 0x1006
|
||||||
|
SO_ERROR = 0x1007
|
||||||
|
SO_TYPE = 0x1008
|
||||||
|
SOL_SOCKET = 0xffff
|
||||||
|
AF_UNSPEC = 0
|
||||||
|
AF_UNIX = 1
|
||||||
|
AF_INET = 2
|
||||||
|
AF_IMPLINK = 3
|
||||||
|
AF_PUP = 4
|
||||||
|
AF_CHAOS = 5
|
||||||
|
AF_NS = 6
|
||||||
|
AF_ISO = 7
|
||||||
|
AF_OSI = AF_ISO
|
||||||
|
AF_ECMA = 8
|
||||||
|
AF_DATAKIT = 9
|
||||||
|
AF_CCITT = 10
|
||||||
|
AF_SNA = 11
|
||||||
|
AF_DECnet = 12
|
||||||
|
AF_DLI = 13
|
||||||
|
AF_LAT = 14
|
||||||
|
AF_HYLINK = 15
|
||||||
|
AF_APPLETALK = 16
|
||||||
|
AF_ROUTE = 17
|
||||||
|
AF_RAW = 18
|
||||||
|
AF_LINK = 18
|
||||||
|
pseudo_AF_XTP = 19
|
||||||
|
AF_MAX = 20
|
||||||
|
PF_UNSPEC = AF_UNSPEC
|
||||||
|
PF_UNIX = AF_UNIX
|
||||||
|
PF_INET = AF_INET
|
||||||
|
PF_IMPLINK = AF_IMPLINK
|
||||||
|
PF_PUP = AF_PUP
|
||||||
|
PF_CHAOS = AF_CHAOS
|
||||||
|
PF_NS = AF_NS
|
||||||
|
PF_ISO = AF_ISO
|
||||||
|
PF_OSI = AF_ISO
|
||||||
|
PF_ECMA = AF_ECMA
|
||||||
|
PF_DATAKIT = AF_DATAKIT
|
||||||
|
PF_CCITT = AF_CCITT
|
||||||
|
PF_SNA = AF_SNA
|
||||||
|
PF_DECnet = AF_DECnet
|
||||||
|
PF_DLI = AF_DLI
|
||||||
|
PF_LAT = AF_LAT
|
||||||
|
PF_HYLINK = AF_HYLINK
|
||||||
|
PF_APPLETALK = AF_APPLETALK
|
||||||
|
PF_ROUTE = AF_ROUTE
|
||||||
|
PF_LINK = AF_LINK
|
||||||
|
PF_XTP = pseudo_AF_XTP
|
||||||
|
PF_RAW = AF_RAW
|
||||||
|
PF_MAX = AF_MAX
|
||||||
|
SOMAXCONN = 5
|
||||||
|
MSG_OOB = 0x1
|
||||||
|
MSG_PEEK = 0x2
|
||||||
|
MSG_DONTROUTE = 0x4
|
||||||
|
MSG_BTAG = 0x40
|
||||||
|
MSG_ETAG = 0x80
|
||||||
|
MSG_MAXIOVLEN = 16
|
110
Lib/plat-irix5/jpeg.py
Executable file
110
Lib/plat-irix5/jpeg.py
Executable file
|
@ -0,0 +1,110 @@
|
||||||
|
# Implement 'jpeg' interface using SGI's compression library
|
||||||
|
|
||||||
|
# XXX Options 'smooth' and 'optimize' are ignored.
|
||||||
|
|
||||||
|
# XXX It appears that compressing grayscale images doesn't work right;
|
||||||
|
# XXX the resulting file causes weirdness.
|
||||||
|
|
||||||
|
error = 'jpeg.error' # Exception
|
||||||
|
|
||||||
|
options = {'quality': 75, 'optimize': 0, 'smooth': 0, 'forcegray': 0}
|
||||||
|
|
||||||
|
comp = None
|
||||||
|
decomp = None
|
||||||
|
|
||||||
|
def compress(imgdata, width, height, bytesperpixel):
|
||||||
|
global comp
|
||||||
|
import cl, CL
|
||||||
|
if comp is None: comp = cl.OpenCompressor(CL.JPEG)
|
||||||
|
if bytesperpixel == 1:
|
||||||
|
format = CL.GRAYSCALE
|
||||||
|
elif bytesperpixel == 4:
|
||||||
|
format = CL.RGBX
|
||||||
|
if options['forcegray']:
|
||||||
|
iformat = CL.GRAYSCALE
|
||||||
|
else:
|
||||||
|
iformat = CL.YUV
|
||||||
|
# XXX How to support 'optimize'?
|
||||||
|
params = [CL.IMAGE_WIDTH, width, CL.IMAGE_HEIGHT, height, \
|
||||||
|
CL.ORIGINAL_FORMAT, format, \
|
||||||
|
CL.ORIENTATION, CL.BOTTOM_UP, \
|
||||||
|
CL.QUALITY_FACTOR, options['quality'], \
|
||||||
|
CL.INTERNAL_FORMAT, iformat, \
|
||||||
|
]
|
||||||
|
comp.SetParams(params)
|
||||||
|
jpegdata = comp.Compress(1, imgdata)
|
||||||
|
return jpegdata
|
||||||
|
|
||||||
|
def decompress(jpegdata):
|
||||||
|
global decomp
|
||||||
|
import cl, CL
|
||||||
|
if decomp is None: decomp = cl.OpenDecompressor(CL.JPEG)
|
||||||
|
headersize = decomp.ReadHeader(jpegdata)
|
||||||
|
params = [CL.IMAGE_WIDTH, 0, CL.IMAGE_HEIGHT, 0, CL.INTERNAL_FORMAT, 0]
|
||||||
|
decomp.GetParams(params)
|
||||||
|
width, height, format = params[1], params[3], params[5]
|
||||||
|
if format == CL.GRAYSCALE or options['forcegray']:
|
||||||
|
format = CL.GRAYSCALE
|
||||||
|
bytesperpixel = 1
|
||||||
|
else:
|
||||||
|
format = CL.RGBX
|
||||||
|
bytesperpixel = 4
|
||||||
|
# XXX How to support 'smooth'?
|
||||||
|
params = [CL.ORIGINAL_FORMAT, format, \
|
||||||
|
CL.ORIENTATION, CL.BOTTOM_UP, \
|
||||||
|
CL.FRAME_BUFFER_SIZE, width*height*bytesperpixel]
|
||||||
|
decomp.SetParams(params)
|
||||||
|
imgdata = decomp.Decompress(1, jpegdata)
|
||||||
|
return imgdata, width, height, bytesperpixel
|
||||||
|
|
||||||
|
def setoption(name, value):
|
||||||
|
if type(value) <> type(0):
|
||||||
|
raise TypeError, 'jpeg.setoption: numeric options only'
|
||||||
|
if name == 'forcegrey':
|
||||||
|
name = 'forcegray'
|
||||||
|
if not options.has_key(name):
|
||||||
|
raise KeyError, 'jpeg.setoption: unknown option name'
|
||||||
|
options[name] = int(value)
|
||||||
|
|
||||||
|
def test():
|
||||||
|
import sys
|
||||||
|
if sys.argv[1:2] == ['-g']:
|
||||||
|
del sys.argv[1]
|
||||||
|
setoption('forcegray', 1)
|
||||||
|
if not sys.argv[1:]:
|
||||||
|
sys.argv.append('/usr/local/images/data/jpg/asterix.jpg')
|
||||||
|
for file in sys.argv[1:]:
|
||||||
|
show(file)
|
||||||
|
|
||||||
|
def show(file):
|
||||||
|
import gl, GL, DEVICE
|
||||||
|
jpegdata = open(file, 'r').read()
|
||||||
|
imgdata, width, height, bytesperpixel = decompress(jpegdata)
|
||||||
|
gl.foreground()
|
||||||
|
gl.prefsize(width, height)
|
||||||
|
win = gl.winopen(file)
|
||||||
|
if bytesperpixel == 1:
|
||||||
|
gl.cmode()
|
||||||
|
gl.pixmode(GL.PM_SIZE, 8)
|
||||||
|
gl.gconfig()
|
||||||
|
for i in range(256):
|
||||||
|
gl.mapcolor(i, i, i, i)
|
||||||
|
else:
|
||||||
|
gl.RGBmode()
|
||||||
|
gl.pixmode(GL.PM_SIZE, 32)
|
||||||
|
gl.gconfig()
|
||||||
|
gl.qdevice(DEVICE.REDRAW)
|
||||||
|
gl.qdevice(DEVICE.ESCKEY)
|
||||||
|
gl.qdevice(DEVICE.WINQUIT)
|
||||||
|
gl.qdevice(DEVICE.WINSHUT)
|
||||||
|
gl.lrectwrite(0, 0, width-1, height-1, imgdata)
|
||||||
|
while 1:
|
||||||
|
dev, val = gl.qread()
|
||||||
|
if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
|
||||||
|
break
|
||||||
|
if dev == DEVICE.REDRAW:
|
||||||
|
gl.lrectwrite(0, 0, width-1, height-1, imgdata)
|
||||||
|
gl.winclose(win)
|
||||||
|
# Now test the compression and write the result to a fixed filename
|
||||||
|
newjpegdata = compress(imgdata, width, height, bytesperpixel)
|
||||||
|
open('/tmp/j.jpg', 'w').write(newjpegdata)
|
Loading…
Add table
Add a link
Reference in a new issue