Irix 6 specific files -- thanks Sjoerd!
This commit is contained in:
parent
6ad8d13fe2
commit
1ce7c6fde8
|
@ -0,0 +1,61 @@
|
|||
RATE_48000 = 48000
|
||||
RATE_44100 = 44100
|
||||
RATE_32000 = 32000
|
||||
RATE_22050 = 22050
|
||||
RATE_16000 = 16000
|
||||
RATE_11025 = 11025
|
||||
RATE_8000 = 8000
|
||||
|
||||
SAMPFMT_TWOSCOMP= 1
|
||||
SAMPFMT_FLOAT = 32
|
||||
SAMPFMT_DOUBLE = 64
|
||||
|
||||
SAMPLE_8 = 1
|
||||
SAMPLE_16 = 2
|
||||
# SAMPLE_24 is the low 24 bits of a long, sign extended to 32 bits
|
||||
SAMPLE_24 = 4
|
||||
|
||||
MONO = 1
|
||||
STEREO = 2
|
||||
QUADRO = 4 # 4CHANNEL is not a legal Python name
|
||||
|
||||
INPUT_LINE = 0
|
||||
INPUT_MIC = 1
|
||||
INPUT_DIGITAL = 2
|
||||
|
||||
MONITOR_OFF = 0
|
||||
MONITOR_ON = 1
|
||||
|
||||
ERROR_NUMBER = 0
|
||||
ERROR_TYPE = 1
|
||||
ERROR_LOCATION_LSP = 2
|
||||
ERROR_LOCATION_MSP = 3
|
||||
ERROR_LENGTH = 4
|
||||
|
||||
ERROR_INPUT_UNDERFLOW = 0
|
||||
ERROR_OUTPUT_OVERFLOW = 1
|
||||
|
||||
# These seem to be not supported anymore:
|
||||
##HOLD, RELEASE = 0, 1
|
||||
##ATTAIL, ATHEAD, ATMARK, ATTIME = 0, 1, 2, 3
|
||||
|
||||
DEFAULT_DEVICE = 1
|
||||
|
||||
INPUT_SOURCE = 0
|
||||
LEFT_INPUT_ATTEN = 1
|
||||
RIGHT_INPUT_ATTEN = 2
|
||||
INPUT_RATE = 3
|
||||
OUTPUT_RATE = 4
|
||||
LEFT_SPEAKER_GAIN = 5
|
||||
RIGHT_SPEAKER_GAIN = 6
|
||||
INPUT_COUNT = 7
|
||||
OUTPUT_COUNT = 8
|
||||
UNUSED_COUNT = 9
|
||||
SYNC_INPUT_TO_AES = 10
|
||||
SYNC_OUTPUT_TO_AES = 11
|
||||
MONITOR_CTL = 12
|
||||
LEFT_MONITOR_ATTEN = 13
|
||||
RIGHT_MONITOR_ATTEN = 14
|
||||
|
||||
ENUM_VALUE = 0 # only certain values are valid
|
||||
RANGE_VALUE = 1 # any value in range is valid
|
|
@ -0,0 +1,54 @@
|
|||
#
|
||||
# Copyright (c) 1992 Aware, Inc. All rights reserved.
|
||||
#
|
||||
# Copyright Unpublished, Aware Inc. All Rights Reserved.
|
||||
# This software contains proprietary and confidential
|
||||
# information of Aware, Inc. Use, disclosure or
|
||||
# reproduction is prohibited without the prior express
|
||||
# written consent of Aware, Inc.
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# awareAudio.h - Aware Compression Library Parameter Header
|
||||
#
|
||||
# 01/21/92 Original Version by Brian Knittel and Jonathon Devine
|
||||
#
|
||||
|
||||
import CL
|
||||
|
||||
# Aware Audio Specific Parameters - For both MPEG Audio and Multirate
|
||||
CL.CHANNEL_POLICY = CL.NUMBER_OF_PARAMS + 0
|
||||
CL.NOISE_MARGIN = CL.NUMBER_OF_PARAMS + 1
|
||||
CL.BITRATE_POLICY = CL.NUMBER_OF_PARAMS + 2
|
||||
|
||||
# Additional parameters for MPEG Audio
|
||||
CL.BITRATE_TARGET = CL.NUMBER_OF_PARAMS + 3
|
||||
CL.LAYER = CL.NUMBER_OF_PARAMS + 4
|
||||
|
||||
# read/write for compression configuration
|
||||
# read for state during compression/decompression
|
||||
|
||||
#
|
||||
# Channel Policy
|
||||
#
|
||||
AWCMP_STEREO = 1
|
||||
AWCMP_JOINT_STEREO = 2
|
||||
AWCMP_INDEPENDENT = 3
|
||||
|
||||
#
|
||||
# read/write for compression configuration,
|
||||
# read for state during compression
|
||||
#
|
||||
#
|
||||
# Bit-rate Policy
|
||||
#
|
||||
AWCMP_FIXED_RATE = 1
|
||||
AWCMP_CONST_QUAL = 2
|
||||
AWCMP_LOSSLESS = 4
|
||||
|
||||
#
|
||||
# Layer values
|
||||
#
|
||||
AWCMP_MPEG_LAYER_I = 1
|
||||
AWCMP_MPEG_LAYER_II = 2
|
|
@ -0,0 +1,34 @@
|
|||
ERROR = 0
|
||||
NODISC = 1
|
||||
READY = 2
|
||||
PLAYING = 3
|
||||
PAUSED = 4
|
||||
STILL = 5
|
||||
|
||||
AUDIO = 0
|
||||
PNUM = 1
|
||||
INDEX = 2
|
||||
PTIME = 3
|
||||
ATIME = 4
|
||||
CATALOG = 5
|
||||
IDENT = 6
|
||||
CONTROL = 7
|
||||
|
||||
CDDA_DATASIZE = 2352
|
||||
|
||||
##CDDA_SUBCODESIZE = (sizeof(struct subcodeQ))
|
||||
##CDDA_BLOCKSIZE = (sizeof(struct cdframe))
|
||||
##CDDA_NUMSAMPLES = (CDDA_DATASIZE/2)
|
||||
##
|
||||
##CDQ_PREEMP_MASK = 0xd
|
||||
##CDQ_COPY_MASK = 0xb
|
||||
##CDQ_DDATA_MASK = 0xd
|
||||
##CDQ_BROADCAST_MASK = 0x8
|
||||
##CDQ_PREEMPHASIS = 0x1
|
||||
##CDQ_COPY_PERMITTED = 0x2
|
||||
##CDQ_DIGITAL_DATA = 0x4
|
||||
##CDQ_BROADCAST_USE = 0x8
|
||||
##
|
||||
##CDQ_MODE1 = 0x1
|
||||
##CDQ_MODE2 = 0x2
|
||||
##CDQ_MODE3 = 0x3
|
|
@ -0,0 +1,24 @@
|
|||
# Backward compatible module CL.
|
||||
# All relevant symbols are now defined in the module cl.
|
||||
try:
|
||||
from cl import *
|
||||
except ImportError:
|
||||
from CL_old import *
|
||||
else:
|
||||
del CompressImage
|
||||
del DecompressImage
|
||||
del GetAlgorithmName
|
||||
del OpenCompressor
|
||||
del OpenDecompressor
|
||||
del QueryAlgorithms
|
||||
del QueryMaxHeaderSize
|
||||
del QueryScheme
|
||||
del QuerySchemeFromName
|
||||
del SetDefault
|
||||
del SetMax
|
||||
del SetMin
|
||||
try:
|
||||
del cvt_type
|
||||
except NameError:
|
||||
pass
|
||||
del error
|
|
@ -0,0 +1,400 @@
|
|||
NULLDEV = 0
|
||||
BUTOFFSET = 1
|
||||
VALOFFSET = 256
|
||||
PSEUDOFFSET = 512
|
||||
BUT2OFFSET = 3840
|
||||
TIMOFFSET = 515
|
||||
XKBDOFFSET = 143
|
||||
BUTCOUNT = 255
|
||||
VALCOUNT = 256
|
||||
TIMCOUNT = 4
|
||||
XKBDCOUNT = 28
|
||||
USERBUTOFFSET = 4096
|
||||
USERVALOFFSET = 12288
|
||||
USERPSEUDOFFSET = 16384
|
||||
BUT0 = 1
|
||||
BUT1 = 2
|
||||
BUT2 = 3
|
||||
BUT3 = 4
|
||||
BUT4 = 5
|
||||
BUT5 = 6
|
||||
BUT6 = 7
|
||||
BUT7 = 8
|
||||
BUT8 = 9
|
||||
BUT9 = 10
|
||||
BUT10 = 11
|
||||
BUT11 = 12
|
||||
BUT12 = 13
|
||||
BUT13 = 14
|
||||
BUT14 = 15
|
||||
BUT15 = 16
|
||||
BUT16 = 17
|
||||
BUT17 = 18
|
||||
BUT18 = 19
|
||||
BUT19 = 20
|
||||
BUT20 = 21
|
||||
BUT21 = 22
|
||||
BUT22 = 23
|
||||
BUT23 = 24
|
||||
BUT24 = 25
|
||||
BUT25 = 26
|
||||
BUT26 = 27
|
||||
BUT27 = 28
|
||||
BUT28 = 29
|
||||
BUT29 = 30
|
||||
BUT30 = 31
|
||||
BUT31 = 32
|
||||
BUT32 = 33
|
||||
BUT33 = 34
|
||||
BUT34 = 35
|
||||
BUT35 = 36
|
||||
BUT36 = 37
|
||||
BUT37 = 38
|
||||
BUT38 = 39
|
||||
BUT39 = 40
|
||||
BUT40 = 41
|
||||
BUT41 = 42
|
||||
BUT42 = 43
|
||||
BUT43 = 44
|
||||
BUT44 = 45
|
||||
BUT45 = 46
|
||||
BUT46 = 47
|
||||
BUT47 = 48
|
||||
BUT48 = 49
|
||||
BUT49 = 50
|
||||
BUT50 = 51
|
||||
BUT51 = 52
|
||||
BUT52 = 53
|
||||
BUT53 = 54
|
||||
BUT54 = 55
|
||||
BUT55 = 56
|
||||
BUT56 = 57
|
||||
BUT57 = 58
|
||||
BUT58 = 59
|
||||
BUT59 = 60
|
||||
BUT60 = 61
|
||||
BUT61 = 62
|
||||
BUT62 = 63
|
||||
BUT63 = 64
|
||||
BUT64 = 65
|
||||
BUT65 = 66
|
||||
BUT66 = 67
|
||||
BUT67 = 68
|
||||
BUT68 = 69
|
||||
BUT69 = 70
|
||||
BUT70 = 71
|
||||
BUT71 = 72
|
||||
BUT72 = 73
|
||||
BUT73 = 74
|
||||
BUT74 = 75
|
||||
BUT75 = 76
|
||||
BUT76 = 77
|
||||
BUT77 = 78
|
||||
BUT78 = 79
|
||||
BUT79 = 80
|
||||
BUT80 = 81
|
||||
BUT81 = 82
|
||||
BUT82 = 83
|
||||
MAXKBDBUT = 83
|
||||
BUT100 = 101
|
||||
BUT101 = 102
|
||||
BUT102 = 103
|
||||
BUT103 = 104
|
||||
BUT104 = 105
|
||||
BUT105 = 106
|
||||
BUT106 = 107
|
||||
BUT107 = 108
|
||||
BUT108 = 109
|
||||
BUT109 = 110
|
||||
BUT110 = 111
|
||||
BUT111 = 112
|
||||
BUT112 = 113
|
||||
BUT113 = 114
|
||||
BUT114 = 115
|
||||
BUT115 = 116
|
||||
BUT116 = 117
|
||||
BUT117 = 118
|
||||
BUT118 = 119
|
||||
BUT119 = 120
|
||||
BUT120 = 121
|
||||
BUT121 = 122
|
||||
BUT122 = 123
|
||||
BUT123 = 124
|
||||
BUT124 = 125
|
||||
BUT125 = 126
|
||||
BUT126 = 127
|
||||
BUT127 = 128
|
||||
BUT128 = 129
|
||||
BUT129 = 130
|
||||
BUT130 = 131
|
||||
BUT131 = 132
|
||||
BUT132 = 133
|
||||
BUT133 = 134
|
||||
BUT134 = 135
|
||||
BUT135 = 136
|
||||
BUT136 = 137
|
||||
BUT137 = 138
|
||||
BUT138 = 139
|
||||
BUT139 = 140
|
||||
BUT140 = 141
|
||||
BUT141 = 142
|
||||
BUT142 = 143
|
||||
BUT143 = 144
|
||||
BUT144 = 145
|
||||
BUT145 = 146
|
||||
BUT146 = 147
|
||||
BUT147 = 148
|
||||
BUT148 = 149
|
||||
BUT149 = 150
|
||||
BUT150 = 151
|
||||
BUT151 = 152
|
||||
BUT152 = 153
|
||||
BUT153 = 154
|
||||
BUT154 = 155
|
||||
BUT155 = 156
|
||||
BUT156 = 157
|
||||
BUT157 = 158
|
||||
BUT158 = 159
|
||||
BUT159 = 160
|
||||
BUT160 = 161
|
||||
BUT161 = 162
|
||||
BUT162 = 163
|
||||
BUT163 = 164
|
||||
BUT164 = 165
|
||||
BUT165 = 166
|
||||
BUT166 = 167
|
||||
BUT167 = 168
|
||||
BUT168 = 169
|
||||
BUT181 = 182
|
||||
BUT182 = 183
|
||||
BUT183 = 184
|
||||
BUT184 = 185
|
||||
BUT185 = 186
|
||||
BUT186 = 187
|
||||
BUT187 = 188
|
||||
BUT188 = 189
|
||||
BUT189 = 190
|
||||
MOUSE1 = 101
|
||||
MOUSE2 = 102
|
||||
MOUSE3 = 103
|
||||
LEFTMOUSE = 103
|
||||
MIDDLEMOUSE = 102
|
||||
RIGHTMOUSE = 101
|
||||
LPENBUT = 104
|
||||
BPAD0 = 105
|
||||
BPAD1 = 106
|
||||
BPAD2 = 107
|
||||
BPAD3 = 108
|
||||
LPENVALID = 109
|
||||
SWBASE = 111
|
||||
SW0 = 111
|
||||
SW1 = 112
|
||||
SW2 = 113
|
||||
SW3 = 114
|
||||
SW4 = 115
|
||||
SW5 = 116
|
||||
SW6 = 117
|
||||
SW7 = 118
|
||||
SW8 = 119
|
||||
SW9 = 120
|
||||
SW10 = 121
|
||||
SW11 = 122
|
||||
SW12 = 123
|
||||
SW13 = 124
|
||||
SW14 = 125
|
||||
SW15 = 126
|
||||
SW16 = 127
|
||||
SW17 = 128
|
||||
SW18 = 129
|
||||
SW19 = 130
|
||||
SW20 = 131
|
||||
SW21 = 132
|
||||
SW22 = 133
|
||||
SW23 = 134
|
||||
SW24 = 135
|
||||
SW25 = 136
|
||||
SW26 = 137
|
||||
SW27 = 138
|
||||
SW28 = 139
|
||||
SW29 = 140
|
||||
SW30 = 141
|
||||
SW31 = 142
|
||||
SBBASE = 182
|
||||
SBPICK = 182
|
||||
SBBUT1 = 183
|
||||
SBBUT2 = 184
|
||||
SBBUT3 = 185
|
||||
SBBUT4 = 186
|
||||
SBBUT5 = 187
|
||||
SBBUT6 = 188
|
||||
SBBUT7 = 189
|
||||
SBBUT8 = 190
|
||||
AKEY = 11
|
||||
BKEY = 36
|
||||
CKEY = 28
|
||||
DKEY = 18
|
||||
EKEY = 17
|
||||
FKEY = 19
|
||||
GKEY = 26
|
||||
HKEY = 27
|
||||
IKEY = 40
|
||||
JKEY = 34
|
||||
KKEY = 35
|
||||
LKEY = 42
|
||||
MKEY = 44
|
||||
NKEY = 37
|
||||
OKEY = 41
|
||||
PKEY = 48
|
||||
QKEY = 10
|
||||
RKEY = 24
|
||||
SKEY = 12
|
||||
TKEY = 25
|
||||
UKEY = 33
|
||||
VKEY = 29
|
||||
WKEY = 16
|
||||
XKEY = 21
|
||||
YKEY = 32
|
||||
ZKEY = 20
|
||||
ZEROKEY = 46
|
||||
ONEKEY = 8
|
||||
TWOKEY = 14
|
||||
THREEKEY = 15
|
||||
FOURKEY = 22
|
||||
FIVEKEY = 23
|
||||
SIXKEY = 30
|
||||
SEVENKEY = 31
|
||||
EIGHTKEY = 38
|
||||
NINEKEY = 39
|
||||
BREAKKEY = 1
|
||||
SETUPKEY = 2
|
||||
CTRLKEY = 3
|
||||
LEFTCTRLKEY = CTRLKEY
|
||||
CAPSLOCKKEY = 4
|
||||
RIGHTSHIFTKEY = 5
|
||||
LEFTSHIFTKEY = 6
|
||||
NOSCRLKEY = 13
|
||||
ESCKEY = 7
|
||||
TABKEY = 9
|
||||
RETKEY = 51
|
||||
SPACEKEY = 83
|
||||
LINEFEEDKEY = 60
|
||||
BACKSPACEKEY = 61
|
||||
DELKEY = 62
|
||||
SEMICOLONKEY = 43
|
||||
PERIODKEY = 52
|
||||
COMMAKEY = 45
|
||||
QUOTEKEY = 50
|
||||
ACCENTGRAVEKEY = 55
|
||||
MINUSKEY = 47
|
||||
VIRGULEKEY = 53
|
||||
BACKSLASHKEY = 57
|
||||
EQUALKEY = 54
|
||||
LEFTBRACKETKEY = 49
|
||||
RIGHTBRACKETKEY = 56
|
||||
LEFTARROWKEY = 73
|
||||
DOWNARROWKEY = 74
|
||||
RIGHTARROWKEY = 80
|
||||
UPARROWKEY = 81
|
||||
PAD0 = 59
|
||||
PAD1 = 58
|
||||
PAD2 = 64
|
||||
PAD3 = 65
|
||||
PAD4 = 63
|
||||
PAD5 = 69
|
||||
PAD6 = 70
|
||||
PAD7 = 67
|
||||
PAD8 = 68
|
||||
PAD9 = 75
|
||||
PADPF1 = 72
|
||||
PADPF2 = 71
|
||||
PADPF3 = 79
|
||||
PADPF4 = 78
|
||||
PADPERIOD = 66
|
||||
PADMINUS = 76
|
||||
PADCOMMA = 77
|
||||
PADENTER = 82
|
||||
LEFTALTKEY = 143
|
||||
RIGHTALTKEY = 144
|
||||
RIGHTCTRLKEY = 145
|
||||
F1KEY = 146
|
||||
F2KEY = 147
|
||||
F3KEY = 148
|
||||
F4KEY = 149
|
||||
F5KEY = 150
|
||||
F6KEY = 151
|
||||
F7KEY = 152
|
||||
F8KEY = 153
|
||||
F9KEY = 154
|
||||
F10KEY = 155
|
||||
F11KEY = 156
|
||||
F12KEY = 157
|
||||
PRINTSCREENKEY = 158
|
||||
SCROLLLOCKKEY = 159
|
||||
PAUSEKEY = 160
|
||||
INSERTKEY = 161
|
||||
HOMEKEY = 162
|
||||
PAGEUPKEY = 163
|
||||
ENDKEY = 164
|
||||
PAGEDOWNKEY = 165
|
||||
NUMLOCKKEY = 166
|
||||
PADVIRGULEKEY = 167
|
||||
PADASTERKEY = 168
|
||||
PADPLUSKEY = 169
|
||||
SGIRESERVED = 256
|
||||
DIAL0 = 257
|
||||
DIAL1 = 258
|
||||
DIAL2 = 259
|
||||
DIAL3 = 260
|
||||
DIAL4 = 261
|
||||
DIAL5 = 262
|
||||
DIAL6 = 263
|
||||
DIAL7 = 264
|
||||
DIAL8 = 265
|
||||
MOUSEX = 266
|
||||
MOUSEY = 267
|
||||
LPENX = 268
|
||||
LPENY = 269
|
||||
BPADX = 270
|
||||
BPADY = 271
|
||||
CURSORX = 272
|
||||
CURSORY = 273
|
||||
GHOSTX = 274
|
||||
GHOSTY = 275
|
||||
SBTX = 276
|
||||
SBTY = 277
|
||||
SBTZ = 278
|
||||
SBRX = 279
|
||||
SBRY = 280
|
||||
SBRZ = 281
|
||||
SBPERIOD = 282
|
||||
TIMER0 = 515
|
||||
TIMER1 = 516
|
||||
TIMER2 = 517
|
||||
TIMER3 = 518
|
||||
KEYBD = 513
|
||||
RAWKEYBD = 514
|
||||
VALMARK = 523
|
||||
REDRAW = 528
|
||||
INPUTCHANGE = 534
|
||||
QFULL = 535
|
||||
QREADERROR = 538
|
||||
WINFREEZE = 539
|
||||
WINTHAW = 540
|
||||
REDRAWICONIC = 541
|
||||
WINQUIT = 542
|
||||
DEPTHCHANGE = 543
|
||||
WINSHUT = 546
|
||||
DRAWOVERLAY = 547
|
||||
VIDEO = 548
|
||||
MENUBUTTON = RIGHTMOUSE
|
||||
WINCLOSE = 537
|
||||
KEYBDFNAMES = 544
|
||||
KEYBDFSTRINGS = 545
|
||||
MAXSGIDEVICE = 20000
|
||||
GERROR = 524
|
||||
WMSEND = 529
|
||||
WMREPLY = 530
|
||||
WMGFCLOSE = 531
|
||||
WMTXCLOSE = 532
|
||||
MODECHANGE = 533
|
||||
PIECECHANGE = 536
|
|
@ -0,0 +1,163 @@
|
|||
# Generated by h2py from /usr/include/sys/errno.h
|
||||
|
||||
# Included from standards.h
|
||||
__KBASE = 1000
|
||||
__IRIXBASE = 1000
|
||||
EPERM = 1
|
||||
ENOENT = 2
|
||||
ESRCH = 3
|
||||
EINTR = 4
|
||||
EIO = 5
|
||||
ENXIO = 6
|
||||
E2BIG = 7
|
||||
ENOEXEC = 8
|
||||
EBADF = 9
|
||||
ECHILD = 10
|
||||
EAGAIN = 11
|
||||
ENOMEM = 12
|
||||
EACCES = 13
|
||||
EFAULT = 14
|
||||
ENOTBLK = 15
|
||||
EBUSY = 16
|
||||
EEXIST = 17
|
||||
EXDEV = 18
|
||||
ENODEV = 19
|
||||
ENOTDIR = 20
|
||||
EISDIR = 21
|
||||
EINVAL = 22
|
||||
ENFILE = 23
|
||||
EMFILE = 24
|
||||
ENOTTY = 25
|
||||
ETXTBSY = 26
|
||||
EFBIG = 27
|
||||
ENOSPC = 28
|
||||
ESPIPE = 29
|
||||
EROFS = 30
|
||||
EMLINK = 31
|
||||
EPIPE = 32
|
||||
EDOM = 33
|
||||
ERANGE = 34
|
||||
ENOMSG = 35
|
||||
EIDRM = 36
|
||||
ECHRNG = 37
|
||||
EL2NSYNC = 38
|
||||
EL3HLT = 39
|
||||
EL3RST = 40
|
||||
ELNRNG = 41
|
||||
EUNATCH = 42
|
||||
ENOCSI = 43
|
||||
EL2HLT = 44
|
||||
EDEADLK = 45
|
||||
ENOLCK = 46
|
||||
EBADE = 50
|
||||
EBADR = 51
|
||||
EXFULL = 52
|
||||
ENOANO = 53
|
||||
EBADRQC = 54
|
||||
EBADSLT = 55
|
||||
EDEADLOCK = 56
|
||||
EBFONT = 57
|
||||
ENOSTR = 60
|
||||
ENODATA = 61
|
||||
ETIME = 62
|
||||
ENOSR = 63
|
||||
ENONET = 64
|
||||
ENOPKG = 65
|
||||
EREMOTE = 66
|
||||
ENOLINK = 67
|
||||
EADV = 68
|
||||
ESRMNT = 69
|
||||
ECOMM = 70
|
||||
EPROTO = 71
|
||||
EMULTIHOP = 74
|
||||
EBADMSG = 77
|
||||
ENAMETOOLONG = 78
|
||||
EOVERFLOW = 79
|
||||
ENOTUNIQ = 80
|
||||
EBADFD = 81
|
||||
EREMCHG = 82
|
||||
ELIBACC = 83
|
||||
ELIBBAD = 84
|
||||
ELIBSCN = 85
|
||||
ELIBMAX = 86
|
||||
ELIBEXEC = 87
|
||||
EILSEQ = 88
|
||||
ENOSYS = 89
|
||||
ELOOP = 90
|
||||
ERESTART = 91
|
||||
ESTRPIPE = 92
|
||||
ENOTEMPTY = 93
|
||||
EUSERS = 94
|
||||
ENOTSOCK = 95
|
||||
EDESTADDRREQ = 96
|
||||
EMSGSIZE = 97
|
||||
EPROTOTYPE = 98
|
||||
ENOPROTOOPT = 99
|
||||
EPROTONOSUPPORT = 120
|
||||
ESOCKTNOSUPPORT = 121
|
||||
EOPNOTSUPP = 122
|
||||
EPFNOSUPPORT = 123
|
||||
EAFNOSUPPORT = 124
|
||||
EADDRINUSE = 125
|
||||
EADDRNOTAVAIL = 126
|
||||
ENETDOWN = 127
|
||||
ENETUNREACH = 128
|
||||
ENETRESET = 129
|
||||
ECONNABORTED = 130
|
||||
ECONNRESET = 131
|
||||
ENOBUFS = 132
|
||||
EISCONN = 133
|
||||
ENOTCONN = 134
|
||||
ESHUTDOWN = 143
|
||||
ETOOMANYREFS = 144
|
||||
ETIMEDOUT = 145
|
||||
ECONNREFUSED = 146
|
||||
EHOSTDOWN = 147
|
||||
EHOSTUNREACH = 148
|
||||
LASTERRNO = ENOTCONN
|
||||
EWOULDBLOCK = __KBASE+101
|
||||
EWOULDBLOCK = EAGAIN
|
||||
EALREADY = 149
|
||||
EINPROGRESS = 150
|
||||
ESTALE = 151
|
||||
EIORESID = 500
|
||||
EUCLEAN = 135
|
||||
ENOTNAM = 137
|
||||
ENAVAIL = 138
|
||||
EISNAM = 139
|
||||
EREMOTEIO = 140
|
||||
EINIT = 141
|
||||
EREMDEV = 142
|
||||
ECANCELED = 158
|
||||
ENOLIMFILE = 1001
|
||||
EPROCLIM = 1002
|
||||
EDISJOINT = 1003
|
||||
ENOLOGIN = 1004
|
||||
ELOGINLIM = 1005
|
||||
EGROUPLOOP = 1006
|
||||
ENOATTACH = 1007
|
||||
ENOTSUP = 1008
|
||||
ENOATTR = 1009
|
||||
EDIRCORRUPTED = 1010
|
||||
EDQUOT = 1133
|
||||
ENFSREMOTE = 1135
|
||||
ECONTROLLER = 1300
|
||||
ENOTCONTROLLER = 1301
|
||||
EENQUEUED = 1302
|
||||
ENOTENQUEUED = 1303
|
||||
EJOINED = 1304
|
||||
ENOTJOINED = 1305
|
||||
ENOPROC = 1306
|
||||
EMUSTRUN = 1307
|
||||
ENOTSTOPPED = 1308
|
||||
ECLOCKCPU = 1309
|
||||
EINVALSTATE = 1310
|
||||
ENOEXIST = 1311
|
||||
EENDOFMINOR = 1312
|
||||
EBUFSIZE = 1313
|
||||
EEMPTY = 1314
|
||||
ENOINTRGROUP = 1315
|
||||
EINVALMODE = 1316
|
||||
ECANTEXTENT = 1317
|
||||
EINVALTIME = 1318
|
||||
EDESTROYED = 1319
|
|
@ -0,0 +1,114 @@
|
|||
# Generated by h2py from /usr/include/sys/fcntl.h
|
||||
|
||||
# Included from standards.h
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
FNDELAY = 0x04
|
||||
FAPPEND = 0x08
|
||||
FSYNC = 0x10
|
||||
FDSYNC = 0x20
|
||||
FRSYNC = 0x40
|
||||
FNONBLOCK = 0x80
|
||||
FASYNC = 0x1000
|
||||
FLARGEFILE = 0x2000
|
||||
FNONBLK = FNONBLOCK
|
||||
FDIRECT = 0x8000
|
||||
FDIRENT64 = 0x8000
|
||||
FCREAT = 0x0100
|
||||
FTRUNC = 0x0200
|
||||
FEXCL = 0x0400
|
||||
FNOCTTY = 0x0800
|
||||
O_RDONLY = 0
|
||||
O_WRONLY = 1
|
||||
O_RDWR = 2
|
||||
O_NDELAY = 0x04
|
||||
O_APPEND = 0x08
|
||||
O_SYNC = 0x10
|
||||
O_DSYNC = 0x20
|
||||
O_RSYNC = 0x40
|
||||
O_NONBLOCK = 0x80
|
||||
O_LARGEFILE = 0x2000
|
||||
O_DIRECT = 0x8000
|
||||
O_CREAT = 0x100
|
||||
O_TRUNC = 0x200
|
||||
O_EXCL = 0x400
|
||||
O_NOCTTY = 0x800
|
||||
F_DUPFD = 0
|
||||
F_GETFD = 1
|
||||
F_SETFD = 2
|
||||
F_GETFL = 3
|
||||
F_SETFL = 4
|
||||
F_GETLK = 14
|
||||
F_SETLK = 6
|
||||
F_SETLKW = 7
|
||||
F_CHKFL = 8
|
||||
F_ALLOCSP = 10
|
||||
F_FREESP = 11
|
||||
F_SETBSDLK = 12
|
||||
F_SETBSDLKW = 13
|
||||
F_DIOINFO = 30
|
||||
F_FSGETXATTR = 31
|
||||
F_FSSETXATTR = 32
|
||||
F_GETLK64 = 33
|
||||
F_SETLK64 = 34
|
||||
F_SETLKW64 = 35
|
||||
F_ALLOCSP64 = 36
|
||||
F_FREESP64 = 37
|
||||
F_GETBMAP = 38
|
||||
F_FSSETDM = 39
|
||||
F_RESVSP = 40
|
||||
F_UNRESVSP = 41
|
||||
F_RESVSP64 = 42
|
||||
F_UNRESVSP64 = 43
|
||||
F_GETBMAPA = 44
|
||||
F_FSGETXATTRA = 45
|
||||
F_GETALLLK = 46
|
||||
F_RSETLK = 20
|
||||
F_RGETLK = 21
|
||||
F_RSETLKW = 22
|
||||
F_GETOWN = 23
|
||||
F_SETOWN = 24
|
||||
F_RDLCK = 01
|
||||
F_WRLCK = 02
|
||||
F_UNLCK = 03
|
||||
O_ACCMODE = 3
|
||||
FD_CLOEXEC = 1
|
||||
FD_NODUP_FORK = 4
|
|
@ -0,0 +1,236 @@
|
|||
# Generated by h2py from /usr/include/sys/file.h
|
||||
|
||||
# Included from standards.h
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
|
||||
# Included from sys/sema.h
|
||||
MUTEX_DEFAULT = 0x0
|
||||
METER_NAMSZ = 8
|
||||
def mutex_spinlock(l): return splhi()
|
||||
|
||||
def mutex_spintrylock(l): return splhi()
|
||||
|
||||
def spinlock_islocked(l): return issplhi(getsr())
|
||||
|
||||
def spinlock_initialized(l): return 1
|
||||
|
||||
SV_FIFO = 0x0
|
||||
SV_LIFO = 0x2
|
||||
SV_PRIO = 0x4
|
||||
SV_DEFAULT = SV_FIFO
|
||||
SEMA_NOHIST = 0x0001
|
||||
SEMA_LOCK = 0x0004
|
||||
SEMA_METER = 0x0008
|
||||
SEMA_NAMSZ = METER_NAMSZ
|
||||
MR_ACCESS = 0x1
|
||||
MR_UPDATE = 0x2
|
||||
def mp_mutex_unlock(m): return mutex_unlock(m)
|
||||
|
||||
def mp_mutex_trylock(m): return mutex_trylock(m)
|
||||
|
||||
def mp_mutex_spinlock(m): return mutex_spinlock(m)
|
||||
|
||||
def mp_mutex_trylock(m): return 1
|
||||
|
||||
def mp_mutex_spinlock(m): return 1
|
||||
|
||||
def nested_spintrylock(m): return 1
|
||||
|
||||
def mp_mrunlock(a): return mrunlock(a)
|
||||
|
||||
def mp_cpsema(x): return cpsema(x)
|
||||
|
||||
def mp_cvsema(x): return cvsema(x)
|
||||
|
||||
def mp_cpsema(x): return 1
|
||||
|
||||
def mp_cvsema(x): return 0
|
||||
|
||||
MON_LOCKED = 0x01
|
||||
MON_WAITING = 0x02
|
||||
MON_TIMEOUT = 0x04
|
||||
def initlock(l): return spinlock_init(l,0)
|
||||
|
||||
def ownlock(x): return 1
|
||||
|
||||
def splock(x): return 1
|
||||
|
||||
def io_splock(x): return 1
|
||||
|
||||
def mutex_enter(m): return mutex_lock(m, PZERO)
|
||||
|
||||
def mutex_tryenter(m): return mutex_trylock(m)
|
||||
|
||||
def mutex_exit(m): return mutex_unlock(m)
|
||||
|
||||
def cv_signal(cv): return sv_signal(cv)
|
||||
|
||||
def cv_broadcast(cv): return sv_broadcast(cv)
|
||||
|
||||
def cv_destroy(cv): return sv_destroy(cv)
|
||||
|
||||
RW_READER = MR_ACCESS
|
||||
RW_WRITER = MR_UPDATE
|
||||
def rw_exit(r): return mrunlock(r)
|
||||
|
||||
def rw_tryupgrade(r): return cmrpromote(r)
|
||||
|
||||
def rw_downgrade(r): return mrdemote(r)
|
||||
|
||||
def rw_destroy(r): return mrfree(r)
|
||||
|
||||
def RW_WRITE_HELD(r): return ismrlocked(r, MR_UPDATE)
|
||||
|
||||
def RW_READ_HELD(r): return ismrlocked(r, MR_ACCESS)
|
||||
|
||||
|
||||
# Included from sys/fcntl.h
|
||||
FNDELAY = 0x04
|
||||
FAPPEND = 0x08
|
||||
FSYNC = 0x10
|
||||
FDSYNC = 0x20
|
||||
FRSYNC = 0x40
|
||||
FNONBLOCK = 0x80
|
||||
FASYNC = 0x1000
|
||||
FLARGEFILE = 0x2000
|
||||
FNONBLK = FNONBLOCK
|
||||
FDIRECT = 0x8000
|
||||
FDIRENT64 = 0x8000
|
||||
FCREAT = 0x0100
|
||||
FTRUNC = 0x0200
|
||||
FEXCL = 0x0400
|
||||
FNOCTTY = 0x0800
|
||||
O_RDONLY = 0
|
||||
O_WRONLY = 1
|
||||
O_RDWR = 2
|
||||
O_NDELAY = 0x04
|
||||
O_APPEND = 0x08
|
||||
O_SYNC = 0x10
|
||||
O_DSYNC = 0x20
|
||||
O_RSYNC = 0x40
|
||||
O_NONBLOCK = 0x80
|
||||
O_LARGEFILE = 0x2000
|
||||
O_DIRECT = 0x8000
|
||||
O_CREAT = 0x100
|
||||
O_TRUNC = 0x200
|
||||
O_EXCL = 0x400
|
||||
O_NOCTTY = 0x800
|
||||
F_DUPFD = 0
|
||||
F_GETFD = 1
|
||||
F_SETFD = 2
|
||||
F_GETFL = 3
|
||||
F_SETFL = 4
|
||||
F_GETLK = 14
|
||||
F_SETLK = 6
|
||||
F_SETLKW = 7
|
||||
F_CHKFL = 8
|
||||
F_ALLOCSP = 10
|
||||
F_FREESP = 11
|
||||
F_SETBSDLK = 12
|
||||
F_SETBSDLKW = 13
|
||||
F_DIOINFO = 30
|
||||
F_FSGETXATTR = 31
|
||||
F_FSSETXATTR = 32
|
||||
F_GETLK64 = 33
|
||||
F_SETLK64 = 34
|
||||
F_SETLKW64 = 35
|
||||
F_ALLOCSP64 = 36
|
||||
F_FREESP64 = 37
|
||||
F_GETBMAP = 38
|
||||
F_FSSETDM = 39
|
||||
F_RESVSP = 40
|
||||
F_UNRESVSP = 41
|
||||
F_RESVSP64 = 42
|
||||
F_UNRESVSP64 = 43
|
||||
F_GETBMAPA = 44
|
||||
F_FSGETXATTRA = 45
|
||||
F_GETALLLK = 46
|
||||
F_RSETLK = 20
|
||||
F_RGETLK = 21
|
||||
F_RSETLKW = 22
|
||||
F_GETOWN = 23
|
||||
F_SETOWN = 24
|
||||
F_RDLCK = 01
|
||||
F_WRLCK = 02
|
||||
F_UNLCK = 03
|
||||
O_ACCMODE = 3
|
||||
FD_CLOEXEC = 1
|
||||
FD_NODUP_FORK = 4
|
||||
FMASK = 0x90FF
|
||||
FOPEN = 0xFFFFFFFF
|
||||
FREAD = 0x01
|
||||
FWRITE = 0x02
|
||||
FNDELAY = 0x04
|
||||
FAPPEND = 0x08
|
||||
FSYNC = 0x10
|
||||
FDSYNC = 0x20
|
||||
FRSYNC = 0x40
|
||||
FNONBLOCK = 0x80
|
||||
FASYNC = 0x1000
|
||||
FNONBLK = FNONBLOCK
|
||||
FLARGEFILE = 0x2000
|
||||
FDIRECT = 0x8000
|
||||
FCREAT = 0x0100
|
||||
FTRUNC = 0x0200
|
||||
FEXCL = 0x0400
|
||||
FNOCTTY = 0x0800
|
||||
FMARK = 0x4000
|
||||
FDEFER = 0x2000
|
||||
FINPROGRESS = 0x0400
|
||||
FINVIS = 0x0100
|
||||
FNMFS = 0x2000
|
||||
FDIRENT64 = 0x8000
|
||||
FCLOSEXEC = 001
|
||||
FDSHD = 0x0001
|
||||
FDNOMARK = 0x0002
|
||||
FDIGNPROGRESS = 0x0004
|
||||
LOCK_SH = 1
|
||||
LOCK_EX = 2
|
||||
LOCK_NB = 4
|
||||
LOCK_UN = 8
|
||||
F_OK = 0
|
||||
X_OK = 1
|
||||
W_OK = 2
|
||||
R_OK = 4
|
||||
L_SET = 0
|
||||
L_INCR = 1
|
||||
L_XTND = 2
|
|
@ -0,0 +1,289 @@
|
|||
# Constants used by the FORMS library (module fl).
|
||||
# This corresponds to "forms.h".
|
||||
# Recommended use: import FL; ... FL.NORMAL_BOX ... etc.
|
||||
# Alternate use: from FL import *; ... NORMAL_BOX ... etc.
|
||||
|
||||
_v20 = 1
|
||||
_v21 = 1
|
||||
##import fl
|
||||
##try:
|
||||
## _v20 = (fl.get_rgbmode <> None)
|
||||
##except:
|
||||
## _v20 = 0
|
||||
##del fl
|
||||
|
||||
NULL = 0
|
||||
FALSE = 0
|
||||
TRUE = 1
|
||||
|
||||
EVENT = -1
|
||||
|
||||
LABEL_SIZE = 64
|
||||
if _v20:
|
||||
SHORTCUT_SIZE = 32
|
||||
PLACE_FREE = 0
|
||||
PLACE_SIZE = 1
|
||||
PLACE_ASPECT = 2
|
||||
PLACE_MOUSE = 3
|
||||
PLACE_CENTER = 4
|
||||
PLACE_POSITION = 5
|
||||
FL_PLACE_FULLSCREEN = 6
|
||||
FIND_INPUT = 0
|
||||
FIND_AUTOMATIC = 1
|
||||
FIND_MOUSE = 2
|
||||
BEGIN_GROUP = 10000
|
||||
END_GROUP = 20000
|
||||
ALIGN_TOP = 0
|
||||
ALIGN_BOTTOM = 1
|
||||
ALIGN_LEFT = 2
|
||||
ALIGN_RIGHT = 3
|
||||
ALIGN_CENTER = 4
|
||||
NO_BOX = 0
|
||||
UP_BOX = 1
|
||||
DOWN_BOX = 2
|
||||
FLAT_BOX = 3
|
||||
BORDER_BOX = 4
|
||||
SHADOW_BOX = 5
|
||||
FRAME_BOX = 6
|
||||
ROUNDED_BOX = 7
|
||||
RFLAT_BOX = 8
|
||||
RSHADOW_BOX = 9
|
||||
TOP_BOUND_COL = 51
|
||||
LEFT_BOUND_COL = 55
|
||||
BOT_BOUND_COL = 40
|
||||
RIGHT_BOUND_COL = 35
|
||||
COL1 = 47
|
||||
MCOL = 49
|
||||
LCOL = 0
|
||||
BOUND_WIDTH = 3.0
|
||||
DRAW = 0
|
||||
PUSH = 1
|
||||
RELEASE = 2
|
||||
ENTER = 3
|
||||
LEAVE = 4
|
||||
MOUSE = 5
|
||||
FOCUS = 6
|
||||
UNFOCUS = 7
|
||||
KEYBOARD = 8
|
||||
STEP = 9
|
||||
MOVE = 10
|
||||
FONT_NAME = 'Helvetica'
|
||||
FONT_BOLDNAME = 'Helvetica-Bold'
|
||||
FONT_ITALICNAME = 'Helvetica-Oblique'
|
||||
FONT_FIXEDNAME = 'Courier'
|
||||
FONT_ICONNAME = 'Icon'
|
||||
SMALL_FONT = 8.0
|
||||
NORMAL_FONT = 11.0
|
||||
LARGE_FONT = 20.0
|
||||
NORMAL_STYLE = 0
|
||||
BOLD_STYLE = 1
|
||||
ITALIC_STYLE = 2
|
||||
FIXED_STYLE = 3
|
||||
ENGRAVED_STYLE = 4
|
||||
ICON_STYLE = 5
|
||||
BITMAP = 3
|
||||
NORMAL_BITMAP = 0
|
||||
BITMAP_BOXTYPE = NO_BOX
|
||||
BITMAP_COL1 = 0
|
||||
BITMAP_COL2 = COL1
|
||||
BITMAP_LCOL = LCOL
|
||||
BITMAP_ALIGN = ALIGN_BOTTOM
|
||||
BITMAP_MAXSIZE = 128*128
|
||||
BITMAP_BW = BOUND_WIDTH
|
||||
BOX = 1
|
||||
BOX_BOXTYPE = UP_BOX
|
||||
BOX_COL1 = COL1
|
||||
BOX_LCOL = LCOL
|
||||
BOX_ALIGN = ALIGN_CENTER
|
||||
BOX_BW = BOUND_WIDTH
|
||||
BROWSER = 71
|
||||
NORMAL_BROWSER = 0
|
||||
SELECT_BROWSER = 1
|
||||
HOLD_BROWSER = 2
|
||||
MULTI_BROWSER = 3
|
||||
BROWSER_BOXTYPE = DOWN_BOX
|
||||
BROWSER_COL1 = COL1
|
||||
BROWSER_COL2 = 3
|
||||
BROWSER_LCOL = LCOL
|
||||
BROWSER_ALIGN = ALIGN_BOTTOM
|
||||
BROWSER_SLCOL = COL1
|
||||
BROWSER_BW = BOUND_WIDTH
|
||||
BROWSER_LINELENGTH = 128
|
||||
BROWSER_MAXLINE = 512
|
||||
BUTTON = 11
|
||||
NORMAL_BUTTON = 0
|
||||
PUSH_BUTTON = 1
|
||||
RADIO_BUTTON = 2
|
||||
HIDDEN_BUTTON = 3
|
||||
TOUCH_BUTTON = 4
|
||||
INOUT_BUTTON = 5
|
||||
RETURN_BUTTON = 6
|
||||
if _v20:
|
||||
HIDDEN_RET_BUTTON = 7
|
||||
BUTTON_BOXTYPE = UP_BOX
|
||||
BUTTON_COL1 = COL1
|
||||
BUTTON_COL2 = COL1
|
||||
BUTTON_LCOL = LCOL
|
||||
BUTTON_ALIGN = ALIGN_CENTER
|
||||
BUTTON_MCOL1 = MCOL
|
||||
BUTTON_MCOL2 = MCOL
|
||||
BUTTON_BW = BOUND_WIDTH
|
||||
if _v20:
|
||||
CHART = 4
|
||||
BAR_CHART = 0
|
||||
HORBAR_CHART = 1
|
||||
LINE_CHART = 2
|
||||
FILLED_CHART = 3
|
||||
SPIKE_CHART = 4
|
||||
PIE_CHART = 5
|
||||
SPECIALPIE_CHART = 6
|
||||
CHART_BOXTYPE = BORDER_BOX
|
||||
CHART_COL1 = COL1
|
||||
CHART_LCOL = LCOL
|
||||
CHART_ALIGN = ALIGN_BOTTOM
|
||||
CHART_BW = BOUND_WIDTH
|
||||
CHART_MAX = 128
|
||||
CHOICE = 42
|
||||
NORMAL_CHOICE = 0
|
||||
CHOICE_BOXTYPE = DOWN_BOX
|
||||
CHOICE_COL1 = COL1
|
||||
CHOICE_COL2 = LCOL
|
||||
CHOICE_LCOL = LCOL
|
||||
CHOICE_ALIGN = ALIGN_LEFT
|
||||
CHOICE_BW = BOUND_WIDTH
|
||||
CHOICE_MCOL = MCOL
|
||||
CHOICE_MAXITEMS = 128
|
||||
CHOICE_MAXSTR = 64
|
||||
CLOCK = 61
|
||||
SQUARE_CLOCK = 0
|
||||
ROUND_CLOCK = 1
|
||||
CLOCK_BOXTYPE = UP_BOX
|
||||
CLOCK_COL1 = 37
|
||||
CLOCK_COL2 = 42
|
||||
CLOCK_LCOL = LCOL
|
||||
CLOCK_ALIGN = ALIGN_BOTTOM
|
||||
CLOCK_TOPCOL = COL1
|
||||
CLOCK_BW = BOUND_WIDTH
|
||||
COUNTER = 25
|
||||
NORMAL_COUNTER = 0
|
||||
SIMPLE_COUNTER = 1
|
||||
COUNTER_BOXTYPE = UP_BOX
|
||||
COUNTER_COL1 = COL1
|
||||
COUNTER_COL2 = 4
|
||||
COUNTER_LCOL = LCOL
|
||||
COUNTER_ALIGN = ALIGN_BOTTOM
|
||||
if _v20:
|
||||
COUNTER_BW = BOUND_WIDTH
|
||||
else:
|
||||
DEFAULT = 51
|
||||
RETURN_DEFAULT = 0
|
||||
ALWAYS_DEFAULT = 1
|
||||
DIAL = 22
|
||||
NORMAL_DIAL = 0
|
||||
LINE_DIAL = 1
|
||||
DIAL_BOXTYPE = NO_BOX
|
||||
DIAL_COL1 = COL1
|
||||
DIAL_COL2 = 37
|
||||
DIAL_LCOL = LCOL
|
||||
DIAL_ALIGN = ALIGN_BOTTOM
|
||||
DIAL_TOPCOL = COL1
|
||||
DIAL_BW = BOUND_WIDTH
|
||||
FREE = 101
|
||||
NORMAL_FREE = 1
|
||||
SLEEPING_FREE = 2
|
||||
INPUT_FREE = 3
|
||||
CONTINUOUS_FREE = 4
|
||||
ALL_FREE = 5
|
||||
INPUT = 31
|
||||
NORMAL_INPUT = 0
|
||||
if _v20:
|
||||
FLOAT_INPUT = 1
|
||||
INT_INPUT = 2
|
||||
HIDDEN_INPUT = 3
|
||||
if _v21:
|
||||
MULTILINE_INPUT = 4
|
||||
SECRET_INPUT = 5
|
||||
else:
|
||||
ALWAYS_INPUT = 1
|
||||
INPUT_BOXTYPE = DOWN_BOX
|
||||
INPUT_COL1 = 13
|
||||
INPUT_COL2 = 5
|
||||
INPUT_LCOL = LCOL
|
||||
INPUT_ALIGN = ALIGN_LEFT
|
||||
INPUT_TCOL = LCOL
|
||||
INPUT_CCOL = 4
|
||||
INPUT_BW = BOUND_WIDTH
|
||||
INPUT_MAX = 128
|
||||
LIGHTBUTTON = 12
|
||||
LIGHTBUTTON_BOXTYPE = UP_BOX
|
||||
LIGHTBUTTON_COL1 = 39
|
||||
LIGHTBUTTON_COL2 = 3
|
||||
LIGHTBUTTON_LCOL = LCOL
|
||||
LIGHTBUTTON_ALIGN = ALIGN_CENTER
|
||||
LIGHTBUTTON_TOPCOL = COL1
|
||||
LIGHTBUTTON_MCOL = MCOL
|
||||
LIGHTBUTTON_BW1 = BOUND_WIDTH
|
||||
LIGHTBUTTON_BW2 = BOUND_WIDTH/2.0
|
||||
LIGHTBUTTON_MINSIZE = 12.0
|
||||
MENU = 41
|
||||
TOUCH_MENU = 0
|
||||
PUSH_MENU = 1
|
||||
MENU_BOXTYPE = BORDER_BOX
|
||||
MENU_COL1 = 55
|
||||
MENU_COL2 = 37
|
||||
MENU_LCOL = LCOL
|
||||
MENU_ALIGN = ALIGN_CENTER
|
||||
MENU_BW = BOUND_WIDTH
|
||||
MENU_MAX = 300
|
||||
POSITIONER = 23
|
||||
NORMAL_POSITIONER = 0
|
||||
POSITIONER_BOXTYPE = DOWN_BOX
|
||||
POSITIONER_COL1 = COL1
|
||||
POSITIONER_COL2 = 1
|
||||
POSITIONER_LCOL = LCOL
|
||||
POSITIONER_ALIGN = ALIGN_BOTTOM
|
||||
POSITIONER_BW = BOUND_WIDTH
|
||||
ROUNDBUTTON = 13
|
||||
ROUNDBUTTON_BOXTYPE = NO_BOX
|
||||
ROUNDBUTTON_COL1 = 7
|
||||
ROUNDBUTTON_COL2 = 3
|
||||
ROUNDBUTTON_LCOL = LCOL
|
||||
ROUNDBUTTON_ALIGN = ALIGN_CENTER
|
||||
ROUNDBUTTON_TOPCOL = COL1
|
||||
ROUNDBUTTON_MCOL = MCOL
|
||||
ROUNDBUTTON_BW = BOUND_WIDTH
|
||||
SLIDER = 21
|
||||
VALSLIDER = 24
|
||||
VERT_SLIDER = 0
|
||||
HOR_SLIDER = 1
|
||||
VERT_FILL_SLIDER = 2
|
||||
HOR_FILL_SLIDER = 3
|
||||
VERT_NICE_SLIDER = 4
|
||||
HOR_NICE_SLIDER = 5
|
||||
SLIDER_BOXTYPE = DOWN_BOX
|
||||
SLIDER_COL1 = COL1
|
||||
SLIDER_COL2 = COL1
|
||||
SLIDER_LCOL = LCOL
|
||||
SLIDER_ALIGN = ALIGN_BOTTOM
|
||||
SLIDER_BW1 = BOUND_WIDTH
|
||||
SLIDER_BW2 = BOUND_WIDTH*0.75
|
||||
SLIDER_FINE = 0.05
|
||||
SLIDER_WIDTH = 0.08
|
||||
TEXT = 2
|
||||
NORMAL_TEXT = 0
|
||||
TEXT_BOXTYPE = NO_BOX
|
||||
TEXT_COL1 = COL1
|
||||
TEXT_LCOL = LCOL
|
||||
TEXT_ALIGN = ALIGN_LEFT
|
||||
TEXT_BW = BOUND_WIDTH
|
||||
TIMER = 62
|
||||
NORMAL_TIMER = 0
|
||||
VALUE_TIMER = 1
|
||||
HIDDEN_TIMER = 2
|
||||
TIMER_BOXTYPE = DOWN_BOX
|
||||
TIMER_COL1 = COL1
|
||||
TIMER_COL2 = 1
|
||||
TIMER_LCOL = LCOL
|
||||
TIMER_ALIGN = ALIGN_CENTER
|
||||
TIMER_BW = BOUND_WIDTH
|
||||
TIMER_BLINKRATE = 0.2
|
|
@ -0,0 +1,59 @@
|
|||
# Symbols from <gl/get.h>
|
||||
|
||||
BCKBUFFER = 0x1
|
||||
FRNTBUFFER = 0x2
|
||||
DRAWZBUFFER = 0x4
|
||||
DMRGB = 0
|
||||
DMSINGLE = 1
|
||||
DMDOUBLE = 2
|
||||
DMRGBDOUBLE = 5
|
||||
HZ30 = 0
|
||||
HZ60 = 1
|
||||
NTSC = 2
|
||||
HDTV = 3
|
||||
VGA = 4
|
||||
IRIS3K = 5
|
||||
PR60 = 6
|
||||
PAL = 9
|
||||
HZ30_SG = 11
|
||||
A343 = 14
|
||||
STR_RECT = 15
|
||||
VOF0 = 16
|
||||
VOF1 = 17
|
||||
VOF2 = 18
|
||||
VOF3 = 19
|
||||
SGI0 = 20
|
||||
SGI1 = 21
|
||||
SGI2 = 22
|
||||
HZ72 = 23
|
||||
GL_VIDEO_REG = 0x00800000
|
||||
GLV_GENLOCK = 0x00000001
|
||||
GLV_UNBLANK = 0x00000002
|
||||
GLV_SRED = 0x00000004
|
||||
GLV_SGREEN = 0x00000008
|
||||
GLV_SBLUE = 0x00000010
|
||||
GLV_SALPHA = 0x00000020
|
||||
GLV_TTLGENLOCK = 0x00000080
|
||||
GLV_TTLSYNC = GLV_TTLGENLOCK
|
||||
GLV_GREENGENLOCK = 0x0000100
|
||||
LEFTPLANE = 0x0001
|
||||
RIGHTPLANE = 0x0002
|
||||
BOTTOMPLANE = 0x0004
|
||||
TOPPLANE = 0x0008
|
||||
NEARPLANE = 0x0010
|
||||
FARPLANE = 0x0020
|
||||
## GETDEF = __GL_GET_H__
|
||||
NOBUFFER = 0x0
|
||||
BOTHBUFFERS = 0x3
|
||||
DMINTENSITYSINGLE = 3
|
||||
DMINTENSITYDOUBLE = 4
|
||||
MONSPECIAL = 0x20
|
||||
HZ50 = 3
|
||||
MONA = 5
|
||||
MONB = 6
|
||||
MONC = 7
|
||||
MOND = 8
|
||||
MON_ALL = 12
|
||||
MON_GEN_ALL = 13
|
||||
CMAPMULTI = 0
|
||||
CMAPONE = 1
|
|
@ -0,0 +1,393 @@
|
|||
NULL = 0
|
||||
FALSE = 0
|
||||
TRUE = 1
|
||||
ATTRIBSTACKDEPTH = 10
|
||||
VPSTACKDEPTH = 8
|
||||
MATRIXSTACKDEPTH = 32
|
||||
NAMESTACKDEPTH = 1025
|
||||
STARTTAG = -2
|
||||
ENDTAG = -3
|
||||
BLACK = 0
|
||||
RED = 1
|
||||
GREEN = 2
|
||||
YELLOW = 3
|
||||
BLUE = 4
|
||||
MAGENTA = 5
|
||||
CYAN = 6
|
||||
WHITE = 7
|
||||
PUP_CLEAR = 0
|
||||
PUP_COLOR = 1
|
||||
PUP_BLACK = 2
|
||||
PUP_WHITE = 3
|
||||
NORMALDRAW = 0x010
|
||||
PUPDRAW = 0x020
|
||||
OVERDRAW = 0x040
|
||||
UNDERDRAW = 0x080
|
||||
CURSORDRAW = 0x100
|
||||
DUALDRAW = 0x200
|
||||
PATTERN_16 = 16
|
||||
PATTERN_32 = 32
|
||||
PATTERN_64 = 64
|
||||
PATTERN_16_SIZE = 16
|
||||
PATTERN_32_SIZE = 64
|
||||
PATTERN_64_SIZE = 256
|
||||
SRC_AUTO = 0
|
||||
SRC_FRONT = 1
|
||||
SRC_BACK = 2
|
||||
SRC_ZBUFFER = 3
|
||||
SRC_PUP = 4
|
||||
SRC_OVER = 5
|
||||
SRC_UNDER = 6
|
||||
SRC_FRAMEGRABBER = 7
|
||||
BF_ZERO = 0
|
||||
BF_ONE = 1
|
||||
BF_DC = 2
|
||||
BF_SC = 2
|
||||
BF_MDC = 3
|
||||
BF_MSC = 3
|
||||
BF_SA = 4
|
||||
BF_MSA = 5
|
||||
BF_DA = 6
|
||||
BF_MDA = 7
|
||||
BF_MIN_SA_MDA = 8
|
||||
AF_NEVER = 0
|
||||
AF_LESS = 1
|
||||
AF_EQUAL = 2
|
||||
AF_LEQUAL = 3
|
||||
AF_GREATER = 4
|
||||
AF_NOTEQUAL = 5
|
||||
AF_GEQUAL = 6
|
||||
AF_ALWAYS = 7
|
||||
ZF_NEVER = 0
|
||||
ZF_LESS = 1
|
||||
ZF_EQUAL = 2
|
||||
ZF_LEQUAL = 3
|
||||
ZF_GREATER = 4
|
||||
ZF_NOTEQUAL = 5
|
||||
ZF_GEQUAL = 6
|
||||
ZF_ALWAYS = 7
|
||||
ZSRC_DEPTH = 0
|
||||
ZSRC_COLOR = 1
|
||||
SMP_OFF = 0x0
|
||||
SMP_ON = 0x1
|
||||
SMP_SMOOTHER = 0x2
|
||||
SML_OFF = 0x0
|
||||
SML_ON = 0x1
|
||||
SML_SMOOTHER = 0x2
|
||||
SML_END_CORRECT = 0x4
|
||||
PYSM_OFF = 0
|
||||
PYSM_ON = 1
|
||||
PYSM_SHRINK = 2
|
||||
DT_OFF = 0
|
||||
DT_ON = 1
|
||||
PUP_NONE = 0
|
||||
PUP_GREY = 0x1
|
||||
PUP_BOX = 0x2
|
||||
PUP_CHECK = 0x4
|
||||
GLC_OLDPOLYGON = 0
|
||||
GLC_ZRANGEMAP = 1
|
||||
GLC_MQUEUERATE = 2
|
||||
GLC_SOFTATTACH = 3
|
||||
GLC_MANAGEBG = 4
|
||||
GLC_SLOWMAPCOLORS = 5
|
||||
GLC_INPUTCHANGEBUG = 6
|
||||
GLC_NOBORDERBUG = 7
|
||||
GLC_SET_VSYNC = 8
|
||||
GLC_GET_VSYNC = 9
|
||||
GLC_VSYNC_SLEEP = 10
|
||||
GLC_COMPATRATE = 15
|
||||
C16X1 = 0
|
||||
C16X2 = 1
|
||||
C32X1 = 2
|
||||
C32X2 = 3
|
||||
CCROSS = 4
|
||||
FLAT = 0
|
||||
GOURAUD = 1
|
||||
LO_ZERO = 0x0
|
||||
LO_AND = 0x1
|
||||
LO_ANDR = 0x2
|
||||
LO_SRC = 0x3
|
||||
LO_ANDI = 0x4
|
||||
LO_DST = 0x5
|
||||
LO_XOR = 0x6
|
||||
LO_OR = 0x7
|
||||
LO_NOR = 0x8
|
||||
LO_XNOR = 0x9
|
||||
LO_NDST = 0xa
|
||||
LO_ORR = 0xb
|
||||
LO_NSRC = 0xc
|
||||
LO_ORI = 0xd
|
||||
LO_NAND = 0xe
|
||||
LO_ONE = 0xf
|
||||
INFOCUSSCRN = -2
|
||||
ST_KEEP = 0
|
||||
ST_ZERO = 1
|
||||
ST_REPLACE = 2
|
||||
ST_INCR = 3
|
||||
ST_DECR = 4
|
||||
ST_INVERT = 5
|
||||
SF_NEVER = 0
|
||||
SF_LESS = 1
|
||||
SF_EQUAL = 2
|
||||
SF_LEQUAL = 3
|
||||
SF_GREATER = 4
|
||||
SF_NOTEQUAL = 5
|
||||
SF_GEQUAL = 6
|
||||
SF_ALWAYS = 7
|
||||
SS_OFF = 0
|
||||
SS_DEPTH = 1
|
||||
PYM_FILL = 1
|
||||
PYM_POINT = 2
|
||||
PYM_LINE = 3
|
||||
PYM_HOLLOW = 4
|
||||
PYM_LINE_FAST = 5
|
||||
FG_OFF = 0
|
||||
FG_ON = 1
|
||||
FG_DEFINE = 2
|
||||
FG_VTX_EXP = 2
|
||||
FG_VTX_LIN = 3
|
||||
FG_PIX_EXP = 4
|
||||
FG_PIX_LIN = 5
|
||||
FG_VTX_EXP2 = 6
|
||||
FG_PIX_EXP2 = 7
|
||||
PM_SHIFT = 0
|
||||
PM_EXPAND = 1
|
||||
PM_C0 = 2
|
||||
PM_C1 = 3
|
||||
PM_ADD24 = 4
|
||||
PM_SIZE = 5
|
||||
PM_OFFSET = 6
|
||||
PM_STRIDE = 7
|
||||
PM_TTOB = 8
|
||||
PM_RTOL = 9
|
||||
PM_ZDATA = 10
|
||||
PM_WARP = 11
|
||||
PM_RDX = 12
|
||||
PM_RDY = 13
|
||||
PM_CDX = 14
|
||||
PM_CDY = 15
|
||||
PM_XSTART = 16
|
||||
PM_YSTART = 17
|
||||
PM_VO1 = 1000
|
||||
NAUTO = 0
|
||||
NNORMALIZE = 1
|
||||
AC_CLEAR = 0
|
||||
AC_ACCUMULATE = 1
|
||||
AC_CLEAR_ACCUMULATE = 2
|
||||
AC_RETURN = 3
|
||||
AC_MULT = 4
|
||||
AC_ADD = 5
|
||||
CP_OFF = 0
|
||||
CP_ON = 1
|
||||
CP_DEFINE = 2
|
||||
SB_RESET = 0
|
||||
SB_TRACK = 1
|
||||
SB_HOLD = 2
|
||||
RD_FREEZE = 0x00000001
|
||||
RD_ALPHAONE = 0x00000002
|
||||
RD_IGNORE_UNDERLAY = 0x00000004
|
||||
RD_IGNORE_OVERLAY = 0x00000008
|
||||
RD_IGNORE_PUP = 0x00000010
|
||||
RD_OFFSCREEN = 0x00000020
|
||||
GD_XPMAX = 0
|
||||
GD_YPMAX = 1
|
||||
GD_XMMAX = 2
|
||||
GD_YMMAX = 3
|
||||
GD_ZMIN = 4
|
||||
GD_ZMAX = 5
|
||||
GD_BITS_NORM_SNG_RED = 6
|
||||
GD_BITS_NORM_SNG_GREEN = 7
|
||||
GD_BITS_NORM_SNG_BLUE = 8
|
||||
GD_BITS_NORM_DBL_RED = 9
|
||||
GD_BITS_NORM_DBL_GREEN = 10
|
||||
GD_BITS_NORM_DBL_BLUE = 11
|
||||
GD_BITS_NORM_SNG_CMODE = 12
|
||||
GD_BITS_NORM_DBL_CMODE = 13
|
||||
GD_BITS_NORM_SNG_MMAP = 14
|
||||
GD_BITS_NORM_DBL_MMAP = 15
|
||||
GD_BITS_NORM_ZBUFFER = 16
|
||||
GD_BITS_OVER_SNG_CMODE = 17
|
||||
GD_BITS_UNDR_SNG_CMODE = 18
|
||||
GD_BITS_PUP_SNG_CMODE = 19
|
||||
GD_BITS_NORM_SNG_ALPHA = 21
|
||||
GD_BITS_NORM_DBL_ALPHA = 22
|
||||
GD_BITS_CURSOR = 23
|
||||
GD_OVERUNDER_SHARED = 24
|
||||
GD_BLEND = 25
|
||||
GD_CIFRACT = 26
|
||||
GD_CROSSHAIR_CINDEX = 27
|
||||
GD_DITHER = 28
|
||||
GD_LINESMOOTH_CMODE = 30
|
||||
GD_LINESMOOTH_RGB = 31
|
||||
GD_LOGICOP = 33
|
||||
GD_NSCRNS = 35
|
||||
GD_NURBS_ORDER = 36
|
||||
GD_NBLINKS = 37
|
||||
GD_NVERTEX_POLY = 39
|
||||
GD_PATSIZE_64 = 40
|
||||
GD_PNTSMOOTH_CMODE = 41
|
||||
GD_PNTSMOOTH_RGB = 42
|
||||
GD_PUP_TO_OVERUNDER = 43
|
||||
GD_READSOURCE = 44
|
||||
GD_READSOURCE_ZBUFFER = 48
|
||||
GD_STEREO = 50
|
||||
GD_SUBPIXEL_LINE = 51
|
||||
GD_SUBPIXEL_PNT = 52
|
||||
GD_SUBPIXEL_POLY = 53
|
||||
GD_TRIMCURVE_ORDER = 54
|
||||
GD_WSYS = 55
|
||||
GD_ZDRAW_GEOM = 57
|
||||
GD_ZDRAW_PIXELS = 58
|
||||
GD_SCRNTYPE = 61
|
||||
GD_TEXTPORT = 62
|
||||
GD_NMMAPS = 63
|
||||
GD_FRAMEGRABBER = 64
|
||||
GD_TIMERHZ = 66
|
||||
GD_DBBOX = 67
|
||||
GD_AFUNCTION = 68
|
||||
GD_ALPHA_OVERUNDER = 69
|
||||
GD_BITS_ACBUF = 70
|
||||
GD_BITS_ACBUF_HW = 71
|
||||
GD_BITS_STENCIL = 72
|
||||
GD_CLIPPLANES = 73
|
||||
GD_FOGVERTEX = 74
|
||||
GD_LIGHTING_TWOSIDE = 76
|
||||
GD_POLYMODE = 77
|
||||
GD_POLYSMOOTH = 78
|
||||
GD_SCRBOX = 79
|
||||
GD_TEXTURE = 80
|
||||
GD_FOGPIXEL = 81
|
||||
GD_TEXTURE_PERSP = 82
|
||||
GD_MUXPIPES = 83
|
||||
GD_NOLIMIT = -2
|
||||
GD_WSYS_NONE = 0
|
||||
GD_WSYS_4S = 1
|
||||
GD_SCRNTYPE_WM = 0
|
||||
GD_SCRNTYPE_NOWM = 1
|
||||
N_PIXEL_TOLERANCE = 1
|
||||
N_CULLING = 2
|
||||
N_DISPLAY = 3
|
||||
N_ERRORCHECKING = 4
|
||||
N_SUBDIVISIONS = 5
|
||||
N_S_STEPS = 6
|
||||
N_T_STEPS = 7
|
||||
N_TILES = 8
|
||||
N_TMP1 = 9
|
||||
N_TMP2 = 10
|
||||
N_TMP3 = 11
|
||||
N_TMP4 = 12
|
||||
N_TMP5 = 13
|
||||
N_TMP6 = 14
|
||||
N_FILL = 1.0
|
||||
N_OUTLINE_POLY = 2.0
|
||||
N_OUTLINE_PATCH = 5.0
|
||||
N_ISOLINE_S = 12.0
|
||||
N_ST = 0x8
|
||||
N_STW = 0xd
|
||||
N_XYZ = 0x4c
|
||||
N_XYZW = 0x51
|
||||
N_TEX = 0x88
|
||||
N_TEXW = 0x8d
|
||||
N_RGBA = 0xd0
|
||||
N_RGBAW = 0xd5
|
||||
N_P2D = 0x8
|
||||
N_P2DR = 0xd
|
||||
N_V3D = 0x4c
|
||||
N_V3DR = 0x51
|
||||
N_T2D = 0x88
|
||||
N_T2DR = 0x8d
|
||||
N_C4D = 0xd0
|
||||
N_C4DR = 0xd5
|
||||
LMNULL = 0.0
|
||||
MSINGLE = 0
|
||||
MPROJECTION = 1
|
||||
MVIEWING = 2
|
||||
MTEXTURE = 3
|
||||
MAXLIGHTS = 8
|
||||
MAXRESTRICTIONS = 4
|
||||
DEFMATERIAL = 0
|
||||
EMISSION = 1
|
||||
AMBIENT = 2
|
||||
DIFFUSE = 3
|
||||
SPECULAR = 4
|
||||
SHININESS = 5
|
||||
COLORINDEXES = 6
|
||||
ALPHA = 7
|
||||
DEFLIGHT = 100
|
||||
LCOLOR = 101
|
||||
POSITION = 102
|
||||
SPOTDIRECTION = 103
|
||||
SPOTLIGHT = 104
|
||||
DEFLMODEL = 200
|
||||
LOCALVIEWER = 201
|
||||
ATTENUATION = 202
|
||||
ATTENUATION2 = 203
|
||||
TWOSIDE = 204
|
||||
MATERIAL = 1000
|
||||
BACKMATERIAL = 1001
|
||||
LIGHT0 = 1100
|
||||
LIGHT1 = 1101
|
||||
LIGHT2 = 1102
|
||||
LIGHT3 = 1103
|
||||
LIGHT4 = 1104
|
||||
LIGHT5 = 1105
|
||||
LIGHT6 = 1106
|
||||
LIGHT7 = 1107
|
||||
LMODEL = 1200
|
||||
LMC_COLOR = 0
|
||||
LMC_EMISSION = 1
|
||||
LMC_AMBIENT = 2
|
||||
LMC_DIFFUSE = 3
|
||||
LMC_SPECULAR = 4
|
||||
LMC_AD = 5
|
||||
LMC_NULL = 6
|
||||
TX_MINFILTER = 0x100
|
||||
TX_MAGFILTER = 0x200
|
||||
TX_WRAP = 0x300
|
||||
TX_WRAP_S = 0x310
|
||||
TX_WRAP_T = 0x320
|
||||
TX_TILE = 0x400
|
||||
TX_BORDER = 0x500
|
||||
TX_NULL = 0x000
|
||||
TX_POINT = 0x110
|
||||
TX_BILINEAR = 0x220
|
||||
TX_MIPMAP = 0x120
|
||||
TX_MIPMAP_POINT = 0x121
|
||||
TX_MIPMAP_LINEAR = 0x122
|
||||
TX_MIPMAP_BILINEAR = 0x123
|
||||
TX_MIPMAP_TRILINEAR = 0x124
|
||||
TX_REPEAT = 0x301
|
||||
TX_CLAMP = 0x302
|
||||
TX_SELECT = 0x303
|
||||
TX_TEXTURE_0 = 0
|
||||
TV_MODULATE = 0x101
|
||||
TV_BLEND = 0x102
|
||||
TV_DECAL = 0x103
|
||||
TV_COLOR = 0x200
|
||||
TV_NULL = 0x000
|
||||
TV_ENV0 = 0
|
||||
TX_S = 0
|
||||
TX_T = 1
|
||||
TG_OFF = 0
|
||||
TG_ON = 1
|
||||
TG_CONTOUR = 2
|
||||
TG_LINEAR = 3
|
||||
TG_SPHEREMAP = 4
|
||||
TG_REFRACTMAP = 5
|
||||
DGLSINK = 0
|
||||
DGLLOCAL = 1
|
||||
DGLTSOCKET = 2
|
||||
DGL4DDN = 3
|
||||
PUP_CURSOR = PUP_COLOR
|
||||
FATAL = 1
|
||||
WARNING = 2
|
||||
ASK_CONT = 3
|
||||
ASK_RESTART = 4
|
||||
XMAXSCREEN = 1279
|
||||
YMAXSCREEN = 1023
|
||||
XMAXMEDIUM = 1023
|
||||
YMAXMEDIUM = 767
|
||||
XMAX170 = 645
|
||||
YMAX170 = 484
|
||||
XMAXPAL = 779
|
||||
YMAXPAL = 574
|
|
@ -0,0 +1,12 @@
|
|||
NOERROR = 0
|
||||
NOCONTEXT = -1
|
||||
NODISPLAY = -2
|
||||
NOWINDOW = -3
|
||||
NOGRAPHICS = -4
|
||||
NOTTOP = -5
|
||||
NOVISUAL = -6
|
||||
BUFSIZE = -7
|
||||
BADWINDOW = -8
|
||||
ALREADYBOUND = -100
|
||||
BINDFAILED = -101
|
||||
SETFAILED = -102
|
|
@ -0,0 +1,133 @@
|
|||
# Generated by h2py from /usr/include/netinet/in.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
|
||||
# Included from sys/endian.h
|
||||
LITTLE_ENDIAN = 1234
|
||||
BIG_ENDIAN = 4321
|
||||
PDP_ENDIAN = 3412
|
||||
BYTE_ORDER = BIG_ENDIAN
|
||||
BYTE_ORDER = LITTLE_ENDIAN
|
||||
def ntohl(x): return (x)
|
||||
|
||||
def ntohs(x): return (x)
|
||||
|
||||
def htonl(x): return (x)
|
||||
|
||||
def htons(x): return (x)
|
||||
|
||||
def htonl(x): return ntohl(x)
|
||||
|
||||
def htons(x): return ntohs(x)
|
||||
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
|
||||
# Included from standards.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
IPPROTO_IP = 0
|
||||
IPPROTO_ICMP = 1
|
||||
IPPROTO_IGMP = 2
|
||||
IPPROTO_GGP = 3
|
||||
IPPROTO_IPIP = 4
|
||||
IPPROTO_ENCAP = IPPROTO_IPIP
|
||||
IPPROTO_ST = 5
|
||||
IPPROTO_TCP = 6
|
||||
IPPROTO_EGP = 8
|
||||
IPPROTO_PUP = 12
|
||||
IPPROTO_UDP = 17
|
||||
IPPROTO_IDP = 22
|
||||
IPPROTO_TP = 29
|
||||
IPPROTO_XTP = 36
|
||||
IPPROTO_RSVP = 46
|
||||
IPPROTO_HELLO = 63
|
||||
IPPROTO_ND = 77
|
||||
IPPROTO_EON = 80
|
||||
IPPROTO_OSPF = 89
|
||||
IPPROTO_SWIPE = 94
|
||||
IPPROTO_RAW = 255
|
||||
IPPROTO_MAX = 256
|
||||
IPPORT_RESERVED = 1024
|
||||
IPPORT_MAXPORT = 65535
|
||||
def IN_CLASSA(i): return (((__int32_t)(i) & 0x80000000) == 0)
|
||||
|
||||
IN_CLASSA_NET = 0xff000000
|
||||
IN_CLASSA_NSHIFT = 24
|
||||
IN_CLASSA_HOST = 0x00ffffff
|
||||
IN_CLASSA_MAX = 128
|
||||
def IN_CLASSB(i): return (((__int32_t)(i) & 0xc0000000) == 0x80000000)
|
||||
|
||||
IN_CLASSB_NET = 0xffff0000
|
||||
IN_CLASSB_NSHIFT = 16
|
||||
IN_CLASSB_HOST = 0x0000ffff
|
||||
IN_CLASSB_MAX = 65536
|
||||
def IN_CLASSC(i): return (((__int32_t)(i) & 0xe0000000) == 0xc0000000)
|
||||
|
||||
IN_CLASSC_NET = 0xffffff00
|
||||
IN_CLASSC_NSHIFT = 8
|
||||
IN_CLASSC_HOST = 0x000000ff
|
||||
def IN_CLASSD(i): return (((__int32_t)(i) & 0xf0000000) == 0xe0000000)
|
||||
|
||||
IN_CLASSD_NET = 0xf0000000
|
||||
IN_CLASSD_NSHIFT = 28
|
||||
IN_CLASSD_HOST = 0x0fffffff
|
||||
def IN_MULTICAST(i): return IN_CLASSD(i)
|
||||
|
||||
def IN_EXPERIMENTAL(i): return (((__int32_t)(i) & 0xf0000000) == 0xf0000000)
|
||||
|
||||
def IN_BADCLASS(i): return (((__int32_t)(i) & 0xf0000000) == 0xf0000000)
|
||||
|
||||
INADDR_NONE = 0xffffffff
|
||||
IN_LOOPBACKNET = 127
|
||||
IP_OPTIONS = 1
|
||||
IP_HDRINCL = 2
|
||||
IP_TOS = 3
|
||||
IP_TTL = 4
|
||||
IP_RECVOPTS = 5
|
||||
IP_RECVRETOPTS = 6
|
||||
IP_RECVDSTADDR = 7
|
||||
IP_RETOPTS = 8
|
||||
IP_MULTICAST_IF = 20
|
||||
IP_MULTICAST_TTL = 21
|
||||
IP_MULTICAST_LOOP = 22
|
||||
IP_ADD_MEMBERSHIP = 23
|
||||
IP_DROP_MEMBERSHIP = 24
|
||||
IP_MULTICAST_VIF = 25
|
||||
IP_RSVP_VIF_ON = 26
|
||||
IP_RSVP_VIF_OFF = 27
|
||||
IP_RSVP_ON = 28
|
||||
IP_SENDSRCADDR = 36
|
||||
IP_DEFAULT_MULTICAST_TTL = 1
|
||||
IP_DEFAULT_MULTICAST_LOOP = 1
|
||||
IP_MAX_MEMBERSHIPS = 20
|
|
@ -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
|
|
@ -0,0 +1,152 @@
|
|||
# Generated by h2py from /usr/include/sys/socket.h
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
|
||||
# Included from standards.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
NC_TPI_CLTS = 1
|
||||
NC_TPI_COTS = 2
|
||||
NC_TPI_COTS_ORD = 3
|
||||
NC_TPI_RAW = 4
|
||||
SOCK_DGRAM = NC_TPI_CLTS
|
||||
SOCK_STREAM = NC_TPI_COTS
|
||||
SOCK_RAW = NC_TPI_RAW
|
||||
SOCK_RDM = 5
|
||||
SOCK_SEQPACKET = 6
|
||||
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_ORDREL = 0x0200
|
||||
SO_IMASOCKET = 0x0400
|
||||
SO_CHAMELEON = 0x1000
|
||||
SO_PASSIFNAME = 0x2000
|
||||
SO_SNDBUF = 0x1001
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_SNDLOWAT = 0x1003
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_SNDTIMEO = 0x1005
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_ERROR = 0x1007
|
||||
SO_TYPE = 0x1008
|
||||
SO_PROTOTYPE = 0x1009
|
||||
SOL_SOCKET = 0xffff
|
||||
AF_UNSPEC = 0
|
||||
AF_LOCAL = 1
|
||||
AF_UNIX = AF_LOCAL
|
||||
AF_INET = 2
|
||||
AF_IMPLINK = 3
|
||||
AF_PUP = 4
|
||||
AF_CHAOS = 5
|
||||
AF_NS = 6
|
||||
AF_ISO = 7
|
||||
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_NIT = 17
|
||||
AF_802 = 18
|
||||
AF_OSI = 19
|
||||
AF_X25 = 20
|
||||
AF_OSINET = 21
|
||||
AF_GOSIP = 22
|
||||
AF_SDL = 23
|
||||
AF_INET6 = 24
|
||||
AF_LINK = 25
|
||||
AF_MAX = (AF_LINK+1)
|
||||
_SIN_ADDR_SIZE = 8
|
||||
_SIN_SA_DATA_SIZE = 14
|
||||
_MAX_SA_LEN = 20
|
||||
def OPTLEN(x): return ((((x) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
|
||||
|
||||
PF_UNSPEC = AF_UNSPEC
|
||||
PF_LOCAL = AF_LOCAL
|
||||
PF_UNIX = PF_LOCAL
|
||||
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_NIT = AF_NIT
|
||||
PF_802 = AF_802
|
||||
PF_X25 = AF_X25
|
||||
PF_OSINET = AF_OSINET
|
||||
PF_GOSIP = AF_GOSIP
|
||||
PF_INET6 = AF_INET6
|
||||
PF_MAX = AF_MAX
|
||||
NET_RT_DUMP = 1
|
||||
NET_RT_FLAGS = 2
|
||||
NET_RT_IFLIST = 3
|
||||
IPCTL_FORWARDING = 1
|
||||
IPCTL_SENDREDIRECTS = 2
|
||||
UDPCTL_CHECKSUM = 1
|
||||
SOMAXCONN = 1000
|
||||
MSG_OOB = 0x1
|
||||
MSG_PEEK = 0x2
|
||||
MSG_DONTROUTE = 0x4
|
||||
MSG_EOR = 0x8
|
||||
MSG_TRUNC = 0x10
|
||||
MSG_CTRUNC = 0x20
|
||||
MSG_WAITALL = 0x40
|
||||
MSG_DONTWAIT = 0x80
|
||||
MSG_BTAG = 0x40
|
||||
MSG_ETAG = 0x80
|
||||
MSG_MAXIOVLEN = 16
|
||||
_ALIGNBYTES = 7
|
||||
def _ALIGN(p): return (((u_int)(p) + _ALIGNBYTES) & ~_ALIGNBYTES)
|
||||
|
||||
SCM_RIGHTS = 0x01
|
|
@ -0,0 +1,120 @@
|
|||
NTSC_XMAX = 640
|
||||
NTSC_YMAX = 480
|
||||
PAL_XMAX = 768
|
||||
PAL_YMAX = 576
|
||||
BLANKING_BUFFER_SIZE = 2
|
||||
|
||||
MAX_SOURCES = 2
|
||||
|
||||
# mode parameter for Bind calls
|
||||
IN_OFF = 0 # No Video
|
||||
IN_OVER = 1 # Video over graphics
|
||||
IN_UNDER = 2 # Video under graphics
|
||||
IN_REPLACE = 3 # Video replaces entire win
|
||||
|
||||
# mode parameters for LoadMap calls. Specifies buffer, always 256 entries
|
||||
INPUT_COLORMAP = 0 # tuples of 8-bit RGB
|
||||
CHROMA_KEY_MAP = 1 # tuples of 8-bit RGB
|
||||
COLOR_SPACE_MAP = 2 # tuples of 8-bit RGB
|
||||
GAMMA_MAP = 3 # tuples of 24-bit red values
|
||||
|
||||
# mode parameters for UseExclusive calls
|
||||
INPUT = 0
|
||||
OUTPUT = 1
|
||||
IN_OUT = 2
|
||||
|
||||
# Format constants for the capture routines
|
||||
RGB8_FRAMES = 0 # noninterleaved 8 bit 3:2:3 RBG fields
|
||||
RGB32_FRAMES = 1 # 32-bit 8:8:8 RGB frames
|
||||
YUV411_FRAMES = 2 # interleaved, 8:2:2 YUV format
|
||||
YUV411_FRAMES_AND_BLANKING_BUFFER = 3
|
||||
|
||||
#
|
||||
# sv.SetParam is passed variable length argument lists,
|
||||
# consisting of <name, value> pairs. The following
|
||||
# constants identify argument names.
|
||||
#
|
||||
_NAME_BASE = 1000
|
||||
SOURCE = (_NAME_BASE + 0)
|
||||
SOURCE1 = 0
|
||||
SOURCE2 = 1
|
||||
SOURCE3 = 2
|
||||
COLOR = (_NAME_BASE + 1)
|
||||
DEFAULT_COLOR = 0
|
||||
USER_COLOR = 1
|
||||
MONO = 2
|
||||
OUTPUTMODE = (_NAME_BASE + 2)
|
||||
LIVE_OUTPUT = 0
|
||||
STILL24_OUT = 1
|
||||
FREEZE = (_NAME_BASE + 3)
|
||||
DITHER = (_NAME_BASE + 4)
|
||||
OUTPUT_FILTER = (_NAME_BASE + 5)
|
||||
HUE = (_NAME_BASE + 6)
|
||||
GENLOCK = (_NAME_BASE + 7)
|
||||
GENLOCK_OFF = 0
|
||||
GENLOCK_ON = 1
|
||||
GENLOCK_HOUSE = 2
|
||||
BROADCAST = (_NAME_BASE + 8)
|
||||
NTSC = 0
|
||||
PAL = 1
|
||||
VIDEO_MODE = (_NAME_BASE + 9)
|
||||
COMP = 0
|
||||
SVIDEO = 1
|
||||
INPUT_BYPASS = (_NAME_BASE + 10)
|
||||
FIELDDROP = (_NAME_BASE + 11)
|
||||
SLAVE = (_NAME_BASE + 12)
|
||||
APERTURE_FACTOR = (_NAME_BASE + 13)
|
||||
AFACTOR_0 = 0
|
||||
AFACTOR_QTR = 1
|
||||
AFACTOR_HLF = 2
|
||||
AFACTOR_ONE = 3
|
||||
CORING = (_NAME_BASE + 14)
|
||||
COR_OFF = 0
|
||||
COR_1LSB = 1
|
||||
COR_2LSB = 2
|
||||
COR_3LSB = 3
|
||||
APERTURE_BANDPASS = (_NAME_BASE + 15)
|
||||
ABAND_F0 = 0
|
||||
ABAND_F1 = 1
|
||||
ABAND_F2 = 2
|
||||
ABAND_F3 = 3
|
||||
PREFILTER = (_NAME_BASE + 16)
|
||||
CHROMA_TRAP = (_NAME_BASE + 17)
|
||||
CK_THRESHOLD = (_NAME_BASE + 18)
|
||||
PAL_SENSITIVITY = (_NAME_BASE + 19)
|
||||
GAIN_CONTROL = (_NAME_BASE + 20)
|
||||
GAIN_SLOW = 0
|
||||
GAIN_MEDIUM = 1
|
||||
GAIN_FAST = 2
|
||||
GAIN_FROZEN = 3
|
||||
AUTO_CKILL = (_NAME_BASE + 21)
|
||||
VTR_MODE = (_NAME_BASE + 22)
|
||||
VTR_INPUT = 0
|
||||
CAMERA_INPUT = 1
|
||||
LUMA_DELAY = (_NAME_BASE + 23)
|
||||
VNOISE = (_NAME_BASE + 24)
|
||||
VNOISE_NORMAL = 0
|
||||
VNOISE_SEARCH = 1
|
||||
VNOISE_AUTO = 2
|
||||
VNOISE_BYPASS = 3
|
||||
CHCV_PAL = (_NAME_BASE + 25)
|
||||
CHCV_NTSC = (_NAME_BASE + 26)
|
||||
CCIR_LEVELS = (_NAME_BASE + 27)
|
||||
STD_CHROMA = (_NAME_BASE + 28)
|
||||
DENC_VTBYPASS = (_NAME_BASE + 29)
|
||||
FAST_TIMECONSTANT = (_NAME_BASE + 30)
|
||||
GENLOCK_DELAY = (_NAME_BASE + 31)
|
||||
PHASE_SYNC = (_NAME_BASE + 32)
|
||||
VIDEO_OUTPUT = (_NAME_BASE + 33)
|
||||
CHROMA_PHASEOUT = (_NAME_BASE + 34)
|
||||
CHROMA_CENTER = (_NAME_BASE + 35)
|
||||
YUV_TO_RGB_INVERT = (_NAME_BASE + 36)
|
||||
SOURCE1_BROADCAST = (_NAME_BASE + 37)
|
||||
SOURCE1_MODE = (_NAME_BASE + 38)
|
||||
SOURCE2_BROADCAST = (_NAME_BASE + 39)
|
||||
SOURCE2_MODE = (_NAME_BASE + 40)
|
||||
SOURCE3_BROADCAST = (_NAME_BASE + 41)
|
||||
SOURCE3_MODE = (_NAME_BASE + 42)
|
||||
SIGNAL_STD = (_NAME_BASE + 43)
|
||||
NOSIGNAL = 2
|
||||
SIGNAL_COLOR = (_NAME_BASE + 44)
|
|
@ -0,0 +1,676 @@
|
|||
# Generated by h2py from /usr/include/sys/termios.h
|
||||
|
||||
# Included from standards.h
|
||||
|
||||
# Included from sys/ttydev.h
|
||||
__NEW_INVALID_BAUD = 1800
|
||||
__OLD_B0 = 0
|
||||
__OLD_B50 = 0000001
|
||||
__OLD_B75 = 0000002
|
||||
__OLD_B110 = 0000003
|
||||
__OLD_B134 = 0000004
|
||||
__OLD_B150 = 0000005
|
||||
__OLD_B200 = 0000006
|
||||
__OLD_B300 = 0000007
|
||||
__OLD_B600 = 0000010
|
||||
__OLD_B1200 = 0000011
|
||||
__OLD_B1800 = 0000012
|
||||
__OLD_B2400 = 0000013
|
||||
__OLD_B4800 = 0000014
|
||||
__OLD_B9600 = 0000015
|
||||
__OLD_B19200 = 0000016
|
||||
__OLD_EXTA = 0000016
|
||||
__OLD_B38400 = 0000017
|
||||
__OLD_EXTB = 0000017
|
||||
__OLD_INVALID_BAUD = __OLD_B1800
|
||||
B0 = 0
|
||||
B50 = 50
|
||||
B75 = 75
|
||||
B110 = 110
|
||||
B134 = 134
|
||||
B150 = 150
|
||||
B200 = 200
|
||||
B300 = 300
|
||||
B600 = 600
|
||||
B1200 = 1200
|
||||
B1800 = 1800
|
||||
B2400 = 2400
|
||||
B4800 = 4800
|
||||
B9600 = 9600
|
||||
B19200 = 19200
|
||||
EXTA = 19200
|
||||
B38400 = 38400
|
||||
EXTB = 38400
|
||||
B57600 = 57600
|
||||
B76800 = 76800
|
||||
B115200 = 115200
|
||||
__INVALID_BAUD = 1800
|
||||
B0 = __OLD_B0
|
||||
B50 = __OLD_B50
|
||||
B75 = __OLD_B75
|
||||
B110 = __OLD_B110
|
||||
B134 = __OLD_B134
|
||||
B150 = __OLD_B150
|
||||
B200 = __OLD_B200
|
||||
B300 = __OLD_B300
|
||||
B600 = __OLD_B600
|
||||
B1200 = __OLD_B1200
|
||||
B1800 = __OLD_B1800
|
||||
B2400 = __OLD_B2400
|
||||
B4800 = __OLD_B4800
|
||||
B9600 = __OLD_B9600
|
||||
B19200 = __OLD_B19200
|
||||
EXTA = __OLD_B19200
|
||||
B38400 = __OLD_B38400
|
||||
EXTB = __OLD_B38400
|
||||
__INVALID_BAUD = __OLD_INVALID_BAUD
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
_POSIX_VDISABLE = 0
|
||||
def CTRL(c): return ((c)&037)
|
||||
|
||||
IBSHIFT = 16
|
||||
NCC = 8
|
||||
NCCS = 23
|
||||
__NEW_MAX_BAUD = 500000
|
||||
VINTR = 0
|
||||
VQUIT = 1
|
||||
VERASE = 2
|
||||
VKILL = 3
|
||||
VEOF = 4
|
||||
VEOL = 5
|
||||
VEOL2 = 6
|
||||
VMIN = 4
|
||||
VTIME = 5
|
||||
VSWTCH = 7
|
||||
VSTART = 8
|
||||
VSTOP = 9
|
||||
VSUSP = 10
|
||||
VDSUSP = 11
|
||||
VREPRINT = 12
|
||||
VDISCARD = 13
|
||||
VWERASE = 14
|
||||
VLNEXT = 15
|
||||
VRPRNT = VREPRINT
|
||||
VFLUSHO = VDISCARD
|
||||
VCEOF = NCC
|
||||
VCEOL = (NCC + 1)
|
||||
CNUL = 0
|
||||
CDEL = 0377
|
||||
CESC = ord('\\')
|
||||
CINTR = 0177
|
||||
CQUIT = 034
|
||||
CERASE = CTRL(ord('H'))
|
||||
CKILL = CTRL(ord('U'))
|
||||
CEOL = 0
|
||||
CEOL2 = 0
|
||||
CEOF = CTRL(ord('d'))
|
||||
CEOT = CEOF
|
||||
CSTART = CTRL(ord('q'))
|
||||
CSTOP = CTRL(ord('s'))
|
||||
CSWTCH = CTRL(ord('z'))
|
||||
CNSWTCH = 0
|
||||
CSUSP = CSWTCH
|
||||
CLNEXT = CTRL(ord('v'))
|
||||
CWERASE = CTRL(ord('w'))
|
||||
CFLUSHO = CTRL(ord('o'))
|
||||
CFLUSH = CFLUSHO
|
||||
CRPRNT = CTRL(ord('r'))
|
||||
CDSUSP = CTRL(ord('y'))
|
||||
CBRK = 0377
|
||||
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
|
||||
IMAXBEL = 0020000
|
||||
IBLKMD = 0040000
|
||||
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
|
||||
XTABS = 0014000
|
||||
BSDLY = 0020000
|
||||
BS0 = 0
|
||||
BS1 = 0020000
|
||||
VTDLY = 0040000
|
||||
VT0 = 0
|
||||
VT1 = 0040000
|
||||
FFDLY = 0100000
|
||||
FF0 = 0
|
||||
FF1 = 0100000
|
||||
PAGEOUT = 0200000
|
||||
WRAP = 0400000
|
||||
CBAUD = 000000017
|
||||
CSIZE = 000000060
|
||||
CS5 = 0
|
||||
CS6 = 000000020
|
||||
CS7 = 000000040
|
||||
CS8 = 000000060
|
||||
CSTOPB = 000000100
|
||||
CREAD = 000000200
|
||||
PARENB = 000000400
|
||||
PARODD = 000001000
|
||||
HUPCL = 000002000
|
||||
CLOCAL = 000004000
|
||||
RCV1EN = 000010000
|
||||
XMT1EN = 000020000
|
||||
LOBLK = 000040000
|
||||
XCLUDE = 000100000
|
||||
CIBAUD = 003600000
|
||||
PAREXT = 004000000
|
||||
CNEW_RTSCTS = 010000000
|
||||
ISIG = 0000001
|
||||
ICANON = 0000002
|
||||
XCASE = 0000004
|
||||
ECHO = 0000010
|
||||
ECHOE = 0000020
|
||||
ECHOK = 0000040
|
||||
ECHONL = 0000100
|
||||
NOFLSH = 0000200
|
||||
IEXTEN = 0000400
|
||||
ITOSTOP = 0100000
|
||||
TOSTOP = ITOSTOP
|
||||
ECHOCTL = 0001000
|
||||
ECHOPRT = 0002000
|
||||
ECHOKE = 0004000
|
||||
DEFECHO = 0010000
|
||||
FLUSHO = 0020000
|
||||
PENDIN = 0040000
|
||||
TIOC = (ord('T')<<8)
|
||||
__NEW_TCGETA = (TIOC|201)
|
||||
__NEW_TCSETA = (TIOC|202)
|
||||
__NEW_TCSETAW = (TIOC|203)
|
||||
__NEW_TCSETAF = (TIOC|204)
|
||||
__OLD_TCGETA = (TIOC|1)
|
||||
__OLD_TCSETA = (TIOC|2)
|
||||
__OLD_TCSETAW = (TIOC|3)
|
||||
__OLD_TCSETAF = (TIOC|4)
|
||||
TCGETA = __NEW_TCGETA
|
||||
TCSETA = __NEW_TCSETA
|
||||
TCSETAW = __NEW_TCSETAW
|
||||
TCSETAF = __NEW_TCSETAF
|
||||
TCGETA = __OLD_TCGETA
|
||||
TCSETA = __OLD_TCSETA
|
||||
TCSETAW = __OLD_TCSETAW
|
||||
TCSETAF = __OLD_TCSETAF
|
||||
TCSBRK = (TIOC|5)
|
||||
TCXONC = (TIOC|6)
|
||||
TCFLSH = (TIOC|7)
|
||||
|
||||
# Included from sys/ioctl.h
|
||||
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)
|
||||
|
||||
# Included from sys/ioccom.h
|
||||
IOCPARM_MASK = 0xff
|
||||
IOC_VOID = 0x20000000
|
||||
IOC_OUT = 0x40000000
|
||||
IOC_IN = 0x80000000
|
||||
IOC_INOUT = (IOC_IN|IOC_OUT)
|
||||
|
||||
# Included from net/soioctl.h
|
||||
|
||||
# Included from sys/termio.h
|
||||
|
||||
# Included from sys/termios.h
|
||||
_POSIX_VDISABLE = 0
|
||||
def CTRL(c): return ((c)&037)
|
||||
|
||||
IBSHIFT = 16
|
||||
NCC = 8
|
||||
NCCS = 23
|
||||
__NEW_MAX_BAUD = 500000
|
||||
VINTR = 0
|
||||
VQUIT = 1
|
||||
VERASE = 2
|
||||
VKILL = 3
|
||||
VEOF = 4
|
||||
VEOL = 5
|
||||
VEOL2 = 6
|
||||
VMIN = 4
|
||||
VTIME = 5
|
||||
VSWTCH = 7
|
||||
VSTART = 8
|
||||
VSTOP = 9
|
||||
VSUSP = 10
|
||||
VDSUSP = 11
|
||||
VREPRINT = 12
|
||||
VDISCARD = 13
|
||||
VWERASE = 14
|
||||
VLNEXT = 15
|
||||
VRPRNT = VREPRINT
|
||||
VFLUSHO = VDISCARD
|
||||
VCEOF = NCC
|
||||
VCEOL = (NCC + 1)
|
||||
CNUL = 0
|
||||
CDEL = 0377
|
||||
CESC = ord('\\')
|
||||
CINTR = 0177
|
||||
CQUIT = 034
|
||||
CERASE = CTRL(ord('H'))
|
||||
CKILL = CTRL(ord('U'))
|
||||
CEOL = 0
|
||||
CEOL2 = 0
|
||||
CEOF = CTRL(ord('d'))
|
||||
CEOT = CEOF
|
||||
CSTART = CTRL(ord('q'))
|
||||
CSTOP = CTRL(ord('s'))
|
||||
CSWTCH = CTRL(ord('z'))
|
||||
CNSWTCH = 0
|
||||
CSUSP = CSWTCH
|
||||
CLNEXT = CTRL(ord('v'))
|
||||
CWERASE = CTRL(ord('w'))
|
||||
CFLUSHO = CTRL(ord('o'))
|
||||
CFLUSH = CFLUSHO
|
||||
CRPRNT = CTRL(ord('r'))
|
||||
CDSUSP = CTRL(ord('y'))
|
||||
CBRK = 0377
|
||||
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
|
||||
IMAXBEL = 0020000
|
||||
IBLKMD = 0040000
|
||||
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
|
||||
XTABS = 0014000
|
||||
BSDLY = 0020000
|
||||
BS0 = 0
|
||||
BS1 = 0020000
|
||||
VTDLY = 0040000
|
||||
VT0 = 0
|
||||
VT1 = 0040000
|
||||
FFDLY = 0100000
|
||||
FF0 = 0
|
||||
FF1 = 0100000
|
||||
PAGEOUT = 0200000
|
||||
WRAP = 0400000
|
||||
CBAUD = 000000017
|
||||
CSIZE = 000000060
|
||||
CS5 = 0
|
||||
CS6 = 000000020
|
||||
CS7 = 000000040
|
||||
CS8 = 000000060
|
||||
CSTOPB = 000000100
|
||||
CREAD = 000000200
|
||||
PARENB = 000000400
|
||||
PARODD = 000001000
|
||||
HUPCL = 000002000
|
||||
CLOCAL = 000004000
|
||||
RCV1EN = 000010000
|
||||
XMT1EN = 000020000
|
||||
LOBLK = 000040000
|
||||
XCLUDE = 000100000
|
||||
CIBAUD = 003600000
|
||||
PAREXT = 004000000
|
||||
CNEW_RTSCTS = 010000000
|
||||
ISIG = 0000001
|
||||
ICANON = 0000002
|
||||
XCASE = 0000004
|
||||
ECHO = 0000010
|
||||
ECHOE = 0000020
|
||||
ECHOK = 0000040
|
||||
ECHONL = 0000100
|
||||
NOFLSH = 0000200
|
||||
IEXTEN = 0000400
|
||||
ITOSTOP = 0100000
|
||||
TOSTOP = ITOSTOP
|
||||
ECHOCTL = 0001000
|
||||
ECHOPRT = 0002000
|
||||
ECHOKE = 0004000
|
||||
DEFECHO = 0010000
|
||||
FLUSHO = 0020000
|
||||
PENDIN = 0040000
|
||||
TIOC = (ord('T')<<8)
|
||||
__NEW_TCGETA = (TIOC|201)
|
||||
__NEW_TCSETA = (TIOC|202)
|
||||
__NEW_TCSETAW = (TIOC|203)
|
||||
__NEW_TCSETAF = (TIOC|204)
|
||||
__OLD_TCGETA = (TIOC|1)
|
||||
__OLD_TCSETA = (TIOC|2)
|
||||
__OLD_TCSETAW = (TIOC|3)
|
||||
__OLD_TCSETAF = (TIOC|4)
|
||||
TCGETA = __NEW_TCGETA
|
||||
TCSETA = __NEW_TCSETA
|
||||
TCSETAW = __NEW_TCSETAW
|
||||
TCSETAF = __NEW_TCSETAF
|
||||
TCGETA = __OLD_TCGETA
|
||||
TCSETA = __OLD_TCSETA
|
||||
TCSETAW = __OLD_TCSETAW
|
||||
TCSETAF = __OLD_TCSETAF
|
||||
TCSBRK = (TIOC|5)
|
||||
TCXONC = (TIOC|6)
|
||||
TCFLSH = (TIOC|7)
|
||||
LDISC0 = 0
|
||||
LDISC1 = 1
|
||||
NTTYDISC = LDISC1
|
||||
TIOCFLUSH = (TIOC|12)
|
||||
TCSETLABEL = (TIOC|31)
|
||||
TCDSET = (TIOC|32)
|
||||
TCBLKMD = (TIOC|33)
|
||||
TIOCPKT = (TIOC|112)
|
||||
TIOCPKT_DATA = 0x00
|
||||
TIOCPKT_FLUSHREAD = 0x01
|
||||
TIOCPKT_FLUSHWRITE = 0x02
|
||||
TIOCPKT_NOSTOP = 0x10
|
||||
TIOCPKT_DOSTOP = 0x20
|
||||
TIOCPKT_IOCTL = 0x40
|
||||
TIOCNOTTY = (TIOC|113)
|
||||
TIOCSTI = (TIOC|114)
|
||||
TFIOC = (ord('F')<<8)
|
||||
oFIONREAD = (TFIOC|127)
|
||||
TO_STOP = LOBLK
|
||||
IOCTYPE = 0xff00
|
||||
__NEW_TCGETS = (TIOC|213)
|
||||
__NEW_TCSETS = (TIOC|214)
|
||||
__NEW_TCSETSW = (TIOC|215)
|
||||
__NEW_TCSETSF = (TIOC|216)
|
||||
__OLD_TCGETS = (TIOC|13)
|
||||
__OLD_TCSETS = (TIOC|14)
|
||||
__OLD_TCSETSW = (TIOC|15)
|
||||
__OLD_TCSETSF = (TIOC|16)
|
||||
TCGETS = __NEW_TCGETS
|
||||
TCSETS = __NEW_TCSETS
|
||||
TCSETSW = __NEW_TCSETSW
|
||||
TCSETSF = __NEW_TCSETSF
|
||||
TCGETS = __OLD_TCGETS
|
||||
TCSETS = __OLD_TCSETS
|
||||
TCSETSW = __OLD_TCSETSW
|
||||
TCSETSF = __OLD_TCSETSF
|
||||
TCSANOW = ((ord('T')<<8)|14)
|
||||
TCSADRAIN = ((ord('T')<<8)|15)
|
||||
TCSAFLUSH = ((ord('T')<<8)|16)
|
||||
TCIFLUSH = 0
|
||||
TCOFLUSH = 1
|
||||
TCIOFLUSH = 2
|
||||
TCOOFF = 0
|
||||
TCOON = 1
|
||||
TCIOFF = 2
|
||||
TCION = 3
|
||||
tIOC = (ord('t')<<8)
|
||||
TIOCGETD = (tIOC|0)
|
||||
TIOCSETD = (tIOC|1)
|
||||
TIOCHPCL = (tIOC|2)
|
||||
TIOCGETP = (tIOC|8)
|
||||
TIOCSETP = (tIOC|9)
|
||||
TIOCSETN = (tIOC|10)
|
||||
TIOCEXCL = (tIOC|13)
|
||||
TIOCNXCL = (tIOC|14)
|
||||
TIOCSETC = (tIOC|17)
|
||||
TIOCGETC = (tIOC|18)
|
||||
TIOCLBIS = (tIOC|127)
|
||||
TIOCLBIC = (tIOC|126)
|
||||
TIOCLSET = (tIOC|125)
|
||||
TIOCLGET = (tIOC|124)
|
||||
TIOCSBRK = (tIOC|123)
|
||||
TIOCCBRK = (tIOC|122)
|
||||
TIOCSDTR = (tIOC|121)
|
||||
TIOCCDTR = (tIOC|120)
|
||||
TIOCSLTC = (tIOC|117)
|
||||
TIOCGLTC = (tIOC|116)
|
||||
TIOCOUTQ = (tIOC|115)
|
||||
TIOCSTOP = (tIOC|111)
|
||||
TIOCSTART = (tIOC|110)
|
||||
TIOCGSID = (tIOC|22)
|
||||
TIOCSSID = (tIOC|24)
|
||||
TIOCMSET = (tIOC|26)
|
||||
TIOCMBIS = (tIOC|27)
|
||||
TIOCMBIC = (tIOC|28)
|
||||
TIOCMGET = (tIOC|29)
|
||||
TIOCM_LE = 0001
|
||||
TIOCM_DTR = 0002
|
||||
TIOCM_RTS = 0004
|
||||
TIOCM_ST = 0010
|
||||
TIOCM_SR = 0020
|
||||
TIOCM_CTS = 0040
|
||||
TIOCM_CAR = 0100
|
||||
TIOCM_CD = TIOCM_CAR
|
||||
TIOCM_RNG = 0200
|
||||
TIOCM_RI = TIOCM_RNG
|
||||
TIOCM_DSR = 0400
|
||||
TIOCREMOTE = (tIOC|30)
|
||||
TIOCSIGNAL = (tIOC|31)
|
||||
ISPTM = ((ord('P')<<8)|1)
|
||||
UNLKPT = ((ord('P')<<8)|2)
|
||||
SVR4SOPEN = ((ord('P')<<8)|100)
|
||||
LDIOC = (ord('D')<<8)
|
||||
LDOPEN = (LDIOC|0)
|
||||
LDCLOSE = (LDIOC|1)
|
||||
LDCHG = (LDIOC|2)
|
||||
LDGETT = (LDIOC|8)
|
||||
LDSETT = (LDIOC|9)
|
||||
LDSMAP = (LDIOC|10)
|
||||
LDGMAP = (LDIOC|11)
|
||||
LDNMAP = (LDIOC|12)
|
||||
DIOC = (ord('d')<<8)
|
||||
DIOCGETP = (DIOC|8)
|
||||
DIOCSETP = (DIOC|9)
|
||||
FIORDCHK = ((ord('f')<<8)|3)
|
||||
CLNEXT = CTRL(ord('v'))
|
||||
CWERASE = CTRL(ord('w'))
|
||||
CFLUSHO = CTRL(ord('o'))
|
||||
CFLUSH = CFLUSHO
|
||||
CRPRNT = CTRL(ord('r'))
|
||||
CDSUSP = CTRL(ord('y'))
|
||||
__OLD_SSPEED = __OLD_B9600
|
||||
SSPEED = B9600
|
||||
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
|
||||
TIOCFLUSH = (TIOC|12)
|
||||
TCSETLABEL = (TIOC|31)
|
||||
TCDSET = (TIOC|32)
|
||||
TCBLKMD = (TIOC|33)
|
||||
TIOCPKT = (TIOC|112)
|
||||
TIOCPKT_DATA = 0x00
|
||||
TIOCPKT_FLUSHREAD = 0x01
|
||||
TIOCPKT_FLUSHWRITE = 0x02
|
||||
TIOCPKT_NOSTOP = 0x10
|
||||
TIOCPKT_DOSTOP = 0x20
|
||||
TIOCPKT_IOCTL = 0x40
|
||||
TIOCNOTTY = (TIOC|113)
|
||||
TIOCSTI = (TIOC|114)
|
||||
TFIOC = (ord('F')<<8)
|
||||
oFIONREAD = (TFIOC|127)
|
||||
TO_STOP = LOBLK
|
||||
IOCTYPE = 0xff00
|
||||
__NEW_TCGETS = (TIOC|213)
|
||||
__NEW_TCSETS = (TIOC|214)
|
||||
__NEW_TCSETSW = (TIOC|215)
|
||||
__NEW_TCSETSF = (TIOC|216)
|
||||
__OLD_TCGETS = (TIOC|13)
|
||||
__OLD_TCSETS = (TIOC|14)
|
||||
__OLD_TCSETSW = (TIOC|15)
|
||||
__OLD_TCSETSF = (TIOC|16)
|
||||
TCGETS = __NEW_TCGETS
|
||||
TCSETS = __NEW_TCSETS
|
||||
TCSETSW = __NEW_TCSETSW
|
||||
TCSETSF = __NEW_TCSETSF
|
||||
TCGETS = __OLD_TCGETS
|
||||
TCSETS = __OLD_TCSETS
|
||||
TCSETSW = __OLD_TCSETSW
|
||||
TCSETSF = __OLD_TCSETSF
|
||||
TCSANOW = ((ord('T')<<8)|14)
|
||||
TCSADRAIN = ((ord('T')<<8)|15)
|
||||
TCSAFLUSH = ((ord('T')<<8)|16)
|
||||
TCIFLUSH = 0
|
||||
TCOFLUSH = 1
|
||||
TCIOFLUSH = 2
|
||||
TCOOFF = 0
|
||||
TCOON = 1
|
||||
TCIOFF = 2
|
||||
TCION = 3
|
||||
tIOC = (ord('t')<<8)
|
||||
TIOCGETD = (tIOC|0)
|
||||
TIOCSETD = (tIOC|1)
|
||||
TIOCHPCL = (tIOC|2)
|
||||
TIOCGETP = (tIOC|8)
|
||||
TIOCSETP = (tIOC|9)
|
||||
TIOCSETN = (tIOC|10)
|
||||
TIOCEXCL = (tIOC|13)
|
||||
TIOCNXCL = (tIOC|14)
|
||||
TIOCSETC = (tIOC|17)
|
||||
TIOCGETC = (tIOC|18)
|
||||
TIOCLBIS = (tIOC|127)
|
||||
TIOCLBIC = (tIOC|126)
|
||||
TIOCLSET = (tIOC|125)
|
||||
TIOCLGET = (tIOC|124)
|
||||
TIOCSBRK = (tIOC|123)
|
||||
TIOCCBRK = (tIOC|122)
|
||||
TIOCSDTR = (tIOC|121)
|
||||
TIOCCDTR = (tIOC|120)
|
||||
TIOCSLTC = (tIOC|117)
|
||||
TIOCGLTC = (tIOC|116)
|
||||
TIOCOUTQ = (tIOC|115)
|
||||
TIOCSTOP = (tIOC|111)
|
||||
TIOCSTART = (tIOC|110)
|
||||
TIOCGSID = (tIOC|22)
|
||||
TIOCSSID = (tIOC|24)
|
||||
TIOCMSET = (tIOC|26)
|
||||
TIOCMBIS = (tIOC|27)
|
||||
TIOCMBIC = (tIOC|28)
|
||||
TIOCMGET = (tIOC|29)
|
||||
TIOCM_LE = 0001
|
||||
TIOCM_DTR = 0002
|
||||
TIOCM_RTS = 0004
|
||||
TIOCM_ST = 0010
|
||||
TIOCM_SR = 0020
|
||||
TIOCM_CTS = 0040
|
||||
TIOCM_CAR = 0100
|
||||
TIOCM_CD = TIOCM_CAR
|
||||
TIOCM_RNG = 0200
|
||||
TIOCM_RI = TIOCM_RNG
|
||||
TIOCM_DSR = 0400
|
||||
TIOCREMOTE = (tIOC|30)
|
||||
TIOCSIGNAL = (tIOC|31)
|
||||
ISPTM = ((ord('P')<<8)|1)
|
||||
UNLKPT = ((ord('P')<<8)|2)
|
||||
SVR4SOPEN = ((ord('P')<<8)|100)
|
||||
LDIOC = (ord('D')<<8)
|
||||
LDOPEN = (LDIOC|0)
|
||||
LDCLOSE = (LDIOC|1)
|
||||
LDCHG = (LDIOC|2)
|
||||
LDGETT = (LDIOC|8)
|
||||
LDSETT = (LDIOC|9)
|
||||
LDSMAP = (LDIOC|10)
|
||||
LDGMAP = (LDIOC|11)
|
||||
LDNMAP = (LDIOC|12)
|
||||
DIOC = (ord('d')<<8)
|
||||
DIOCGETP = (DIOC|8)
|
||||
DIOCSETP = (DIOC|9)
|
||||
FIORDCHK = ((ord('f')<<8)|3)
|
|
@ -0,0 +1,335 @@
|
|||
# Generated by h2py from /usr/include/sys/wait.h
|
||||
|
||||
# Included from standards.h
|
||||
def _W_INT(i): return (i)
|
||||
|
||||
WUNTRACED = 0004
|
||||
WNOHANG = 0100
|
||||
_WSTOPPED = 0177
|
||||
def WIFEXITED(stat): return ((_W_INT(stat)&0377)==0)
|
||||
|
||||
def WEXITSTATUS(stat): return ((_W_INT(stat)>>8)&0377)
|
||||
|
||||
def WTERMSIG(stat): return (_W_INT(stat)&0177)
|
||||
|
||||
def WSTOPSIG(stat): return ((_W_INT(stat)>>8)&0377)
|
||||
|
||||
WEXITED = 0001
|
||||
WTRAPPED = 0002
|
||||
WSTOPPED = 0004
|
||||
WCONTINUED = 0010
|
||||
WNOWAIT = 0200
|
||||
WOPTMASK = (WEXITED|WTRAPPED|WSTOPPED|WCONTINUED|WNOHANG|WNOWAIT)
|
||||
WSTOPFLG = 0177
|
||||
WCONTFLG = 0177777
|
||||
WCOREFLAG = 0200
|
||||
WSIGMASK = 0177
|
||||
def WWORD(stat): return (_W_INT(stat)&0177777)
|
||||
|
||||
def WIFCONTINUED(stat): return (WWORD(stat)==WCONTFLG)
|
||||
|
||||
def WCOREDUMP(stat): return (_W_INT(stat) & WCOREFLAG)
|
||||
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
|
||||
# Included from sys/procset.h
|
||||
P_INITPID = 1
|
||||
P_INITUID = 0
|
||||
P_INITPGID = 0
|
||||
|
||||
# Included from sys/signal.h
|
||||
SIGHUP = 1
|
||||
SIGINT = 2
|
||||
SIGQUIT = 3
|
||||
SIGILL = 4
|
||||
SIGTRAP = 5
|
||||
SIGIOT = 6
|
||||
SIGABRT = 6
|
||||
SIGEMT = 7
|
||||
SIGFPE = 8
|
||||
SIGKILL = 9
|
||||
SIGBUS = 10
|
||||
SIGSEGV = 11
|
||||
SIGSYS = 12
|
||||
SIGPIPE = 13
|
||||
SIGALRM = 14
|
||||
SIGTERM = 15
|
||||
SIGUSR1 = 16
|
||||
SIGUSR2 = 17
|
||||
SIGCLD = 18
|
||||
SIGCHLD = 18
|
||||
SIGPWR = 19
|
||||
SIGWINCH = 20
|
||||
SIGURG = 21
|
||||
SIGPOLL = 22
|
||||
SIGIO = 22
|
||||
SIGSTOP = 23
|
||||
SIGTSTP = 24
|
||||
SIGCONT = 25
|
||||
SIGTTIN = 26
|
||||
SIGTTOU = 27
|
||||
SIGVTALRM = 28
|
||||
SIGPROF = 29
|
||||
SIGXCPU = 30
|
||||
SIGXFSZ = 31
|
||||
SIG32 = 32
|
||||
SIGCKPT = 33
|
||||
SIGRTMIN = 49
|
||||
SIGRTMAX = 64
|
||||
SIGPTINTR = 47
|
||||
SIGPTRESCHED = 48
|
||||
__sigargs = int
|
||||
SIGEV_NONE = 128
|
||||
SIGEV_SIGNAL = 129
|
||||
SIGEV_CALLBACK = 130
|
||||
|
||||
# Included from sys/siginfo.h
|
||||
ILL_ILLOPC = 1
|
||||
ILL_ILLOPN = 2
|
||||
ILL_ILLADR = 3
|
||||
ILL_ILLTRP = 4
|
||||
ILL_PRVOPC = 5
|
||||
ILL_PRVREG = 6
|
||||
ILL_COPROC = 7
|
||||
ILL_BADSTK = 8
|
||||
NSIGILL = 8
|
||||
FPE_INTDIV = 1
|
||||
FPE_INTOVF = 2
|
||||
FPE_FLTDIV = 3
|
||||
FPE_FLTOVF = 4
|
||||
FPE_FLTUND = 5
|
||||
FPE_FLTRES = 6
|
||||
FPE_FLTINV = 7
|
||||
FPE_FLTSUB = 8
|
||||
NSIGFPE = 8
|
||||
SEGV_MAPERR = 1
|
||||
SEGV_ACCERR = 2
|
||||
NSIGSEGV = 2
|
||||
BUS_ADRALN = 1
|
||||
BUS_ADRERR = 2
|
||||
BUS_OBJERR = 3
|
||||
NSIGBUS = 3
|
||||
TRAP_BRKPT = 1
|
||||
TRAP_TRACE = 2
|
||||
NSIGTRAP = 2
|
||||
CLD_EXITED = 1
|
||||
CLD_KILLED = 2
|
||||
CLD_DUMPED = 3
|
||||
CLD_TRAPPED = 4
|
||||
CLD_STOPPED = 5
|
||||
CLD_CONTINUED = 6
|
||||
NSIGCLD = 6
|
||||
POLL_IN = 1
|
||||
POLL_OUT = 2
|
||||
POLL_MSG = 3
|
||||
POLL_ERR = 4
|
||||
POLL_PRI = 5
|
||||
POLL_HUP = 6
|
||||
NSIGPOLL = 6
|
||||
SI_MAXSZ = 128
|
||||
SI_USER = 0
|
||||
SI_KILL = SI_USER
|
||||
SI_QUEUE = -1
|
||||
SI_ASYNCIO = -2
|
||||
SI_TIMER = -3
|
||||
SI_MESGQ = -4
|
||||
SIG_NOP = 0
|
||||
SIG_BLOCK = 1
|
||||
SIG_UNBLOCK = 2
|
||||
SIG_SETMASK = 3
|
||||
SIG_SETMASK32 = 256
|
||||
SA_ONSTACK = 0x00000001
|
||||
SA_RESETHAND = 0x00000002
|
||||
SA_RESTART = 0x00000004
|
||||
SA_SIGINFO = 0x00000008
|
||||
SA_NODEFER = 0x00000010
|
||||
SA_NOCLDWAIT = 0x00010000
|
||||
SA_NOCLDSTOP = 0x00020000
|
||||
_SA_BSDCALL = 0x10000000
|
||||
MINSIGSTKSZ = 512
|
||||
SIGSTKSZ = 8192
|
||||
SS_ONSTACK = 0x00000001
|
||||
SS_DISABLE = 0x00000002
|
||||
|
||||
# Included from sys/ucontext.h
|
||||
NGREG = 36
|
||||
NGREG = 37
|
||||
GETCONTEXT = 0
|
||||
SETCONTEXT = 1
|
||||
UC_SIGMASK = 001
|
||||
UC_STACK = 002
|
||||
UC_CPU = 004
|
||||
UC_MAU = 010
|
||||
UC_MCONTEXT = (UC_CPU|UC_MAU)
|
||||
UC_ALL = (UC_SIGMASK|UC_STACK|UC_MCONTEXT)
|
||||
CTX_R0 = 0
|
||||
CTX_AT = 1
|
||||
CTX_V0 = 2
|
||||
CTX_V1 = 3
|
||||
CTX_A0 = 4
|
||||
CTX_A1 = 5
|
||||
CTX_A2 = 6
|
||||
CTX_A3 = 7
|
||||
CTX_T0 = 8
|
||||
CTX_T1 = 9
|
||||
CTX_T2 = 10
|
||||
CTX_T3 = 11
|
||||
CTX_T4 = 12
|
||||
CTX_T5 = 13
|
||||
CTX_T6 = 14
|
||||
CTX_T7 = 15
|
||||
CTX_A4 = 8
|
||||
CTX_A5 = 9
|
||||
CTX_A6 = 10
|
||||
CTX_A7 = 11
|
||||
CTX_T0 = 12
|
||||
CTX_T1 = 13
|
||||
CTX_T2 = 14
|
||||
CTX_T3 = 15
|
||||
CTX_S0 = 16
|
||||
CTX_S1 = 17
|
||||
CTX_S2 = 18
|
||||
CTX_S3 = 19
|
||||
CTX_S4 = 20
|
||||
CTX_S5 = 21
|
||||
CTX_S6 = 22
|
||||
CTX_S7 = 23
|
||||
CTX_T8 = 24
|
||||
CTX_T9 = 25
|
||||
CTX_K0 = 26
|
||||
CTX_K1 = 27
|
||||
CTX_GP = 28
|
||||
CTX_SP = 29
|
||||
CTX_S8 = 30
|
||||
CTX_RA = 31
|
||||
CTX_MDLO = 32
|
||||
CTX_MDHI = 33
|
||||
CTX_CAUSE = 34
|
||||
CTX_EPC = 35
|
||||
CTX_SR = 36
|
||||
CXT_R0 = CTX_R0
|
||||
CXT_AT = CTX_AT
|
||||
CXT_V0 = CTX_V0
|
||||
CXT_V1 = CTX_V1
|
||||
CXT_A0 = CTX_A0
|
||||
CXT_A1 = CTX_A1
|
||||
CXT_A2 = CTX_A2
|
||||
CXT_A3 = CTX_A3
|
||||
CXT_T0 = CTX_T0
|
||||
CXT_T1 = CTX_T1
|
||||
CXT_T2 = CTX_T2
|
||||
CXT_T3 = CTX_T3
|
||||
CXT_T4 = CTX_T4
|
||||
CXT_T5 = CTX_T5
|
||||
CXT_T6 = CTX_T6
|
||||
CXT_T7 = CTX_T7
|
||||
CXT_S0 = CTX_S0
|
||||
CXT_S1 = CTX_S1
|
||||
CXT_S2 = CTX_S2
|
||||
CXT_S3 = CTX_S3
|
||||
CXT_S4 = CTX_S4
|
||||
CXT_S5 = CTX_S5
|
||||
CXT_S6 = CTX_S6
|
||||
CXT_S7 = CTX_S7
|
||||
CXT_T8 = CTX_T8
|
||||
CXT_T9 = CTX_T9
|
||||
CXT_K0 = CTX_K0
|
||||
CXT_K1 = CTX_K1
|
||||
CXT_GP = CTX_GP
|
||||
CXT_SP = CTX_SP
|
||||
CXT_S8 = CTX_S8
|
||||
CXT_RA = CTX_RA
|
||||
CXT_MDLO = CTX_MDLO
|
||||
CXT_MDHI = CTX_MDHI
|
||||
CXT_CAUSE = CTX_CAUSE
|
||||
CXT_EPC = CTX_EPC
|
||||
CXT_SR = CTX_SR
|
||||
SV_ONSTACK = 0x0001
|
||||
SV_INTERRUPT = 0x0002
|
||||
NUMBSDSIGS = (32)
|
||||
def sigmask(sig): return (1L << ((sig)-1))
|
||||
|
||||
def sigmask(sig): return (1L << ((sig)-1))
|
||||
|
||||
SIG_ERR = (-1)
|
||||
SIG_IGN = (1)
|
||||
SIG_HOLD = (2)
|
||||
SIG_DFL = (0)
|
||||
NSIG = 65
|
||||
MAXSIG = (NSIG-1)
|
||||
NUMSIGS = (NSIG-1)
|
||||
BRK_USERBP = 0
|
||||
BRK_KERNELBP = 1
|
||||
BRK_ABORT = 2
|
||||
BRK_BD_TAKEN = 3
|
||||
BRK_BD_NOTTAKEN = 4
|
||||
BRK_SSTEPBP = 5
|
||||
BRK_OVERFLOW = 6
|
||||
BRK_DIVZERO = 7
|
||||
BRK_RANGE = 8
|
||||
BRK_PSEUDO_OP_BIT = 0x80
|
||||
BRK_PSEUDO_OP_MAX = 0x3
|
||||
BRK_CACHE_SYNC = 0x80
|
||||
BRK_SWASH_FLUSH = 0x81
|
||||
BRK_SWASH_SWTCH = 0x82
|
||||
BRK_MULOVF = 1023
|
||||
|
||||
# Included from sys/resource.h
|
||||
PRIO_MIN = -20
|
||||
PRIO_MAX = 20
|
||||
PRIO_PROCESS = 0
|
||||
PRIO_PGRP = 1
|
||||
PRIO_USER = 2
|
||||
RUSAGE_SELF = 0
|
||||
RUSAGE_CHILDREN = -1
|
||||
RLIMIT_CPU = 0
|
||||
RLIMIT_FSIZE = 1
|
||||
RLIMIT_DATA = 2
|
||||
RLIMIT_STACK = 3
|
||||
RLIMIT_CORE = 4
|
||||
RLIMIT_NOFILE = 5
|
||||
RLIMIT_VMEM = 6
|
||||
RLIMIT_RSS = 7
|
||||
RLIMIT_AS = RLIMIT_VMEM
|
||||
RLIM_NLIMITS = 8
|
||||
RLIM32_INFINITY = 0x7fffffff
|
||||
RLIM_INFINITY = 0x7fffffff
|
|
@ -0,0 +1,208 @@
|
|||
# This file implements a class which forms an interface to the .cddb
|
||||
# directory that is maintained by SGI's cdman program.
|
||||
#
|
||||
# Usage is as follows:
|
||||
#
|
||||
# import readcd
|
||||
# r = readcd.Readcd()
|
||||
# c = Cddb(r.gettrackinfo())
|
||||
#
|
||||
# Now you can use c.artist, c.title and c.track[trackno] (where trackno
|
||||
# starts at 1). When the CD is not recognized, all values will be the empty
|
||||
# string.
|
||||
# It is also possible to set the above mentioned variables to new values.
|
||||
# You can then use c.write() to write out the changed values to the
|
||||
# .cdplayerrc file.
|
||||
|
||||
import string, posix, os
|
||||
|
||||
_cddbrc = '.cddb'
|
||||
_DB_ID_NTRACKS = 5
|
||||
_dbid_map = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@_=+abcdefghijklmnopqrstuvwxyz'
|
||||
def _dbid(v):
|
||||
if v >= len(_dbid_map):
|
||||
return string.zfill(v, 2)
|
||||
else:
|
||||
return _dbid_map[v]
|
||||
|
||||
def tochash(toc):
|
||||
if type(toc) == type(''):
|
||||
tracklist = []
|
||||
for i in range(2, len(toc), 4):
|
||||
tracklist.append((None,
|
||||
(string.atoi(toc[i:i+2]),
|
||||
string.atoi(toc[i+2:i+4]))))
|
||||
else:
|
||||
tracklist = toc
|
||||
ntracks = len(tracklist)
|
||||
hash = _dbid((ntracks >> 4) & 0xF) + _dbid(ntracks & 0xF)
|
||||
if ntracks <= _DB_ID_NTRACKS:
|
||||
nidtracks = ntracks
|
||||
else:
|
||||
nidtracks = _DB_ID_NTRACKS - 1
|
||||
min = 0
|
||||
sec = 0
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
min = min + length[0]
|
||||
sec = sec + length[1]
|
||||
min = min + sec / 60
|
||||
sec = sec % 60
|
||||
hash = hash + _dbid(min) + _dbid(sec)
|
||||
for i in range(nidtracks):
|
||||
start, length = tracklist[i]
|
||||
hash = hash + _dbid(length[0]) + _dbid(length[1])
|
||||
return hash
|
||||
|
||||
class Cddb:
|
||||
def __init__(self, tracklist):
|
||||
if os.environ.has_key('CDDB_PATH'):
|
||||
path = os.environ['CDDB_PATH']
|
||||
cddb_path = string.splitfields(path, ',')
|
||||
else:
|
||||
home = os.environ['HOME']
|
||||
cddb_path = [home + '/' + _cddbrc]
|
||||
|
||||
self._get_id(tracklist)
|
||||
|
||||
for dir in cddb_path:
|
||||
file = dir + '/' + self.id + '.rdb'
|
||||
try:
|
||||
f = open(file, 'r')
|
||||
self.file = file
|
||||
break
|
||||
except IOError:
|
||||
pass
|
||||
ntracks = string.atoi(self.id[:2], 16)
|
||||
self.artist = ''
|
||||
self.title = ''
|
||||
self.track = [None] + [''] * ntracks
|
||||
self.trackartist = [None] + [''] * ntracks
|
||||
self.notes = []
|
||||
if not hasattr(self, 'file'):
|
||||
return
|
||||
import regex
|
||||
reg = regex.compile('^\\([^.]*\\)\\.\\([^:]*\\):[\t ]+\\(.*\\)')
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line:
|
||||
break
|
||||
if reg.match(line) == -1:
|
||||
print 'syntax error in ' + file
|
||||
continue
|
||||
name1 = line[reg.regs[1][0]:reg.regs[1][1]]
|
||||
name2 = line[reg.regs[2][0]:reg.regs[2][1]]
|
||||
value = line[reg.regs[3][0]:reg.regs[3][1]]
|
||||
if name1 == 'album':
|
||||
if name2 == 'artist':
|
||||
self.artist = value
|
||||
elif name2 == 'title':
|
||||
self.title = value
|
||||
elif name2 == 'toc':
|
||||
if not self.toc:
|
||||
self.toc = value
|
||||
if self.toc != value:
|
||||
print 'toc\'s don\'t match'
|
||||
elif name2 == 'notes':
|
||||
self.notes.append(value)
|
||||
elif name1[:5] == 'track':
|
||||
try:
|
||||
trackno = string.atoi(name1[5:])
|
||||
except strings.atoi_error:
|
||||
print 'syntax error in ' + file
|
||||
continue
|
||||
if trackno > ntracks:
|
||||
print 'track number ' + `trackno` + \
|
||||
' in file ' + file + \
|
||||
' out of range'
|
||||
continue
|
||||
if name2 == 'title':
|
||||
self.track[trackno] = value
|
||||
elif name2 == 'artist':
|
||||
self.trackartist[trackno] = value
|
||||
f.close()
|
||||
for i in range(2, len(self.track)):
|
||||
track = self.track[i]
|
||||
# if track title starts with `,', use initial part
|
||||
# of previous track's title
|
||||
if track and track[0] == ',':
|
||||
try:
|
||||
off = string.index(self.track[i - 1],
|
||||
',')
|
||||
except string.index_error:
|
||||
pass
|
||||
else:
|
||||
self.track[i] = self.track[i-1][:off] \
|
||||
+ track
|
||||
|
||||
def _get_id(self, tracklist):
|
||||
# fill in self.id and self.toc.
|
||||
# if the argument is a string ending in .rdb, the part
|
||||
# upto the suffix is taken as the id.
|
||||
if type(tracklist) == type(''):
|
||||
if tracklist[-4:] == '.rdb':
|
||||
self.id = tracklist[:-4]
|
||||
self.toc = ''
|
||||
return
|
||||
t = []
|
||||
for i in range(2, len(tracklist), 4):
|
||||
t.append((None, \
|
||||
(string.atoi(tracklist[i:i+2]), \
|
||||
string.atoi(tracklist[i+2:i+4]))))
|
||||
tracklist = t
|
||||
ntracks = len(tracklist)
|
||||
self.id = _dbid((ntracks >> 4) & 0xF) + _dbid(ntracks & 0xF)
|
||||
if ntracks <= _DB_ID_NTRACKS:
|
||||
nidtracks = ntracks
|
||||
else:
|
||||
nidtracks = _DB_ID_NTRACKS - 1
|
||||
min = 0
|
||||
sec = 0
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
min = min + length[0]
|
||||
sec = sec + length[1]
|
||||
min = min + sec / 60
|
||||
sec = sec % 60
|
||||
self.id = self.id + _dbid(min) + _dbid(sec)
|
||||
for i in range(nidtracks):
|
||||
start, length = tracklist[i]
|
||||
self.id = self.id + _dbid(length[0]) + _dbid(length[1])
|
||||
self.toc = string.zfill(ntracks, 2)
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
self.toc = self.toc + string.zfill(length[0], 2) + \
|
||||
string.zfill(length[1], 2)
|
||||
|
||||
def write(self):
|
||||
import posixpath
|
||||
if os.environ.has_key('CDDB_WRITE_DIR'):
|
||||
dir = os.environ['CDDB_WRITE_DIR']
|
||||
else:
|
||||
dir = os.environ['HOME'] + '/' + _cddbrc
|
||||
file = dir + '/' + self.id + '.rdb'
|
||||
if posixpath.exists(file):
|
||||
# make backup copy
|
||||
posix.rename(file, file + '~')
|
||||
f = open(file, 'w')
|
||||
f.write('album.title:\t' + self.title + '\n')
|
||||
f.write('album.artist:\t' + self.artist + '\n')
|
||||
f.write('album.toc:\t' + self.toc + '\n')
|
||||
for note in self.notes:
|
||||
f.write('album.notes:\t' + note + '\n')
|
||||
prevpref = None
|
||||
for i in range(1, len(self.track)):
|
||||
if self.trackartist[i]:
|
||||
f.write('track'+`i`+'.artist:\t'+self.trackartist[i]+'\n')
|
||||
track = self.track[i]
|
||||
try:
|
||||
off = string.index(track, ',')
|
||||
except string.index_error:
|
||||
prevpref = None
|
||||
else:
|
||||
if prevpref and track[:off] == prevpref:
|
||||
track = track[off:]
|
||||
else:
|
||||
prevpref = track[:off]
|
||||
f.write('track' + `i` + '.title:\t' + track + '\n')
|
||||
f.close()
|
|
@ -0,0 +1,89 @@
|
|||
# This file implements a class which forms an interface to the .cdplayerrc
|
||||
# file that is maintained by SGI's cdplayer program.
|
||||
#
|
||||
# Usage is as follows:
|
||||
#
|
||||
# import readcd
|
||||
# r = readcd.Readcd()
|
||||
# c = Cdplayer(r.gettrackinfo())
|
||||
#
|
||||
# Now you can use c.artist, c.title and c.track[trackno] (where trackno
|
||||
# starts at 1). When the CD is not recognized, all values will be the empty
|
||||
# string.
|
||||
# It is also possible to set the above mentioned variables to new values.
|
||||
# You can then use c.write() to write out the changed values to the
|
||||
# .cdplayerrc file.
|
||||
|
||||
cdplayerrc = '.cdplayerrc'
|
||||
|
||||
class Cdplayer:
|
||||
def __init__(self, tracklist):
|
||||
import string
|
||||
self.artist = ''
|
||||
self.title = ''
|
||||
if type(tracklist) == type(''):
|
||||
t = []
|
||||
for i in range(2, len(tracklist), 4):
|
||||
t.append((None, \
|
||||
(string.atoi(tracklist[i:i+2]), \
|
||||
string.atoi(tracklist[i+2:i+4]))))
|
||||
tracklist = t
|
||||
self.track = [None] + [''] * len(tracklist)
|
||||
self.id = 'd' + string.zfill(len(tracklist), 2)
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
self.id = self.id + string.zfill(length[0], 2) + \
|
||||
string.zfill(length[1], 2)
|
||||
try:
|
||||
import posix
|
||||
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
|
||||
except IOError:
|
||||
return
|
||||
import regex
|
||||
reg = regex.compile('^\\([^:]*\\):\t\\(.*\\)')
|
||||
s = self.id + '.'
|
||||
l = len(s)
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if line == '':
|
||||
break
|
||||
if line[:l] == s:
|
||||
line = line[l:]
|
||||
if reg.match(line) == -1:
|
||||
print 'syntax error in ~/' + cdplayerrc
|
||||
continue
|
||||
name = line[reg.regs[1][0]:reg.regs[1][1]]
|
||||
value = line[reg.regs[2][0]:reg.regs[2][1]]
|
||||
if name == 'title':
|
||||
self.title = value
|
||||
elif name == 'artist':
|
||||
self.artist = value
|
||||
elif name[:5] == 'track':
|
||||
trackno = string.atoi(name[6:])
|
||||
self.track[trackno] = value
|
||||
f.close()
|
||||
|
||||
def write(self):
|
||||
import posix
|
||||
filename = posix.environ['HOME'] + '/' + cdplayerrc
|
||||
try:
|
||||
old = open(filename, 'r')
|
||||
except IOError:
|
||||
old = open('/dev/null', 'r')
|
||||
new = open(filename + '.new', 'w')
|
||||
s = self.id + '.'
|
||||
l = len(s)
|
||||
while 1:
|
||||
line = old.readline()
|
||||
if line == '':
|
||||
break
|
||||
if line[:l] <> s:
|
||||
new.write(line)
|
||||
new.write(self.id + '.title:\t' + self.title + '\n')
|
||||
new.write(self.id + '.artist:\t' + self.artist + '\n')
|
||||
for i in range(1, len(self.track)):
|
||||
new.write(self.id + '.track.' + `i` + ':\t' + \
|
||||
self.track[i] + '\n')
|
||||
old.close()
|
||||
new.close()
|
||||
posix.rename(filename + '.new', filename)
|
|
@ -0,0 +1,117 @@
|
|||
.SH
|
||||
Module flp
|
||||
.LP
|
||||
The flp module loads fl-forms from fd files, as generated
|
||||
by fdesign. The module is designed to be flexible enough to allow
|
||||
almost anything to be done with the loaded form.
|
||||
.LP
|
||||
Loadform defines
|
||||
two types of functions: functions to parse fd files and functions to
|
||||
create the forms from the templates returned by the parse functions.
|
||||
There are fairly low-level create functions that create single objects,
|
||||
and convenience routines that create complete forms, including callbacks,
|
||||
etc.
|
||||
.LP
|
||||
The exception flp.error is raised whenever an error occurs while parsing a forms
|
||||
definition file or creating a form.
|
||||
.SH 2
|
||||
Parsing functions
|
||||
.LP
|
||||
There are two parsing functions, parse_form() and parse_forms(). They
|
||||
take the following form:
|
||||
.LP
|
||||
.ft C
|
||||
ftuple = parse_form(filename, formname)
|
||||
.br
|
||||
ftdict = parse_forms(filename)
|
||||
.IP
|
||||
Parse_form parses a single form, and returns a tuple (ftmp, otmplist).
|
||||
Ftmp is a template for a form, otmplist is a list of templates for
|
||||
objects. See below for a description of these templates.
|
||||
.IP
|
||||
Parse_forms parses all forms in an fd file. It returns a dictionary of
|
||||
(ftmp, otmplist) tuples, indexed by formname.
|
||||
.IP
|
||||
Filename is the name of the forms definition file to inspect. The functions
|
||||
appends '.fd' if needed, and use 'sys.path' to locate the file.
|
||||
.IP
|
||||
formname is the name of the form to load. This argument is mandatory,
|
||||
even if the file only contains one form.
|
||||
.LP
|
||||
The form template and object template are structures that contain all
|
||||
the information read from the fd file, in 'natural' form. A form
|
||||
template record contains the following fields:
|
||||
.IP
|
||||
.nf
|
||||
"Name", the name of the form;
|
||||
"Width", the width of the form;
|
||||
"Height", the height of the form; and
|
||||
"Numberofobjects", the number of objects in the form.
|
||||
.LP
|
||||
An object template contains the following fields:
|
||||
.IP
|
||||
.nf
|
||||
"Class", the class of object (eg. FL.BUTTON);
|
||||
"Type", the sub-class (eg. FL.NORMALBUTTON);
|
||||
"Box", a list with four members: [x, y, width, height];
|
||||
"Boxtype", the type of box (eg. FL.DOWNBOX);
|
||||
"Colors", a list with the two object colors;
|
||||
"Alignment", the label alignment (eg. FL.ALIGNLEFT);
|
||||
"Style", the label style (eg. FL.BOLDSTYLE);
|
||||
"Lcol", the label color;
|
||||
"Label", a string containing the label;
|
||||
"Name", a string containing the name of the object;
|
||||
"Callback", a string containing the callback routine name; and
|
||||
"Argument", a string containing the callback routine extra argument.
|
||||
.SH
|
||||
Low-level create routines.
|
||||
.LP
|
||||
The three low-level creation routines are called as follows:
|
||||
.LP
|
||||
.ft C
|
||||
form = create_form(form_template)
|
||||
.IP
|
||||
Create an fl form from a form template. Returns the form created.
|
||||
.LP
|
||||
.ft C
|
||||
obj = create_object(form, obj_template)
|
||||
.IP
|
||||
Create an object in an fl form. Return the new object.
|
||||
An error is raised if the object has a callback routine.
|
||||
.SH
|
||||
High-level create routines.
|
||||
.LP
|
||||
The 'standard' way to handle forms in python is to define a class
|
||||
that contains the form and all the objects (insofar as they are named),
|
||||
and that defines all the callback functions, and use an instance of
|
||||
this class to handle the form interaction.
|
||||
Flp contains three routines that simplify handling this paradigm:
|
||||
.LP
|
||||
.ft C
|
||||
create_full_form(instance, ftuple)
|
||||
.IP
|
||||
This routine takes an instance of your form-handling class and an
|
||||
ftuple (as returned by the parsing routines) as parameters. It inserts
|
||||
the form into the instance, defines all object names and arranges that
|
||||
the callback methods are called. All the names inserted into the
|
||||
instance are the same as the names used for the objects, etc. in the
|
||||
fd file.
|
||||
.LP
|
||||
.ft C
|
||||
merge_full_form(instance, form, ftuple)
|
||||
.IP
|
||||
This function does the same as create_full_form, only it does not create
|
||||
the form itself nor the 'background box' that fdesign automatically
|
||||
adds to each form. This is useful if your class inherits a superclass
|
||||
that already defines a skeleton form (with 'OK' and 'Cancel' buttons,
|
||||
for instance), and you want to merge the new form into that existing
|
||||
form. The 'form' parameter is the form to which the new objects are
|
||||
added.
|
||||
.LP
|
||||
If you use the paradigm sketched here but need slightly more control
|
||||
over object creation there is a routine that creates a single object
|
||||
and inserts its name (and arranges for the callback routine to be
|
||||
called):
|
||||
.LP
|
||||
.ft C
|
||||
create_object_instance(instance, form, obj_template)
|
|
@ -0,0 +1,455 @@
|
|||
#
|
||||
# flp - Module to load fl forms from fd files
|
||||
#
|
||||
# Jack Jansen, December 1991
|
||||
#
|
||||
import string
|
||||
import os
|
||||
import sys
|
||||
import FL
|
||||
|
||||
SPLITLINE = '--------------------'
|
||||
FORMLINE = '=============== FORM ==============='
|
||||
ENDLINE = '=============================='
|
||||
|
||||
error = 'flp.error'
|
||||
|
||||
##################################################################
|
||||
# Part 1 - The parsing routines #
|
||||
##################################################################
|
||||
|
||||
#
|
||||
# Externally visible function. Load form.
|
||||
#
|
||||
def parse_form(filename, formname):
|
||||
forms = checkcache(filename)
|
||||
if forms is None:
|
||||
forms = parse_forms(filename)
|
||||
if forms.has_key(formname):
|
||||
return forms[formname]
|
||||
else:
|
||||
raise error, 'No such form in fd file'
|
||||
|
||||
#
|
||||
# Externally visible function. Load all forms.
|
||||
#
|
||||
def parse_forms(filename):
|
||||
forms = checkcache(filename)
|
||||
if forms != None: return forms
|
||||
fp = _open_formfile(filename)
|
||||
nforms = _parse_fd_header(fp)
|
||||
forms = {}
|
||||
for i in range(nforms):
|
||||
form = _parse_fd_form(fp, None)
|
||||
forms[form[0].Name] = form
|
||||
writecache(filename, forms)
|
||||
return forms
|
||||
|
||||
#
|
||||
# Internal: see if a cached version of the file exists
|
||||
#
|
||||
MAGIC = '.fdc'
|
||||
_internal_cache = {} # Used by frozen scripts only
|
||||
def checkcache(filename):
|
||||
if _internal_cache.has_key(filename):
|
||||
altforms = _internal_cache[filename]
|
||||
return _unpack_cache(altforms)
|
||||
import marshal
|
||||
fp, filename = _open_formfile2(filename)
|
||||
fp.close()
|
||||
cachename = filename + 'c'
|
||||
try:
|
||||
fp = open(cachename, 'r')
|
||||
except IOError:
|
||||
#print 'flp: no cache file', cachename
|
||||
return None
|
||||
try:
|
||||
if fp.read(4) != MAGIC:
|
||||
print 'flp: bad magic word in cache file', cachename
|
||||
return None
|
||||
cache_mtime = rdlong(fp)
|
||||
file_mtime = getmtime(filename)
|
||||
if cache_mtime != file_mtime:
|
||||
#print 'flp: outdated cache file', cachename
|
||||
return None
|
||||
#print 'flp: valid cache file', cachename
|
||||
altforms = marshal.load(fp)
|
||||
return _unpack_cache(altforms)
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
def _unpack_cache(altforms):
|
||||
forms = {}
|
||||
for name in altforms.keys():
|
||||
altobj, altlist = altforms[name]
|
||||
obj = _newobj()
|
||||
obj.make(altobj)
|
||||
list = []
|
||||
for altobj in altlist:
|
||||
nobj = _newobj()
|
||||
nobj.make(altobj)
|
||||
list.append(nobj)
|
||||
forms[name] = obj, list
|
||||
return forms
|
||||
|
||||
def rdlong(fp):
|
||||
s = fp.read(4)
|
||||
if len(s) != 4: return None
|
||||
a, b, c, d = s[0], s[1], s[2], s[3]
|
||||
return ord(a)<<24 | ord(b)<<16 | ord(c)<<8 | ord(d)
|
||||
|
||||
def wrlong(fp, x):
|
||||
a, b, c, d = (x>>24)&0xff, (x>>16)&0xff, (x>>8)&0xff, x&0xff
|
||||
fp.write(chr(a) + chr(b) + chr(c) + chr(d))
|
||||
|
||||
def getmtime(filename):
|
||||
import os
|
||||
from stat import ST_MTIME
|
||||
try:
|
||||
return os.stat(filename)[ST_MTIME]
|
||||
except os.error:
|
||||
return None
|
||||
|
||||
#
|
||||
# Internal: write cached version of the form (parsing is too slow!)
|
||||
#
|
||||
def writecache(filename, forms):
|
||||
import marshal
|
||||
fp, filename = _open_formfile2(filename)
|
||||
fp.close()
|
||||
cachename = filename + 'c'
|
||||
try:
|
||||
fp = open(cachename, 'w')
|
||||
except IOError:
|
||||
print 'flp: can\'t create cache file', cachename
|
||||
return # Never mind
|
||||
fp.write('\0\0\0\0') # Seek back and write MAGIC when done
|
||||
wrlong(fp, getmtime(filename))
|
||||
altforms = _pack_cache(forms)
|
||||
marshal.dump(altforms, fp)
|
||||
fp.seek(0)
|
||||
fp.write(MAGIC)
|
||||
fp.close()
|
||||
#print 'flp: wrote cache file', cachename
|
||||
|
||||
#
|
||||
# External: print some statements that set up the internal cache.
|
||||
# This is for use with the "freeze" script. You should call
|
||||
# flp.freeze(filename) for all forms used by the script, and collect
|
||||
# the output on a file in a module file named "frozenforms.py". Then
|
||||
# in the main program of the script import frozenforms.
|
||||
# (Don't forget to take this out when using the unfrozen version of
|
||||
# the script!)
|
||||
#
|
||||
def freeze(filename):
|
||||
forms = parse_forms(filename)
|
||||
altforms = _pack_cache(forms)
|
||||
print 'import flp'
|
||||
print 'flp._internal_cache[', `filename`, '] =', altforms
|
||||
|
||||
#
|
||||
# Internal: create the data structure to be placed in the cache
|
||||
#
|
||||
def _pack_cache(forms):
|
||||
altforms = {}
|
||||
for name in forms.keys():
|
||||
obj, list = forms[name]
|
||||
altobj = obj.__dict__
|
||||
altlist = []
|
||||
for obj in list: altlist.append(obj.__dict__)
|
||||
altforms[name] = altobj, altlist
|
||||
return altforms
|
||||
|
||||
#
|
||||
# Internal: Locate form file (using PYTHONPATH) and open file
|
||||
#
|
||||
def _open_formfile(filename):
|
||||
return _open_formfile2(filename)[0]
|
||||
|
||||
def _open_formfile2(filename):
|
||||
if filename[-3:] <> '.fd':
|
||||
filename = filename + '.fd'
|
||||
if filename[0] == '/':
|
||||
try:
|
||||
fp = open(filename,'r')
|
||||
except IOError:
|
||||
fp = None
|
||||
else:
|
||||
for pc in sys.path:
|
||||
pn = os.path.join(pc, filename)
|
||||
try:
|
||||
fp = open(pn, 'r')
|
||||
filename = pn
|
||||
break
|
||||
except IOError:
|
||||
fp = None
|
||||
if fp == None:
|
||||
raise error, 'Cannot find forms file ' + filename
|
||||
return fp, filename
|
||||
|
||||
#
|
||||
# Internal: parse the fd file header, return number of forms
|
||||
#
|
||||
def _parse_fd_header(file):
|
||||
# First read the magic header line
|
||||
datum = _parse_1_line(file)
|
||||
if datum <> ('Magic', 12321):
|
||||
raise error, 'Not a forms definition file'
|
||||
# Now skip until we know number of forms
|
||||
while 1:
|
||||
datum = _parse_1_line(file)
|
||||
if type(datum) == type(()) and datum[0] == 'Numberofforms':
|
||||
break
|
||||
return datum[1]
|
||||
#
|
||||
# Internal: parse fd form, or skip if name doesn't match.
|
||||
# the special value None means 'allways parse it'.
|
||||
#
|
||||
def _parse_fd_form(file, name):
|
||||
datum = _parse_1_line(file)
|
||||
if datum <> FORMLINE:
|
||||
raise error, 'Missing === FORM === line'
|
||||
form = _parse_object(file)
|
||||
if form.Name == name or name == None:
|
||||
objs = []
|
||||
for j in range(form.Numberofobjects):
|
||||
obj = _parse_object(file)
|
||||
objs.append(obj)
|
||||
return (form, objs)
|
||||
else:
|
||||
for j in range(form.Numberofobjects):
|
||||
_skip_object(file)
|
||||
return None
|
||||
|
||||
#
|
||||
# Internal class: a convient place to store object info fields
|
||||
#
|
||||
class _newobj:
|
||||
def add(self, name, value):
|
||||
self.__dict__[name] = value
|
||||
def make(self, dict):
|
||||
for name in dict.keys():
|
||||
self.add(name, dict[name])
|
||||
|
||||
#
|
||||
# Internal parsing routines.
|
||||
#
|
||||
def _parse_string(str):
|
||||
if '\\' in str:
|
||||
s = '\'' + str + '\''
|
||||
try:
|
||||
return eval(s)
|
||||
except:
|
||||
pass
|
||||
return str
|
||||
|
||||
def _parse_num(str):
|
||||
return eval(str)
|
||||
|
||||
def _parse_numlist(str):
|
||||
slist = string.split(str)
|
||||
nlist = []
|
||||
for i in slist:
|
||||
nlist.append(_parse_num(i))
|
||||
return nlist
|
||||
|
||||
# This dictionary maps item names to parsing routines.
|
||||
# If no routine is given '_parse_num' is default.
|
||||
_parse_func = { \
|
||||
'Name': _parse_string, \
|
||||
'Box': _parse_numlist, \
|
||||
'Colors': _parse_numlist, \
|
||||
'Label': _parse_string, \
|
||||
'Name': _parse_string, \
|
||||
'Callback': _parse_string, \
|
||||
'Argument': _parse_string }
|
||||
|
||||
# This function parses a line, and returns either
|
||||
# a string or a tuple (name,value)
|
||||
|
||||
import regex
|
||||
prog = regex.compile('^\([^:]*\): *\(.*\)')
|
||||
|
||||
def _parse_line(line):
|
||||
if prog.match(line) < 0:
|
||||
return line
|
||||
a = prog.regs
|
||||
name = line[:a[1][1]]
|
||||
if name[0] == 'N':
|
||||
name = string.joinfields(string.split(name),'')
|
||||
name = string.lower(name)
|
||||
name = string.upper(name[0]) + name[1:]
|
||||
value = line[a[2][0]:]
|
||||
try:
|
||||
pf = _parse_func[name]
|
||||
except KeyError:
|
||||
pf = _parse_num
|
||||
value = pf(value)
|
||||
return (name, value)
|
||||
|
||||
def _readline(file):
|
||||
line = file.readline()
|
||||
if not line:
|
||||
raise EOFError
|
||||
return line[:-1]
|
||||
|
||||
def _parse_1_line(file):
|
||||
line = _readline(file)
|
||||
while line == '':
|
||||
line = _readline(file)
|
||||
return _parse_line(line)
|
||||
|
||||
def _skip_object(file):
|
||||
line = ''
|
||||
while not line in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
pos = file.tell()
|
||||
line = _readline(file)
|
||||
if line == FORMLINE:
|
||||
file.seek(pos)
|
||||
|
||||
def _parse_object(file):
|
||||
obj = _newobj()
|
||||
while 1:
|
||||
pos = file.tell()
|
||||
datum = _parse_1_line(file)
|
||||
if datum in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
if datum == FORMLINE:
|
||||
file.seek(pos)
|
||||
return obj
|
||||
if type(datum) <> type(()) or len(datum) <> 2:
|
||||
raise error, 'Parse error, illegal line in object: '+datum
|
||||
obj.add(datum[0], datum[1])
|
||||
|
||||
#################################################################
|
||||
# Part 2 - High-level object/form creation routines #
|
||||
#################################################################
|
||||
|
||||
#
|
||||
# External - Create a form an link to an instance variable.
|
||||
#
|
||||
def create_full_form(inst, (fdata, odatalist)):
|
||||
form = create_form(fdata)
|
||||
exec 'inst.'+fdata.Name+' = form\n'
|
||||
for odata in odatalist:
|
||||
create_object_instance(inst, form, odata)
|
||||
|
||||
#
|
||||
# External - Merge a form into an existing form in an instance
|
||||
# variable.
|
||||
#
|
||||
def merge_full_form(inst, form, (fdata, odatalist)):
|
||||
exec 'inst.'+fdata.Name+' = form\n'
|
||||
if odatalist[0].Class <> FL.BOX:
|
||||
raise error, 'merge_full_form() expects FL.BOX as first obj'
|
||||
for odata in odatalist[1:]:
|
||||
create_object_instance(inst, form, odata)
|
||||
|
||||
|
||||
#################################################################
|
||||
# Part 3 - Low-level object/form creation routines #
|
||||
#################################################################
|
||||
|
||||
#
|
||||
# External Create_form - Create form from parameters
|
||||
#
|
||||
def create_form(fdata):
|
||||
import fl
|
||||
return fl.make_form(FL.NO_BOX, fdata.Width, fdata.Height)
|
||||
|
||||
#
|
||||
# External create_object - Create an object. Make sure there are
|
||||
# no callbacks. Returns the object created.
|
||||
#
|
||||
def create_object(form, odata):
|
||||
obj = _create_object(form, odata)
|
||||
if odata.Callback:
|
||||
raise error, 'Creating free object with callback'
|
||||
return obj
|
||||
#
|
||||
# External create_object_instance - Create object in an instance.
|
||||
#
|
||||
def create_object_instance(inst, form, odata):
|
||||
obj = _create_object(form, odata)
|
||||
if odata.Callback:
|
||||
cbfunc = eval('inst.'+odata.Callback)
|
||||
obj.set_call_back(cbfunc, odata.Argument)
|
||||
if odata.Name:
|
||||
exec 'inst.' + odata.Name + ' = obj\n'
|
||||
#
|
||||
# Internal _create_object: Create the object and fill options
|
||||
#
|
||||
def _create_object(form, odata):
|
||||
crfunc = _select_crfunc(form, odata.Class)
|
||||
obj = crfunc(odata.Type, odata.Box[0], odata.Box[1], odata.Box[2], \
|
||||
odata.Box[3], odata.Label)
|
||||
if not odata.Class in (FL.BEGIN_GROUP, FL.END_GROUP):
|
||||
obj.boxtype = odata.Boxtype
|
||||
obj.col1 = odata.Colors[0]
|
||||
obj.col2 = odata.Colors[1]
|
||||
obj.align = odata.Alignment
|
||||
obj.lstyle = odata.Style
|
||||
obj.lsize = odata.Size
|
||||
obj.lcol = odata.Lcol
|
||||
return obj
|
||||
#
|
||||
# Internal crfunc: helper function that returns correct create function
|
||||
#
|
||||
def _select_crfunc(fm, cl):
|
||||
if cl == FL.BEGIN_GROUP: return fm.bgn_group
|
||||
elif cl == FL.END_GROUP: return fm.end_group
|
||||
elif cl == FL.BITMAP: return fm.add_bitmap
|
||||
elif cl == FL.BOX: return fm.add_box
|
||||
elif cl == FL.BROWSER: return fm.add_browser
|
||||
elif cl == FL.BUTTON: return fm.add_button
|
||||
elif cl == FL.CHART: return fm.add_chart
|
||||
elif cl == FL.CHOICE: return fm.add_choice
|
||||
elif cl == FL.CLOCK: return fm.add_clock
|
||||
elif cl == FL.COUNTER: return fm.add_counter
|
||||
elif cl == FL.DIAL: return fm.add_dial
|
||||
elif cl == FL.FREE: return fm.add_free
|
||||
elif cl == FL.INPUT: return fm.add_input
|
||||
elif cl == FL.LIGHTBUTTON: return fm.add_lightbutton
|
||||
elif cl == FL.MENU: return fm.add_menu
|
||||
elif cl == FL.POSITIONER: return fm.add_positioner
|
||||
elif cl == FL.ROUNDBUTTON: return fm.add_roundbutton
|
||||
elif cl == FL.SLIDER: return fm.add_slider
|
||||
elif cl == FL.VALSLIDER: return fm.add_valslider
|
||||
elif cl == FL.TEXT: return fm.add_text
|
||||
elif cl == FL.TIMER: return fm.add_timer
|
||||
else:
|
||||
raise error, 'Unknown object type: ' + `cl`
|
||||
|
||||
|
||||
def test():
|
||||
import time
|
||||
t0 = time.time()
|
||||
if len(sys.argv) == 2:
|
||||
forms = parse_forms(sys.argv[1])
|
||||
t1 = time.time()
|
||||
print 'parse time:', 0.001*(t1-t0), 'sec.'
|
||||
keys = forms.keys()
|
||||
keys.sort()
|
||||
for i in keys:
|
||||
_printform(forms[i])
|
||||
elif len(sys.argv) == 3:
|
||||
form = parse_form(sys.argv[1], sys.argv[2])
|
||||
t1 = time.time()
|
||||
print 'parse time:', round(t1-t0, 3), 'sec.'
|
||||
_printform(form)
|
||||
else:
|
||||
print 'Usage: test fdfile [form]'
|
||||
|
||||
def _printform(form):
|
||||
f = form[0]
|
||||
objs = form[1]
|
||||
print 'Form ', f.Name, ', size: ', f.Width, f.Height, ' Nobj ', f.Numberofobjects
|
||||
for i in objs:
|
||||
print ' Obj ', i.Name, ' type ', i.Class, i.Type
|
||||
print ' Box ', i.Box, ' btype ', i.Boxtype
|
||||
print ' Label ', i.Label, ' size/style/col/align ', i.Size,i.Style, i.Lcol, i.Alignment
|
||||
print ' cols ', i.Colors
|
||||
print ' cback ', i.Callback, i.Argument
|
||||
|
||||
# Local variables:
|
||||
# py-indent-offset: 4
|
||||
# end:
|
|
@ -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)
|
|
@ -0,0 +1,281 @@
|
|||
# Module 'panel'
|
||||
#
|
||||
# Support for the Panel library.
|
||||
# Uses built-in module 'pnl'.
|
||||
# Applciations should use 'panel.function' instead of 'pnl.function';
|
||||
# most 'pnl' functions are transparently exported by 'panel',
|
||||
# but dopanel() is overridden and you have to use this version
|
||||
# if you want to use callbacks.
|
||||
|
||||
|
||||
import pnl
|
||||
|
||||
|
||||
debug = 0
|
||||
|
||||
|
||||
# Test if an object is a list.
|
||||
#
|
||||
def is_list(x):
|
||||
return type(x) == type([])
|
||||
|
||||
|
||||
# Reverse a list.
|
||||
#
|
||||
def reverse(list):
|
||||
res = []
|
||||
for item in list:
|
||||
res.insert(0, item)
|
||||
return res
|
||||
|
||||
|
||||
# Get an attribute of a list, which may itself be another list.
|
||||
# Don't use 'prop' for name.
|
||||
#
|
||||
def getattrlist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] == name:
|
||||
return item[1:]
|
||||
return []
|
||||
|
||||
|
||||
# Get a property of a list, which may itself be another list.
|
||||
#
|
||||
def getproplist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] == 'prop':
|
||||
if len(item) > 1 and item[1] == name:
|
||||
return item[2:]
|
||||
return []
|
||||
|
||||
|
||||
# Test if an actuator description contains the property 'end-of-group'
|
||||
#
|
||||
def is_endgroup(list):
|
||||
x = getproplist(list, 'end-of-group')
|
||||
return (x and x[0] == '#t')
|
||||
|
||||
|
||||
# Neatly display an actuator definition given as S-expression
|
||||
# the prefix string is printed before each line.
|
||||
#
|
||||
def show_actuator(prefix, a):
|
||||
for item in a:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Subactuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
print prefix, '?', item
|
||||
|
||||
|
||||
# Neatly display a panel.
|
||||
#
|
||||
def show_panel(prefix, p):
|
||||
for item in p:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Actuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
print prefix, '?', item
|
||||
|
||||
|
||||
# Exception raised by build_actuator or build_panel.
|
||||
#
|
||||
panel_error = 'panel error'
|
||||
|
||||
|
||||
# Dummy callback used to initialize the callbacks.
|
||||
#
|
||||
def dummy_callback(arg):
|
||||
pass
|
||||
|
||||
|
||||
# Assign attributes to members of the target.
|
||||
# Attribute names in exclist are ignored.
|
||||
# The member name is the attribute name prefixed with the prefix.
|
||||
#
|
||||
def assign_members(target, attrlist, exclist, prefix):
|
||||
for item in attrlist:
|
||||
if is_list(item) and len(item) == 2 and item[0] not in exclist:
|
||||
name, value = item[0], item[1]
|
||||
ok = 1
|
||||
if value[0] in '-0123456789':
|
||||
value = eval(value)
|
||||
elif value[0] == '"':
|
||||
value = value[1:-1]
|
||||
elif value == 'move-then-resize':
|
||||
# Strange default set by Panel Editor...
|
||||
ok = 0
|
||||
else:
|
||||
print 'unknown value', value, 'for', name
|
||||
ok = 0
|
||||
if ok:
|
||||
lhs = 'target.' + prefix + name
|
||||
stmt = lhs + '=' + `value`
|
||||
if debug: print 'exec', stmt
|
||||
try:
|
||||
exec stmt + '\n'
|
||||
except KeyboardInterrupt: # Don't catch this!
|
||||
raise KeyboardInterrupt
|
||||
except:
|
||||
print 'assign failed:', stmt
|
||||
|
||||
|
||||
# Build a real actuator from an actuator descriptior.
|
||||
# Return a pair (actuator, name).
|
||||
#
|
||||
def build_actuator(descr):
|
||||
namelist = getattrlist(descr, 'name')
|
||||
if namelist:
|
||||
# Assume it is a string
|
||||
actuatorname = namelist[0][1:-1]
|
||||
else:
|
||||
actuatorname = ''
|
||||
type = descr[0]
|
||||
if type[:4] == 'pnl_': type = type[4:]
|
||||
act = pnl.mkact(type)
|
||||
act.downfunc = act.activefunc = act.upfunc = dummy_callback
|
||||
#
|
||||
assign_members(act, descr[1:], ['al', 'data', 'name'], '')
|
||||
#
|
||||
# Treat actuator-specific data
|
||||
#
|
||||
datalist = getattrlist(descr, 'data')
|
||||
prefix = ''
|
||||
if type[-4:] == 'puck':
|
||||
prefix = 'puck_'
|
||||
elif type == 'mouse':
|
||||
prefix = 'mouse_'
|
||||
assign_members(act, datalist, [], prefix)
|
||||
#
|
||||
return act, actuatorname
|
||||
|
||||
|
||||
# Build all sub-actuators and add them to the super-actuator.
|
||||
# The super-actuator must already have been added to the panel.
|
||||
# Sub-actuators with defined names are added as members to the panel
|
||||
# so they can be referenced as p.name.
|
||||
#
|
||||
# Note: I have no idea how panel.endgroup() works when applied
|
||||
# to a sub-actuator.
|
||||
#
|
||||
def build_subactuators(panel, super_act, al):
|
||||
#
|
||||
# This is nearly the same loop as below in build_panel(),
|
||||
# except a call is made to addsubact() instead of addact().
|
||||
#
|
||||
for a in al:
|
||||
act, name = build_actuator(a)
|
||||
act.addsubact(super_act)
|
||||
if name:
|
||||
stmt = 'panel.' + name + ' = act'
|
||||
if debug: print 'exec', stmt
|
||||
exec stmt + '\n'
|
||||
if is_endgroup(a):
|
||||
panel.endgroup()
|
||||
sub_al = getattrlist(a, 'al')
|
||||
if sub_al:
|
||||
build_subactuators(panel, act, sub_al)
|
||||
#
|
||||
# Fix the actuator to which whe just added subactuators.
|
||||
# This can't hurt (I hope) and is needed for the scroll actuator.
|
||||
#
|
||||
super_act.fixact()
|
||||
|
||||
|
||||
# Build a real panel from a panel definition.
|
||||
# Return a panel object p, where for each named actuator a, p.name is a
|
||||
# reference to a.
|
||||
#
|
||||
def build_panel(descr):
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
if (not descr) or descr[0] <> 'panel':
|
||||
raise panel_error, 'panel description must start with "panel"'
|
||||
#
|
||||
if debug: show_panel('', descr)
|
||||
#
|
||||
# Create an empty panel
|
||||
#
|
||||
panel = pnl.mkpanel()
|
||||
#
|
||||
# Assign panel attributes
|
||||
#
|
||||
assign_members(panel, descr[1:], ['al'], '')
|
||||
#
|
||||
# Look for actuator list
|
||||
#
|
||||
al = getattrlist(descr, 'al')
|
||||
#
|
||||
# The order in which actuators are created is important
|
||||
# because of the endgroup() operator.
|
||||
# Unfortunately the Panel Editor outputs the actuator list
|
||||
# in reverse order, so we reverse it here.
|
||||
#
|
||||
al = reverse(al)
|
||||
#
|
||||
for a in al:
|
||||
act, name = build_actuator(a)
|
||||
act.addact(panel)
|
||||
if name:
|
||||
stmt = 'panel.' + name + ' = act'
|
||||
exec stmt + '\n'
|
||||
if is_endgroup(a):
|
||||
panel.endgroup()
|
||||
sub_al = getattrlist(a, 'al')
|
||||
if sub_al:
|
||||
build_subactuators(panel, act, sub_al)
|
||||
#
|
||||
return panel
|
||||
|
||||
|
||||
# Wrapper around pnl.dopanel() which calls call-back functions.
|
||||
#
|
||||
def my_dopanel():
|
||||
# Extract only the first 4 elements to allow for future expansion
|
||||
a, down, active, up = pnl.dopanel()[:4]
|
||||
if down:
|
||||
down.downfunc(down)
|
||||
if active:
|
||||
active.activefunc(active)
|
||||
if up:
|
||||
up.upfunc(up)
|
||||
return a
|
||||
|
||||
|
||||
# Create one or more panels from a description file (S-expressions)
|
||||
# generated by the Panel Editor.
|
||||
#
|
||||
def defpanellist(file):
|
||||
import panelparser
|
||||
descrlist = panelparser.parse_file(open(file, 'r'))
|
||||
panellist = []
|
||||
for descr in descrlist:
|
||||
panellist.append(build_panel(descr))
|
||||
return panellist
|
||||
|
||||
|
||||
# Import everything from built-in method pnl, so the user can always
|
||||
# use panel.foo() instead of pnl.foo().
|
||||
# This gives *no* performance penalty once this module is imported.
|
||||
#
|
||||
from pnl import * # for export
|
||||
|
||||
dopanel = my_dopanel # override pnl.dopanel
|
|
@ -0,0 +1,128 @@
|
|||
# Module 'parser'
|
||||
#
|
||||
# Parse S-expressions output by the Panel Editor
|
||||
# (which is written in Scheme so it can't help writing S-expressions).
|
||||
#
|
||||
# See notes at end of file.
|
||||
|
||||
|
||||
whitespace = ' \t\n'
|
||||
operators = '()\''
|
||||
separators = operators + whitespace + ';' + '"'
|
||||
|
||||
|
||||
# Tokenize a string.
|
||||
# Return a list of tokens (strings).
|
||||
#
|
||||
def tokenize_string(s):
|
||||
tokens = []
|
||||
while s:
|
||||
c = s[:1]
|
||||
if c in whitespace:
|
||||
s = s[1:]
|
||||
elif c == ';':
|
||||
s = ''
|
||||
elif c == '"':
|
||||
n = len(s)
|
||||
i = 1
|
||||
while i < n:
|
||||
c = s[i]
|
||||
i = i+1
|
||||
if c == '"': break
|
||||
if c == '\\': i = i+1
|
||||
tokens.append(s[:i])
|
||||
s = s[i:]
|
||||
elif c in operators:
|
||||
tokens.append(c)
|
||||
s = s[1:]
|
||||
else:
|
||||
n = len(s)
|
||||
i = 1
|
||||
while i < n:
|
||||
if s[i] in separators: break
|
||||
i = i+1
|
||||
tokens.append(s[:i])
|
||||
s = s[i:]
|
||||
return tokens
|
||||
|
||||
|
||||
# Tokenize a whole file (given as file object, not as file name).
|
||||
# Return a list of tokens (strings).
|
||||
#
|
||||
def tokenize_file(fp):
|
||||
tokens = []
|
||||
while 1:
|
||||
line = fp.readline()
|
||||
if not line: break
|
||||
tokens = tokens + tokenize_string(line)
|
||||
return tokens
|
||||
|
||||
|
||||
# Exception raised by parse_exr.
|
||||
#
|
||||
syntax_error = 'syntax error'
|
||||
|
||||
|
||||
# Parse an S-expression.
|
||||
# Input is a list of tokens as returned by tokenize_*().
|
||||
# Return a pair (expr, tokens)
|
||||
# where expr is a list representing the s-expression,
|
||||
# and tokens contains the remaining tokens.
|
||||
# May raise syntax_error.
|
||||
#
|
||||
def parse_expr(tokens):
|
||||
if (not tokens) or tokens[0] <> '(':
|
||||
raise syntax_error, 'expected "("'
|
||||
tokens = tokens[1:]
|
||||
expr = []
|
||||
while 1:
|
||||
if not tokens:
|
||||
raise syntax_error, 'missing ")"'
|
||||
if tokens[0] == ')':
|
||||
return expr, tokens[1:]
|
||||
elif tokens[0] == '(':
|
||||
subexpr, tokens = parse_expr(tokens)
|
||||
expr.append(subexpr)
|
||||
else:
|
||||
expr.append(tokens[0])
|
||||
tokens = tokens[1:]
|
||||
|
||||
|
||||
# Parse a file (given as file object, not as file name).
|
||||
# Return a list of parsed S-expressions found at the top level.
|
||||
#
|
||||
def parse_file(fp):
|
||||
tokens = tokenize_file(fp)
|
||||
exprlist = []
|
||||
while tokens:
|
||||
expr, tokens = parse_expr(tokens)
|
||||
exprlist.append(expr)
|
||||
return exprlist
|
||||
|
||||
|
||||
# EXAMPLE:
|
||||
#
|
||||
# The input
|
||||
# '(hip (hop hur-ray))'
|
||||
#
|
||||
# passed to tokenize_string() returns the token list
|
||||
# ['(', 'hip', '(', 'hop', 'hur-ray', ')', ')']
|
||||
#
|
||||
# When this is passed to parse_expr() it returns the expression
|
||||
# ['hip', ['hop', 'hur-ray']]
|
||||
# plus an empty token list (because there are no tokens left.
|
||||
#
|
||||
# When a file containing the example is passed to parse_file() it returns
|
||||
# a list whose only element is the output of parse_expr() above:
|
||||
# [['hip', ['hop', 'hur-ray']]]
|
||||
|
||||
|
||||
# TOKENIZING:
|
||||
#
|
||||
# Comments start with semicolon (;) and continue till the end of the line.
|
||||
#
|
||||
# Tokens are separated by whitespace, except the following characters
|
||||
# always form a separate token (outside strings):
|
||||
# ( ) '
|
||||
# Strings are enclosed in double quotes (") and backslash (\) is used
|
||||
# as escape character in strings.
|
|
@ -0,0 +1,104 @@
|
|||
Interface to CD-ROM player.
|
||||
|
||||
This module implements an interface to the built-in cd module. The
|
||||
intention is to provide a more user-friendly interface than the
|
||||
built-in module.
|
||||
|
||||
The module defines a class Readcd with several methods. The
|
||||
initialization of the class will try to open the CD player. This
|
||||
means that initialization will fail if the CD player is already in
|
||||
use. A RuntimeError will be raised by the cd module in that case.
|
||||
|
||||
The way to work with this module is as follows. The user specifies
|
||||
the parts of the CD that are to be read and he specifies callback
|
||||
functions which are to be called by the system. At some point he can
|
||||
tell the system to play. The specified parts of the CD will then be
|
||||
read and the callbacks will be called.
|
||||
|
||||
Initialization.
|
||||
===============
|
||||
|
||||
r = readcd.Readcd([cd-player [, mode]])
|
||||
|
||||
The optional arguments are the name of the CD device and the mode.
|
||||
When "mode" is not specified, it defaults to 'r' (which is the only
|
||||
possible value); when "cd-player" also isn't specified, it defaults
|
||||
to "None" which indicates the default CD player.
|
||||
|
||||
Methods.
|
||||
========
|
||||
|
||||
eject() -- Eject the CD from the player.
|
||||
|
||||
reset() -- Reset the list of data stretches to be played.
|
||||
|
||||
appendtrack(track) -- Append the specified track to the list of music
|
||||
stretches.
|
||||
|
||||
appendstretch(first, last) -- Append the stretch from "first" to "last"
|
||||
to the list of music stretches. Both "first" and "last" can be in one
|
||||
of four forms. "None": for "first", the beginning of the CD, for
|
||||
"last" the end of the CD; a single integer: a track number--playing
|
||||
starts at the beginning of the track or ends at the end of the
|
||||
specified track; a three-tuple: the absolute time from the start of
|
||||
the CD in minutes, seconds, frames; a four-tuple: track number and
|
||||
relative time within the track in minutes, seconds, frames.
|
||||
|
||||
settracks(tracklist) -- The argument is a list of integers. The list
|
||||
of stretches is set to argument list. The old list is discarded.
|
||||
|
||||
setcallback(type, func, arg) -- Set a callback function for "type".
|
||||
The function will be called as func(arg, type, data) where "arg" is
|
||||
the third argument of setcallback, "type" is the type of callback,
|
||||
"data" is type-dependent data. See the CDsetcallback(3) manual page
|
||||
for more information. The possible "type" arguments are defined in
|
||||
the CD module.
|
||||
|
||||
removecallback(type) -- Remove the callback for "type".
|
||||
|
||||
gettrackinfo([tracklist]) -- Return a list of tuples. Each tuple
|
||||
consists of start and length information of a track. The start and
|
||||
length information consist of three-tuples with minutes, seconds and
|
||||
frames. The optional tracklist argument gives a list of interesting
|
||||
track numbers. If no tracklist is specified, information about all
|
||||
tracks is returned.
|
||||
|
||||
getstatus() -- Return the status information of the CD.
|
||||
|
||||
play() -- Play the preprogrammed stretches of music from the CD. When
|
||||
nothing was programmed, the whole CD is played.
|
||||
|
||||
Specifying stretches.
|
||||
=====================
|
||||
|
||||
There are three methods available to specify a stretch of music to be
|
||||
played. The easiest way is to use "settracklist(tracklist)" with which
|
||||
a list of tracks can be specified. "settracklist(tracklist)" is
|
||||
equivalent to the sequence
|
||||
reset()
|
||||
for track in tracklist:
|
||||
appendtrack(track)
|
||||
|
||||
The next method is "appendtrack(track)" with which a whole track can be
|
||||
added to the list of music to be played. "appendtrack(track)" is
|
||||
equivalent to "appendstretch(track, track)".
|
||||
|
||||
The most complete method is "appendstretch(first, last)". Using this
|
||||
method, it is possible to specify any stretch of music.
|
||||
|
||||
When two consecutive tracks are played, it is possible to choose
|
||||
whether the pause that may be between the tracks is played as well or
|
||||
whether the pause should be skipped. When the end of a stretch is
|
||||
specified using a track number and the next stretch starts at the
|
||||
beginning of the following track and that was also specified using the
|
||||
track number (that is, both were specified as integers, not as tuples),
|
||||
the pause is played. When either value was specified using absolute
|
||||
time or track-relative time (that is, as three-tuple or as
|
||||
four-tuple), the pause will not be played.
|
||||
|
||||
Errors.
|
||||
=======
|
||||
|
||||
When an error occurs, an exception will be raised. Depending on where
|
||||
the error occurs, the exception may either be "readcd.Error" or
|
||||
"RuntimeError".
|
|
@ -0,0 +1,242 @@
|
|||
# Class interface to the CD module.
|
||||
|
||||
import cd, CD
|
||||
|
||||
Error = 'Readcd.Error'
|
||||
_Stop = 'Readcd.Stop'
|
||||
|
||||
def _doatime(self, cb_type, data):
|
||||
if ((data[0] * 60) + data[1]) * 75 + data[2] > self.end:
|
||||
## print 'done with list entry',`self.listindex`
|
||||
raise _Stop
|
||||
func, arg = self.callbacks[cb_type]
|
||||
if func:
|
||||
func(arg, cb_type, data)
|
||||
|
||||
def _dopnum(self, cb_type, data):
|
||||
if data > self.end:
|
||||
## print 'done with list entry',`self.listindex`
|
||||
raise _Stop
|
||||
func, arg = self.callbacks[cb_type]
|
||||
if func:
|
||||
func(arg, cb_type, data)
|
||||
|
||||
class Readcd:
|
||||
def __init__(self, *arg):
|
||||
if len(arg) == 0:
|
||||
self.player = cd.open()
|
||||
elif len(arg) == 1:
|
||||
self.player = cd.open(arg[0])
|
||||
elif len(arg) == 2:
|
||||
self.player = cd.open(arg[0], arg[1])
|
||||
else:
|
||||
raise Error, 'bad __init__ call'
|
||||
self.list = []
|
||||
self.callbacks = [(None, None)] * 8
|
||||
self.parser = cd.createparser()
|
||||
self.playing = 0
|
||||
self.end = 0
|
||||
self.status = None
|
||||
self.trackinfo = None
|
||||
|
||||
def eject(self):
|
||||
self.player.eject()
|
||||
self.list = []
|
||||
self.end = 0
|
||||
self.listindex = 0
|
||||
self.status = None
|
||||
self.trackinfo = None
|
||||
if self.playing:
|
||||
## print 'stop playing from eject'
|
||||
raise _Stop
|
||||
|
||||
def pmsf2msf(self, track, min, sec, frame):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
if track < self.status[5] or track > self.status[6]:
|
||||
raise Error, 'track number out of range'
|
||||
if not self.trackinfo:
|
||||
self.cacheinfo()
|
||||
start, total = self.trackinfo[track]
|
||||
start = ((start[0] * 60) + start[1]) * 75 + start[2]
|
||||
total = ((total[0] * 60) + total[1]) * 75 + total[2]
|
||||
block = ((min * 60) + sec) * 75 + frame
|
||||
if block > total:
|
||||
raise Error, 'out of range'
|
||||
block = start + block
|
||||
min, block = divmod(block, 75*60)
|
||||
sec, frame = divmod(block, 75)
|
||||
return min, sec, frame
|
||||
|
||||
def reset(self):
|
||||
self.list = []
|
||||
|
||||
def appendtrack(self, track):
|
||||
self.appendstretch(track, track)
|
||||
|
||||
def appendstretch(self, start, end):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
if not start:
|
||||
start = 1
|
||||
if not end:
|
||||
end = self.status[6]
|
||||
if type(end) == type(0):
|
||||
if end < self.status[5] or end > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
else:
|
||||
l = len(end)
|
||||
if l == 4:
|
||||
prog, min, sec, frame = end
|
||||
if prog < self.status[5] or prog > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
end = self.pmsf2msf(prog, min, sec, frame)
|
||||
elif l <> 3:
|
||||
raise Error, 'syntax error'
|
||||
if type(start) == type(0):
|
||||
if start < self.status[5] or start > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
if len(self.list) > 0:
|
||||
s, e = self.list[-1]
|
||||
if type(e) == type(0):
|
||||
if start == e+1:
|
||||
start = s
|
||||
del self.list[-1]
|
||||
else:
|
||||
l = len(start)
|
||||
if l == 4:
|
||||
prog, min, sec, frame = start
|
||||
if prog < self.status[5] or prog > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
start = self.pmsf2msf(prog, min, sec, frame)
|
||||
elif l <> 3:
|
||||
raise Error, 'syntax error'
|
||||
self.list.append((start, end))
|
||||
|
||||
def settracks(self, list):
|
||||
self.list = []
|
||||
for track in list:
|
||||
self.appendtrack(track)
|
||||
|
||||
def setcallback(self, cb_type, func, arg):
|
||||
if cb_type < 0 or cb_type >= 8:
|
||||
raise Error, 'type out of range'
|
||||
self.callbacks[cb_type] = (func, arg)
|
||||
if self.playing:
|
||||
start, end = self.list[self.listindex]
|
||||
if type(end) == type(0):
|
||||
if cb_type <> CD.PNUM:
|
||||
self.parser.setcallback(cb_type, func, arg)
|
||||
else:
|
||||
if cb_type <> CD.ATIME:
|
||||
self.parser.setcallback(cb_type, func, arg)
|
||||
|
||||
def removecallback(self, cb_type):
|
||||
if cb_type < 0 or cb_type >= 8:
|
||||
raise Error, 'type out of range'
|
||||
self.callbacks[cb_type] = (None, None)
|
||||
if self.playing:
|
||||
start, end = self.list[self.listindex]
|
||||
if type(end) == type(0):
|
||||
if cb_type <> CD.PNUM:
|
||||
self.parser.removecallback(cb_type)
|
||||
else:
|
||||
if cb_type <> CD.ATIME:
|
||||
self.parser.removecallback(cb_type)
|
||||
|
||||
def gettrackinfo(self, *arg):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
if not self.trackinfo:
|
||||
self.cacheinfo()
|
||||
if len(arg) == 0:
|
||||
return self.trackinfo[self.status[5]:self.status[6]+1]
|
||||
result = []
|
||||
for i in arg:
|
||||
if i < self.status[5] or i > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
result.append(self.trackinfo[i])
|
||||
return result
|
||||
|
||||
def cacheinfo(self):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
self.trackinfo = []
|
||||
for i in range(self.status[5]):
|
||||
self.trackinfo.append(None)
|
||||
for i in range(self.status[5], self.status[6]+1):
|
||||
self.trackinfo.append(self.player.gettrackinfo(i))
|
||||
|
||||
def cachestatus(self):
|
||||
self.status = self.player.getstatus()
|
||||
if self.status[0] == CD.NODISC:
|
||||
self.status = None
|
||||
raise Error, 'no disc in player'
|
||||
|
||||
def getstatus(self):
|
||||
return self.player.getstatus()
|
||||
|
||||
def play(self):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
size = self.player.bestreadsize()
|
||||
self.listindex = 0
|
||||
self.playing = 0
|
||||
for i in range(8):
|
||||
func, arg = self.callbacks[i]
|
||||
if func:
|
||||
self.parser.setcallback(i, func, arg)
|
||||
else:
|
||||
self.parser.removecallback(i)
|
||||
if len(self.list) == 0:
|
||||
for i in range(self.status[5], self.status[6]+1):
|
||||
self.appendtrack(i)
|
||||
try:
|
||||
while 1:
|
||||
if not self.playing:
|
||||
if self.listindex >= len(self.list):
|
||||
return
|
||||
start, end = self.list[self.listindex]
|
||||
if type(start) == type(0):
|
||||
dummy = self.player.seektrack(
|
||||
start)
|
||||
else:
|
||||
min, sec, frame = start
|
||||
dummy = self.player.seek(
|
||||
min, sec, frame)
|
||||
if type(end) == type(0):
|
||||
self.parser.setcallback(
|
||||
CD.PNUM, _dopnum, self)
|
||||
self.end = end
|
||||
func, arg = \
|
||||
self.callbacks[CD.ATIME]
|
||||
if func:
|
||||
self.parser.setcallback(CD.ATIME, func, arg)
|
||||
else:
|
||||
self.parser.removecallback(CD.ATIME)
|
||||
else:
|
||||
min, sec, frame = end
|
||||
self.parser.setcallback(
|
||||
CD.ATIME, _doatime,
|
||||
self)
|
||||
self.end = (min * 60 + sec) * \
|
||||
75 + frame
|
||||
func, arg = \
|
||||
self.callbacks[CD.PNUM]
|
||||
if func:
|
||||
self.parser.setcallback(CD.PNUM, func, arg)
|
||||
else:
|
||||
self.parser.removecallback(CD.PNUM)
|
||||
self.playing = 1
|
||||
data = self.player.readda(size)
|
||||
if data == '':
|
||||
self.playing = 0
|
||||
self.listindex = self.listindex + 1
|
||||
continue
|
||||
try:
|
||||
self.parser.parseframe(data)
|
||||
except _Stop:
|
||||
self.playing = 0
|
||||
self.listindex = self.listindex + 1
|
||||
finally:
|
||||
self.playing = 0
|
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
case `uname -sr` in
|
||||
'IRIX '[45].*) ;;
|
||||
*) echo Probably not on an IRIX system 1>&2
|
||||
exit 1;;
|
||||
esac
|
||||
set -v
|
||||
h2py /usr/include/sys/fcntl.h
|
||||
h2py /usr/include/sys/file.h
|
||||
h2py /usr/include/sys/socket.h
|
||||
h2py -i '(u_long)' /usr/include/netinet/in.h
|
||||
h2py /usr/include/sys/termios.h
|
||||
h2py /usr/include/errno.h
|
|
@ -0,0 +1,97 @@
|
|||
# Convert "arbitrary" image files to rgb files (SGI's image format).
|
||||
# Input may be compressed.
|
||||
# The uncompressed file type may be PBM, PGM, PPM, GIF, TIFF, or Sun raster.
|
||||
# An exception is raised if the file is not of a recognized type.
|
||||
# Returned filename is either the input filename or a temporary filename;
|
||||
# in the latter case the caller must ensure that it is removed.
|
||||
# Other temporary files used are removed by the function.
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
import pipes
|
||||
import imghdr
|
||||
|
||||
table = {}
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['ppm'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['pnm'] = t
|
||||
table['pgm'] = t
|
||||
table['pbm'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('fromgif $IN $OUT', 'ff')
|
||||
table['gif'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('tifftopnm', '--')
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['tiff'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('rasttopnm', '--')
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['rast'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('djpeg', '--')
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['jpeg'] = t
|
||||
|
||||
uncompress = pipes.Template()
|
||||
uncompress.append('uncompress', '--')
|
||||
|
||||
|
||||
error = 'torgb.error' # Exception
|
||||
|
||||
def torgb(filename):
|
||||
temps = []
|
||||
ret = None
|
||||
try:
|
||||
ret = _torgb(filename, temps)
|
||||
finally:
|
||||
for temp in temps[:]:
|
||||
if temp <> ret:
|
||||
try:
|
||||
os.unlink(temp)
|
||||
except os.error:
|
||||
pass
|
||||
temps.remove(temp)
|
||||
return ret
|
||||
|
||||
def _torgb(filename, temps):
|
||||
if filename[-2:] == '.Z':
|
||||
fname = tempfile.mktemp()
|
||||
temps.append(fname)
|
||||
sts = uncompress.copy(filename, fname)
|
||||
if sts:
|
||||
raise error, filename + ': uncompress failed'
|
||||
else:
|
||||
fname = filename
|
||||
try:
|
||||
ftype = imghdr.what(fname)
|
||||
except IOError, msg:
|
||||
if type(msg) == type(()) and len(msg) == 2 and \
|
||||
type(msg[0]) == type(0) and type(msg[1]) == type(''):
|
||||
msg = msg[1]
|
||||
if type(msg) <> type(''):
|
||||
msg = `msg`
|
||||
raise error, filename + ': ' + msg
|
||||
if ftype == 'rgb':
|
||||
return fname
|
||||
if ftype == None or not table.has_key(ftype):
|
||||
raise error, \
|
||||
filename + ': unsupported image file type ' + `ftype`
|
||||
temp = tempfile.mktemp()
|
||||
sts = table[ftype].copy(fname, temp)
|
||||
if sts:
|
||||
raise error, filename + ': conversion to rgb failed'
|
||||
return temp
|
|
@ -0,0 +1,61 @@
|
|||
RATE_48000 = 48000
|
||||
RATE_44100 = 44100
|
||||
RATE_32000 = 32000
|
||||
RATE_22050 = 22050
|
||||
RATE_16000 = 16000
|
||||
RATE_11025 = 11025
|
||||
RATE_8000 = 8000
|
||||
|
||||
SAMPFMT_TWOSCOMP= 1
|
||||
SAMPFMT_FLOAT = 32
|
||||
SAMPFMT_DOUBLE = 64
|
||||
|
||||
SAMPLE_8 = 1
|
||||
SAMPLE_16 = 2
|
||||
# SAMPLE_24 is the low 24 bits of a long, sign extended to 32 bits
|
||||
SAMPLE_24 = 4
|
||||
|
||||
MONO = 1
|
||||
STEREO = 2
|
||||
QUADRO = 4 # 4CHANNEL is not a legal Python name
|
||||
|
||||
INPUT_LINE = 0
|
||||
INPUT_MIC = 1
|
||||
INPUT_DIGITAL = 2
|
||||
|
||||
MONITOR_OFF = 0
|
||||
MONITOR_ON = 1
|
||||
|
||||
ERROR_NUMBER = 0
|
||||
ERROR_TYPE = 1
|
||||
ERROR_LOCATION_LSP = 2
|
||||
ERROR_LOCATION_MSP = 3
|
||||
ERROR_LENGTH = 4
|
||||
|
||||
ERROR_INPUT_UNDERFLOW = 0
|
||||
ERROR_OUTPUT_OVERFLOW = 1
|
||||
|
||||
# These seem to be not supported anymore:
|
||||
##HOLD, RELEASE = 0, 1
|
||||
##ATTAIL, ATHEAD, ATMARK, ATTIME = 0, 1, 2, 3
|
||||
|
||||
DEFAULT_DEVICE = 1
|
||||
|
||||
INPUT_SOURCE = 0
|
||||
LEFT_INPUT_ATTEN = 1
|
||||
RIGHT_INPUT_ATTEN = 2
|
||||
INPUT_RATE = 3
|
||||
OUTPUT_RATE = 4
|
||||
LEFT_SPEAKER_GAIN = 5
|
||||
RIGHT_SPEAKER_GAIN = 6
|
||||
INPUT_COUNT = 7
|
||||
OUTPUT_COUNT = 8
|
||||
UNUSED_COUNT = 9
|
||||
SYNC_INPUT_TO_AES = 10
|
||||
SYNC_OUTPUT_TO_AES = 11
|
||||
MONITOR_CTL = 12
|
||||
LEFT_MONITOR_ATTEN = 13
|
||||
RIGHT_MONITOR_ATTEN = 14
|
||||
|
||||
ENUM_VALUE = 0 # only certain values are valid
|
||||
RANGE_VALUE = 1 # any value in range is valid
|
|
@ -0,0 +1,54 @@
|
|||
#
|
||||
# Copyright (c) 1992 Aware, Inc. All rights reserved.
|
||||
#
|
||||
# Copyright Unpublished, Aware Inc. All Rights Reserved.
|
||||
# This software contains proprietary and confidential
|
||||
# information of Aware, Inc. Use, disclosure or
|
||||
# reproduction is prohibited without the prior express
|
||||
# written consent of Aware, Inc.
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# awareAudio.h - Aware Compression Library Parameter Header
|
||||
#
|
||||
# 01/21/92 Original Version by Brian Knittel and Jonathon Devine
|
||||
#
|
||||
|
||||
import CL
|
||||
|
||||
# Aware Audio Specific Parameters - For both MPEG Audio and Multirate
|
||||
CL.CHANNEL_POLICY = CL.NUMBER_OF_PARAMS + 0
|
||||
CL.NOISE_MARGIN = CL.NUMBER_OF_PARAMS + 1
|
||||
CL.BITRATE_POLICY = CL.NUMBER_OF_PARAMS + 2
|
||||
|
||||
# Additional parameters for MPEG Audio
|
||||
CL.BITRATE_TARGET = CL.NUMBER_OF_PARAMS + 3
|
||||
CL.LAYER = CL.NUMBER_OF_PARAMS + 4
|
||||
|
||||
# read/write for compression configuration
|
||||
# read for state during compression/decompression
|
||||
|
||||
#
|
||||
# Channel Policy
|
||||
#
|
||||
AWCMP_STEREO = 1
|
||||
AWCMP_JOINT_STEREO = 2
|
||||
AWCMP_INDEPENDENT = 3
|
||||
|
||||
#
|
||||
# read/write for compression configuration,
|
||||
# read for state during compression
|
||||
#
|
||||
#
|
||||
# Bit-rate Policy
|
||||
#
|
||||
AWCMP_FIXED_RATE = 1
|
||||
AWCMP_CONST_QUAL = 2
|
||||
AWCMP_LOSSLESS = 4
|
||||
|
||||
#
|
||||
# Layer values
|
||||
#
|
||||
AWCMP_MPEG_LAYER_I = 1
|
||||
AWCMP_MPEG_LAYER_II = 2
|
|
@ -0,0 +1,34 @@
|
|||
ERROR = 0
|
||||
NODISC = 1
|
||||
READY = 2
|
||||
PLAYING = 3
|
||||
PAUSED = 4
|
||||
STILL = 5
|
||||
|
||||
AUDIO = 0
|
||||
PNUM = 1
|
||||
INDEX = 2
|
||||
PTIME = 3
|
||||
ATIME = 4
|
||||
CATALOG = 5
|
||||
IDENT = 6
|
||||
CONTROL = 7
|
||||
|
||||
CDDA_DATASIZE = 2352
|
||||
|
||||
##CDDA_SUBCODESIZE = (sizeof(struct subcodeQ))
|
||||
##CDDA_BLOCKSIZE = (sizeof(struct cdframe))
|
||||
##CDDA_NUMSAMPLES = (CDDA_DATASIZE/2)
|
||||
##
|
||||
##CDQ_PREEMP_MASK = 0xd
|
||||
##CDQ_COPY_MASK = 0xb
|
||||
##CDQ_DDATA_MASK = 0xd
|
||||
##CDQ_BROADCAST_MASK = 0x8
|
||||
##CDQ_PREEMPHASIS = 0x1
|
||||
##CDQ_COPY_PERMITTED = 0x2
|
||||
##CDQ_DIGITAL_DATA = 0x4
|
||||
##CDQ_BROADCAST_USE = 0x8
|
||||
##
|
||||
##CDQ_MODE1 = 0x1
|
||||
##CDQ_MODE2 = 0x2
|
||||
##CDQ_MODE3 = 0x3
|
|
@ -0,0 +1,24 @@
|
|||
# Backward compatible module CL.
|
||||
# All relevant symbols are now defined in the module cl.
|
||||
try:
|
||||
from cl import *
|
||||
except ImportError:
|
||||
from CL_old import *
|
||||
else:
|
||||
del CompressImage
|
||||
del DecompressImage
|
||||
del GetAlgorithmName
|
||||
del OpenCompressor
|
||||
del OpenDecompressor
|
||||
del QueryAlgorithms
|
||||
del QueryMaxHeaderSize
|
||||
del QueryScheme
|
||||
del QuerySchemeFromName
|
||||
del SetDefault
|
||||
del SetMax
|
||||
del SetMin
|
||||
try:
|
||||
del cvt_type
|
||||
except NameError:
|
||||
pass
|
||||
del error
|
|
@ -0,0 +1,400 @@
|
|||
NULLDEV = 0
|
||||
BUTOFFSET = 1
|
||||
VALOFFSET = 256
|
||||
PSEUDOFFSET = 512
|
||||
BUT2OFFSET = 3840
|
||||
TIMOFFSET = 515
|
||||
XKBDOFFSET = 143
|
||||
BUTCOUNT = 255
|
||||
VALCOUNT = 256
|
||||
TIMCOUNT = 4
|
||||
XKBDCOUNT = 28
|
||||
USERBUTOFFSET = 4096
|
||||
USERVALOFFSET = 12288
|
||||
USERPSEUDOFFSET = 16384
|
||||
BUT0 = 1
|
||||
BUT1 = 2
|
||||
BUT2 = 3
|
||||
BUT3 = 4
|
||||
BUT4 = 5
|
||||
BUT5 = 6
|
||||
BUT6 = 7
|
||||
BUT7 = 8
|
||||
BUT8 = 9
|
||||
BUT9 = 10
|
||||
BUT10 = 11
|
||||
BUT11 = 12
|
||||
BUT12 = 13
|
||||
BUT13 = 14
|
||||
BUT14 = 15
|
||||
BUT15 = 16
|
||||
BUT16 = 17
|
||||
BUT17 = 18
|
||||
BUT18 = 19
|
||||
BUT19 = 20
|
||||
BUT20 = 21
|
||||
BUT21 = 22
|
||||
BUT22 = 23
|
||||
BUT23 = 24
|
||||
BUT24 = 25
|
||||
BUT25 = 26
|
||||
BUT26 = 27
|
||||
BUT27 = 28
|
||||
BUT28 = 29
|
||||
BUT29 = 30
|
||||
BUT30 = 31
|
||||
BUT31 = 32
|
||||
BUT32 = 33
|
||||
BUT33 = 34
|
||||
BUT34 = 35
|
||||
BUT35 = 36
|
||||
BUT36 = 37
|
||||
BUT37 = 38
|
||||
BUT38 = 39
|
||||
BUT39 = 40
|
||||
BUT40 = 41
|
||||
BUT41 = 42
|
||||
BUT42 = 43
|
||||
BUT43 = 44
|
||||
BUT44 = 45
|
||||
BUT45 = 46
|
||||
BUT46 = 47
|
||||
BUT47 = 48
|
||||
BUT48 = 49
|
||||
BUT49 = 50
|
||||
BUT50 = 51
|
||||
BUT51 = 52
|
||||
BUT52 = 53
|
||||
BUT53 = 54
|
||||
BUT54 = 55
|
||||
BUT55 = 56
|
||||
BUT56 = 57
|
||||
BUT57 = 58
|
||||
BUT58 = 59
|
||||
BUT59 = 60
|
||||
BUT60 = 61
|
||||
BUT61 = 62
|
||||
BUT62 = 63
|
||||
BUT63 = 64
|
||||
BUT64 = 65
|
||||
BUT65 = 66
|
||||
BUT66 = 67
|
||||
BUT67 = 68
|
||||
BUT68 = 69
|
||||
BUT69 = 70
|
||||
BUT70 = 71
|
||||
BUT71 = 72
|
||||
BUT72 = 73
|
||||
BUT73 = 74
|
||||
BUT74 = 75
|
||||
BUT75 = 76
|
||||
BUT76 = 77
|
||||
BUT77 = 78
|
||||
BUT78 = 79
|
||||
BUT79 = 80
|
||||
BUT80 = 81
|
||||
BUT81 = 82
|
||||
BUT82 = 83
|
||||
MAXKBDBUT = 83
|
||||
BUT100 = 101
|
||||
BUT101 = 102
|
||||
BUT102 = 103
|
||||
BUT103 = 104
|
||||
BUT104 = 105
|
||||
BUT105 = 106
|
||||
BUT106 = 107
|
||||
BUT107 = 108
|
||||
BUT108 = 109
|
||||
BUT109 = 110
|
||||
BUT110 = 111
|
||||
BUT111 = 112
|
||||
BUT112 = 113
|
||||
BUT113 = 114
|
||||
BUT114 = 115
|
||||
BUT115 = 116
|
||||
BUT116 = 117
|
||||
BUT117 = 118
|
||||
BUT118 = 119
|
||||
BUT119 = 120
|
||||
BUT120 = 121
|
||||
BUT121 = 122
|
||||
BUT122 = 123
|
||||
BUT123 = 124
|
||||
BUT124 = 125
|
||||
BUT125 = 126
|
||||
BUT126 = 127
|
||||
BUT127 = 128
|
||||
BUT128 = 129
|
||||
BUT129 = 130
|
||||
BUT130 = 131
|
||||
BUT131 = 132
|
||||
BUT132 = 133
|
||||
BUT133 = 134
|
||||
BUT134 = 135
|
||||
BUT135 = 136
|
||||
BUT136 = 137
|
||||
BUT137 = 138
|
||||
BUT138 = 139
|
||||
BUT139 = 140
|
||||
BUT140 = 141
|
||||
BUT141 = 142
|
||||
BUT142 = 143
|
||||
BUT143 = 144
|
||||
BUT144 = 145
|
||||
BUT145 = 146
|
||||
BUT146 = 147
|
||||
BUT147 = 148
|
||||
BUT148 = 149
|
||||
BUT149 = 150
|
||||
BUT150 = 151
|
||||
BUT151 = 152
|
||||
BUT152 = 153
|
||||
BUT153 = 154
|
||||
BUT154 = 155
|
||||
BUT155 = 156
|
||||
BUT156 = 157
|
||||
BUT157 = 158
|
||||
BUT158 = 159
|
||||
BUT159 = 160
|
||||
BUT160 = 161
|
||||
BUT161 = 162
|
||||
BUT162 = 163
|
||||
BUT163 = 164
|
||||
BUT164 = 165
|
||||
BUT165 = 166
|
||||
BUT166 = 167
|
||||
BUT167 = 168
|
||||
BUT168 = 169
|
||||
BUT181 = 182
|
||||
BUT182 = 183
|
||||
BUT183 = 184
|
||||
BUT184 = 185
|
||||
BUT185 = 186
|
||||
BUT186 = 187
|
||||
BUT187 = 188
|
||||
BUT188 = 189
|
||||
BUT189 = 190
|
||||
MOUSE1 = 101
|
||||
MOUSE2 = 102
|
||||
MOUSE3 = 103
|
||||
LEFTMOUSE = 103
|
||||
MIDDLEMOUSE = 102
|
||||
RIGHTMOUSE = 101
|
||||
LPENBUT = 104
|
||||
BPAD0 = 105
|
||||
BPAD1 = 106
|
||||
BPAD2 = 107
|
||||
BPAD3 = 108
|
||||
LPENVALID = 109
|
||||
SWBASE = 111
|
||||
SW0 = 111
|
||||
SW1 = 112
|
||||
SW2 = 113
|
||||
SW3 = 114
|
||||
SW4 = 115
|
||||
SW5 = 116
|
||||
SW6 = 117
|
||||
SW7 = 118
|
||||
SW8 = 119
|
||||
SW9 = 120
|
||||
SW10 = 121
|
||||
SW11 = 122
|
||||
SW12 = 123
|
||||
SW13 = 124
|
||||
SW14 = 125
|
||||
SW15 = 126
|
||||
SW16 = 127
|
||||
SW17 = 128
|
||||
SW18 = 129
|
||||
SW19 = 130
|
||||
SW20 = 131
|
||||
SW21 = 132
|
||||
SW22 = 133
|
||||
SW23 = 134
|
||||
SW24 = 135
|
||||
SW25 = 136
|
||||
SW26 = 137
|
||||
SW27 = 138
|
||||
SW28 = 139
|
||||
SW29 = 140
|
||||
SW30 = 141
|
||||
SW31 = 142
|
||||
SBBASE = 182
|
||||
SBPICK = 182
|
||||
SBBUT1 = 183
|
||||
SBBUT2 = 184
|
||||
SBBUT3 = 185
|
||||
SBBUT4 = 186
|
||||
SBBUT5 = 187
|
||||
SBBUT6 = 188
|
||||
SBBUT7 = 189
|
||||
SBBUT8 = 190
|
||||
AKEY = 11
|
||||
BKEY = 36
|
||||
CKEY = 28
|
||||
DKEY = 18
|
||||
EKEY = 17
|
||||
FKEY = 19
|
||||
GKEY = 26
|
||||
HKEY = 27
|
||||
IKEY = 40
|
||||
JKEY = 34
|
||||
KKEY = 35
|
||||
LKEY = 42
|
||||
MKEY = 44
|
||||
NKEY = 37
|
||||
OKEY = 41
|
||||
PKEY = 48
|
||||
QKEY = 10
|
||||
RKEY = 24
|
||||
SKEY = 12
|
||||
TKEY = 25
|
||||
UKEY = 33
|
||||
VKEY = 29
|
||||
WKEY = 16
|
||||
XKEY = 21
|
||||
YKEY = 32
|
||||
ZKEY = 20
|
||||
ZEROKEY = 46
|
||||
ONEKEY = 8
|
||||
TWOKEY = 14
|
||||
THREEKEY = 15
|
||||
FOURKEY = 22
|
||||
FIVEKEY = 23
|
||||
SIXKEY = 30
|
||||
SEVENKEY = 31
|
||||
EIGHTKEY = 38
|
||||
NINEKEY = 39
|
||||
BREAKKEY = 1
|
||||
SETUPKEY = 2
|
||||
CTRLKEY = 3
|
||||
LEFTCTRLKEY = CTRLKEY
|
||||
CAPSLOCKKEY = 4
|
||||
RIGHTSHIFTKEY = 5
|
||||
LEFTSHIFTKEY = 6
|
||||
NOSCRLKEY = 13
|
||||
ESCKEY = 7
|
||||
TABKEY = 9
|
||||
RETKEY = 51
|
||||
SPACEKEY = 83
|
||||
LINEFEEDKEY = 60
|
||||
BACKSPACEKEY = 61
|
||||
DELKEY = 62
|
||||
SEMICOLONKEY = 43
|
||||
PERIODKEY = 52
|
||||
COMMAKEY = 45
|
||||
QUOTEKEY = 50
|
||||
ACCENTGRAVEKEY = 55
|
||||
MINUSKEY = 47
|
||||
VIRGULEKEY = 53
|
||||
BACKSLASHKEY = 57
|
||||
EQUALKEY = 54
|
||||
LEFTBRACKETKEY = 49
|
||||
RIGHTBRACKETKEY = 56
|
||||
LEFTARROWKEY = 73
|
||||
DOWNARROWKEY = 74
|
||||
RIGHTARROWKEY = 80
|
||||
UPARROWKEY = 81
|
||||
PAD0 = 59
|
||||
PAD1 = 58
|
||||
PAD2 = 64
|
||||
PAD3 = 65
|
||||
PAD4 = 63
|
||||
PAD5 = 69
|
||||
PAD6 = 70
|
||||
PAD7 = 67
|
||||
PAD8 = 68
|
||||
PAD9 = 75
|
||||
PADPF1 = 72
|
||||
PADPF2 = 71
|
||||
PADPF3 = 79
|
||||
PADPF4 = 78
|
||||
PADPERIOD = 66
|
||||
PADMINUS = 76
|
||||
PADCOMMA = 77
|
||||
PADENTER = 82
|
||||
LEFTALTKEY = 143
|
||||
RIGHTALTKEY = 144
|
||||
RIGHTCTRLKEY = 145
|
||||
F1KEY = 146
|
||||
F2KEY = 147
|
||||
F3KEY = 148
|
||||
F4KEY = 149
|
||||
F5KEY = 150
|
||||
F6KEY = 151
|
||||
F7KEY = 152
|
||||
F8KEY = 153
|
||||
F9KEY = 154
|
||||
F10KEY = 155
|
||||
F11KEY = 156
|
||||
F12KEY = 157
|
||||
PRINTSCREENKEY = 158
|
||||
SCROLLLOCKKEY = 159
|
||||
PAUSEKEY = 160
|
||||
INSERTKEY = 161
|
||||
HOMEKEY = 162
|
||||
PAGEUPKEY = 163
|
||||
ENDKEY = 164
|
||||
PAGEDOWNKEY = 165
|
||||
NUMLOCKKEY = 166
|
||||
PADVIRGULEKEY = 167
|
||||
PADASTERKEY = 168
|
||||
PADPLUSKEY = 169
|
||||
SGIRESERVED = 256
|
||||
DIAL0 = 257
|
||||
DIAL1 = 258
|
||||
DIAL2 = 259
|
||||
DIAL3 = 260
|
||||
DIAL4 = 261
|
||||
DIAL5 = 262
|
||||
DIAL6 = 263
|
||||
DIAL7 = 264
|
||||
DIAL8 = 265
|
||||
MOUSEX = 266
|
||||
MOUSEY = 267
|
||||
LPENX = 268
|
||||
LPENY = 269
|
||||
BPADX = 270
|
||||
BPADY = 271
|
||||
CURSORX = 272
|
||||
CURSORY = 273
|
||||
GHOSTX = 274
|
||||
GHOSTY = 275
|
||||
SBTX = 276
|
||||
SBTY = 277
|
||||
SBTZ = 278
|
||||
SBRX = 279
|
||||
SBRY = 280
|
||||
SBRZ = 281
|
||||
SBPERIOD = 282
|
||||
TIMER0 = 515
|
||||
TIMER1 = 516
|
||||
TIMER2 = 517
|
||||
TIMER3 = 518
|
||||
KEYBD = 513
|
||||
RAWKEYBD = 514
|
||||
VALMARK = 523
|
||||
REDRAW = 528
|
||||
INPUTCHANGE = 534
|
||||
QFULL = 535
|
||||
QREADERROR = 538
|
||||
WINFREEZE = 539
|
||||
WINTHAW = 540
|
||||
REDRAWICONIC = 541
|
||||
WINQUIT = 542
|
||||
DEPTHCHANGE = 543
|
||||
WINSHUT = 546
|
||||
DRAWOVERLAY = 547
|
||||
VIDEO = 548
|
||||
MENUBUTTON = RIGHTMOUSE
|
||||
WINCLOSE = 537
|
||||
KEYBDFNAMES = 544
|
||||
KEYBDFSTRINGS = 545
|
||||
MAXSGIDEVICE = 20000
|
||||
GERROR = 524
|
||||
WMSEND = 529
|
||||
WMREPLY = 530
|
||||
WMGFCLOSE = 531
|
||||
WMTXCLOSE = 532
|
||||
MODECHANGE = 533
|
||||
PIECECHANGE = 536
|
|
@ -0,0 +1,163 @@
|
|||
# Generated by h2py from /usr/include/sys/errno.h
|
||||
|
||||
# Included from standards.h
|
||||
__KBASE = 1000
|
||||
__IRIXBASE = 1000
|
||||
EPERM = 1
|
||||
ENOENT = 2
|
||||
ESRCH = 3
|
||||
EINTR = 4
|
||||
EIO = 5
|
||||
ENXIO = 6
|
||||
E2BIG = 7
|
||||
ENOEXEC = 8
|
||||
EBADF = 9
|
||||
ECHILD = 10
|
||||
EAGAIN = 11
|
||||
ENOMEM = 12
|
||||
EACCES = 13
|
||||
EFAULT = 14
|
||||
ENOTBLK = 15
|
||||
EBUSY = 16
|
||||
EEXIST = 17
|
||||
EXDEV = 18
|
||||
ENODEV = 19
|
||||
ENOTDIR = 20
|
||||
EISDIR = 21
|
||||
EINVAL = 22
|
||||
ENFILE = 23
|
||||
EMFILE = 24
|
||||
ENOTTY = 25
|
||||
ETXTBSY = 26
|
||||
EFBIG = 27
|
||||
ENOSPC = 28
|
||||
ESPIPE = 29
|
||||
EROFS = 30
|
||||
EMLINK = 31
|
||||
EPIPE = 32
|
||||
EDOM = 33
|
||||
ERANGE = 34
|
||||
ENOMSG = 35
|
||||
EIDRM = 36
|
||||
ECHRNG = 37
|
||||
EL2NSYNC = 38
|
||||
EL3HLT = 39
|
||||
EL3RST = 40
|
||||
ELNRNG = 41
|
||||
EUNATCH = 42
|
||||
ENOCSI = 43
|
||||
EL2HLT = 44
|
||||
EDEADLK = 45
|
||||
ENOLCK = 46
|
||||
EBADE = 50
|
||||
EBADR = 51
|
||||
EXFULL = 52
|
||||
ENOANO = 53
|
||||
EBADRQC = 54
|
||||
EBADSLT = 55
|
||||
EDEADLOCK = 56
|
||||
EBFONT = 57
|
||||
ENOSTR = 60
|
||||
ENODATA = 61
|
||||
ETIME = 62
|
||||
ENOSR = 63
|
||||
ENONET = 64
|
||||
ENOPKG = 65
|
||||
EREMOTE = 66
|
||||
ENOLINK = 67
|
||||
EADV = 68
|
||||
ESRMNT = 69
|
||||
ECOMM = 70
|
||||
EPROTO = 71
|
||||
EMULTIHOP = 74
|
||||
EBADMSG = 77
|
||||
ENAMETOOLONG = 78
|
||||
EOVERFLOW = 79
|
||||
ENOTUNIQ = 80
|
||||
EBADFD = 81
|
||||
EREMCHG = 82
|
||||
ELIBACC = 83
|
||||
ELIBBAD = 84
|
||||
ELIBSCN = 85
|
||||
ELIBMAX = 86
|
||||
ELIBEXEC = 87
|
||||
EILSEQ = 88
|
||||
ENOSYS = 89
|
||||
ELOOP = 90
|
||||
ERESTART = 91
|
||||
ESTRPIPE = 92
|
||||
ENOTEMPTY = 93
|
||||
EUSERS = 94
|
||||
ENOTSOCK = 95
|
||||
EDESTADDRREQ = 96
|
||||
EMSGSIZE = 97
|
||||
EPROTOTYPE = 98
|
||||
ENOPROTOOPT = 99
|
||||
EPROTONOSUPPORT = 120
|
||||
ESOCKTNOSUPPORT = 121
|
||||
EOPNOTSUPP = 122
|
||||
EPFNOSUPPORT = 123
|
||||
EAFNOSUPPORT = 124
|
||||
EADDRINUSE = 125
|
||||
EADDRNOTAVAIL = 126
|
||||
ENETDOWN = 127
|
||||
ENETUNREACH = 128
|
||||
ENETRESET = 129
|
||||
ECONNABORTED = 130
|
||||
ECONNRESET = 131
|
||||
ENOBUFS = 132
|
||||
EISCONN = 133
|
||||
ENOTCONN = 134
|
||||
ESHUTDOWN = 143
|
||||
ETOOMANYREFS = 144
|
||||
ETIMEDOUT = 145
|
||||
ECONNREFUSED = 146
|
||||
EHOSTDOWN = 147
|
||||
EHOSTUNREACH = 148
|
||||
LASTERRNO = ENOTCONN
|
||||
EWOULDBLOCK = __KBASE+101
|
||||
EWOULDBLOCK = EAGAIN
|
||||
EALREADY = 149
|
||||
EINPROGRESS = 150
|
||||
ESTALE = 151
|
||||
EIORESID = 500
|
||||
EUCLEAN = 135
|
||||
ENOTNAM = 137
|
||||
ENAVAIL = 138
|
||||
EISNAM = 139
|
||||
EREMOTEIO = 140
|
||||
EINIT = 141
|
||||
EREMDEV = 142
|
||||
ECANCELED = 158
|
||||
ENOLIMFILE = 1001
|
||||
EPROCLIM = 1002
|
||||
EDISJOINT = 1003
|
||||
ENOLOGIN = 1004
|
||||
ELOGINLIM = 1005
|
||||
EGROUPLOOP = 1006
|
||||
ENOATTACH = 1007
|
||||
ENOTSUP = 1008
|
||||
ENOATTR = 1009
|
||||
EDIRCORRUPTED = 1010
|
||||
EDQUOT = 1133
|
||||
ENFSREMOTE = 1135
|
||||
ECONTROLLER = 1300
|
||||
ENOTCONTROLLER = 1301
|
||||
EENQUEUED = 1302
|
||||
ENOTENQUEUED = 1303
|
||||
EJOINED = 1304
|
||||
ENOTJOINED = 1305
|
||||
ENOPROC = 1306
|
||||
EMUSTRUN = 1307
|
||||
ENOTSTOPPED = 1308
|
||||
ECLOCKCPU = 1309
|
||||
EINVALSTATE = 1310
|
||||
ENOEXIST = 1311
|
||||
EENDOFMINOR = 1312
|
||||
EBUFSIZE = 1313
|
||||
EEMPTY = 1314
|
||||
ENOINTRGROUP = 1315
|
||||
EINVALMODE = 1316
|
||||
ECANTEXTENT = 1317
|
||||
EINVALTIME = 1318
|
||||
EDESTROYED = 1319
|
|
@ -0,0 +1,114 @@
|
|||
# Generated by h2py from /usr/include/sys/fcntl.h
|
||||
|
||||
# Included from standards.h
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
FNDELAY = 0x04
|
||||
FAPPEND = 0x08
|
||||
FSYNC = 0x10
|
||||
FDSYNC = 0x20
|
||||
FRSYNC = 0x40
|
||||
FNONBLOCK = 0x80
|
||||
FASYNC = 0x1000
|
||||
FLARGEFILE = 0x2000
|
||||
FNONBLK = FNONBLOCK
|
||||
FDIRECT = 0x8000
|
||||
FDIRENT64 = 0x8000
|
||||
FCREAT = 0x0100
|
||||
FTRUNC = 0x0200
|
||||
FEXCL = 0x0400
|
||||
FNOCTTY = 0x0800
|
||||
O_RDONLY = 0
|
||||
O_WRONLY = 1
|
||||
O_RDWR = 2
|
||||
O_NDELAY = 0x04
|
||||
O_APPEND = 0x08
|
||||
O_SYNC = 0x10
|
||||
O_DSYNC = 0x20
|
||||
O_RSYNC = 0x40
|
||||
O_NONBLOCK = 0x80
|
||||
O_LARGEFILE = 0x2000
|
||||
O_DIRECT = 0x8000
|
||||
O_CREAT = 0x100
|
||||
O_TRUNC = 0x200
|
||||
O_EXCL = 0x400
|
||||
O_NOCTTY = 0x800
|
||||
F_DUPFD = 0
|
||||
F_GETFD = 1
|
||||
F_SETFD = 2
|
||||
F_GETFL = 3
|
||||
F_SETFL = 4
|
||||
F_GETLK = 14
|
||||
F_SETLK = 6
|
||||
F_SETLKW = 7
|
||||
F_CHKFL = 8
|
||||
F_ALLOCSP = 10
|
||||
F_FREESP = 11
|
||||
F_SETBSDLK = 12
|
||||
F_SETBSDLKW = 13
|
||||
F_DIOINFO = 30
|
||||
F_FSGETXATTR = 31
|
||||
F_FSSETXATTR = 32
|
||||
F_GETLK64 = 33
|
||||
F_SETLK64 = 34
|
||||
F_SETLKW64 = 35
|
||||
F_ALLOCSP64 = 36
|
||||
F_FREESP64 = 37
|
||||
F_GETBMAP = 38
|
||||
F_FSSETDM = 39
|
||||
F_RESVSP = 40
|
||||
F_UNRESVSP = 41
|
||||
F_RESVSP64 = 42
|
||||
F_UNRESVSP64 = 43
|
||||
F_GETBMAPA = 44
|
||||
F_FSGETXATTRA = 45
|
||||
F_GETALLLK = 46
|
||||
F_RSETLK = 20
|
||||
F_RGETLK = 21
|
||||
F_RSETLKW = 22
|
||||
F_GETOWN = 23
|
||||
F_SETOWN = 24
|
||||
F_RDLCK = 01
|
||||
F_WRLCK = 02
|
||||
F_UNLCK = 03
|
||||
O_ACCMODE = 3
|
||||
FD_CLOEXEC = 1
|
||||
FD_NODUP_FORK = 4
|
|
@ -0,0 +1,236 @@
|
|||
# Generated by h2py from /usr/include/sys/file.h
|
||||
|
||||
# Included from standards.h
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
|
||||
# Included from sys/sema.h
|
||||
MUTEX_DEFAULT = 0x0
|
||||
METER_NAMSZ = 8
|
||||
def mutex_spinlock(l): return splhi()
|
||||
|
||||
def mutex_spintrylock(l): return splhi()
|
||||
|
||||
def spinlock_islocked(l): return issplhi(getsr())
|
||||
|
||||
def spinlock_initialized(l): return 1
|
||||
|
||||
SV_FIFO = 0x0
|
||||
SV_LIFO = 0x2
|
||||
SV_PRIO = 0x4
|
||||
SV_DEFAULT = SV_FIFO
|
||||
SEMA_NOHIST = 0x0001
|
||||
SEMA_LOCK = 0x0004
|
||||
SEMA_METER = 0x0008
|
||||
SEMA_NAMSZ = METER_NAMSZ
|
||||
MR_ACCESS = 0x1
|
||||
MR_UPDATE = 0x2
|
||||
def mp_mutex_unlock(m): return mutex_unlock(m)
|
||||
|
||||
def mp_mutex_trylock(m): return mutex_trylock(m)
|
||||
|
||||
def mp_mutex_spinlock(m): return mutex_spinlock(m)
|
||||
|
||||
def mp_mutex_trylock(m): return 1
|
||||
|
||||
def mp_mutex_spinlock(m): return 1
|
||||
|
||||
def nested_spintrylock(m): return 1
|
||||
|
||||
def mp_mrunlock(a): return mrunlock(a)
|
||||
|
||||
def mp_cpsema(x): return cpsema(x)
|
||||
|
||||
def mp_cvsema(x): return cvsema(x)
|
||||
|
||||
def mp_cpsema(x): return 1
|
||||
|
||||
def mp_cvsema(x): return 0
|
||||
|
||||
MON_LOCKED = 0x01
|
||||
MON_WAITING = 0x02
|
||||
MON_TIMEOUT = 0x04
|
||||
def initlock(l): return spinlock_init(l,0)
|
||||
|
||||
def ownlock(x): return 1
|
||||
|
||||
def splock(x): return 1
|
||||
|
||||
def io_splock(x): return 1
|
||||
|
||||
def mutex_enter(m): return mutex_lock(m, PZERO)
|
||||
|
||||
def mutex_tryenter(m): return mutex_trylock(m)
|
||||
|
||||
def mutex_exit(m): return mutex_unlock(m)
|
||||
|
||||
def cv_signal(cv): return sv_signal(cv)
|
||||
|
||||
def cv_broadcast(cv): return sv_broadcast(cv)
|
||||
|
||||
def cv_destroy(cv): return sv_destroy(cv)
|
||||
|
||||
RW_READER = MR_ACCESS
|
||||
RW_WRITER = MR_UPDATE
|
||||
def rw_exit(r): return mrunlock(r)
|
||||
|
||||
def rw_tryupgrade(r): return cmrpromote(r)
|
||||
|
||||
def rw_downgrade(r): return mrdemote(r)
|
||||
|
||||
def rw_destroy(r): return mrfree(r)
|
||||
|
||||
def RW_WRITE_HELD(r): return ismrlocked(r, MR_UPDATE)
|
||||
|
||||
def RW_READ_HELD(r): return ismrlocked(r, MR_ACCESS)
|
||||
|
||||
|
||||
# Included from sys/fcntl.h
|
||||
FNDELAY = 0x04
|
||||
FAPPEND = 0x08
|
||||
FSYNC = 0x10
|
||||
FDSYNC = 0x20
|
||||
FRSYNC = 0x40
|
||||
FNONBLOCK = 0x80
|
||||
FASYNC = 0x1000
|
||||
FLARGEFILE = 0x2000
|
||||
FNONBLK = FNONBLOCK
|
||||
FDIRECT = 0x8000
|
||||
FDIRENT64 = 0x8000
|
||||
FCREAT = 0x0100
|
||||
FTRUNC = 0x0200
|
||||
FEXCL = 0x0400
|
||||
FNOCTTY = 0x0800
|
||||
O_RDONLY = 0
|
||||
O_WRONLY = 1
|
||||
O_RDWR = 2
|
||||
O_NDELAY = 0x04
|
||||
O_APPEND = 0x08
|
||||
O_SYNC = 0x10
|
||||
O_DSYNC = 0x20
|
||||
O_RSYNC = 0x40
|
||||
O_NONBLOCK = 0x80
|
||||
O_LARGEFILE = 0x2000
|
||||
O_DIRECT = 0x8000
|
||||
O_CREAT = 0x100
|
||||
O_TRUNC = 0x200
|
||||
O_EXCL = 0x400
|
||||
O_NOCTTY = 0x800
|
||||
F_DUPFD = 0
|
||||
F_GETFD = 1
|
||||
F_SETFD = 2
|
||||
F_GETFL = 3
|
||||
F_SETFL = 4
|
||||
F_GETLK = 14
|
||||
F_SETLK = 6
|
||||
F_SETLKW = 7
|
||||
F_CHKFL = 8
|
||||
F_ALLOCSP = 10
|
||||
F_FREESP = 11
|
||||
F_SETBSDLK = 12
|
||||
F_SETBSDLKW = 13
|
||||
F_DIOINFO = 30
|
||||
F_FSGETXATTR = 31
|
||||
F_FSSETXATTR = 32
|
||||
F_GETLK64 = 33
|
||||
F_SETLK64 = 34
|
||||
F_SETLKW64 = 35
|
||||
F_ALLOCSP64 = 36
|
||||
F_FREESP64 = 37
|
||||
F_GETBMAP = 38
|
||||
F_FSSETDM = 39
|
||||
F_RESVSP = 40
|
||||
F_UNRESVSP = 41
|
||||
F_RESVSP64 = 42
|
||||
F_UNRESVSP64 = 43
|
||||
F_GETBMAPA = 44
|
||||
F_FSGETXATTRA = 45
|
||||
F_GETALLLK = 46
|
||||
F_RSETLK = 20
|
||||
F_RGETLK = 21
|
||||
F_RSETLKW = 22
|
||||
F_GETOWN = 23
|
||||
F_SETOWN = 24
|
||||
F_RDLCK = 01
|
||||
F_WRLCK = 02
|
||||
F_UNLCK = 03
|
||||
O_ACCMODE = 3
|
||||
FD_CLOEXEC = 1
|
||||
FD_NODUP_FORK = 4
|
||||
FMASK = 0x90FF
|
||||
FOPEN = 0xFFFFFFFF
|
||||
FREAD = 0x01
|
||||
FWRITE = 0x02
|
||||
FNDELAY = 0x04
|
||||
FAPPEND = 0x08
|
||||
FSYNC = 0x10
|
||||
FDSYNC = 0x20
|
||||
FRSYNC = 0x40
|
||||
FNONBLOCK = 0x80
|
||||
FASYNC = 0x1000
|
||||
FNONBLK = FNONBLOCK
|
||||
FLARGEFILE = 0x2000
|
||||
FDIRECT = 0x8000
|
||||
FCREAT = 0x0100
|
||||
FTRUNC = 0x0200
|
||||
FEXCL = 0x0400
|
||||
FNOCTTY = 0x0800
|
||||
FMARK = 0x4000
|
||||
FDEFER = 0x2000
|
||||
FINPROGRESS = 0x0400
|
||||
FINVIS = 0x0100
|
||||
FNMFS = 0x2000
|
||||
FDIRENT64 = 0x8000
|
||||
FCLOSEXEC = 001
|
||||
FDSHD = 0x0001
|
||||
FDNOMARK = 0x0002
|
||||
FDIGNPROGRESS = 0x0004
|
||||
LOCK_SH = 1
|
||||
LOCK_EX = 2
|
||||
LOCK_NB = 4
|
||||
LOCK_UN = 8
|
||||
F_OK = 0
|
||||
X_OK = 1
|
||||
W_OK = 2
|
||||
R_OK = 4
|
||||
L_SET = 0
|
||||
L_INCR = 1
|
||||
L_XTND = 2
|
|
@ -0,0 +1,289 @@
|
|||
# Constants used by the FORMS library (module fl).
|
||||
# This corresponds to "forms.h".
|
||||
# Recommended use: import FL; ... FL.NORMAL_BOX ... etc.
|
||||
# Alternate use: from FL import *; ... NORMAL_BOX ... etc.
|
||||
|
||||
_v20 = 1
|
||||
_v21 = 1
|
||||
##import fl
|
||||
##try:
|
||||
## _v20 = (fl.get_rgbmode <> None)
|
||||
##except:
|
||||
## _v20 = 0
|
||||
##del fl
|
||||
|
||||
NULL = 0
|
||||
FALSE = 0
|
||||
TRUE = 1
|
||||
|
||||
EVENT = -1
|
||||
|
||||
LABEL_SIZE = 64
|
||||
if _v20:
|
||||
SHORTCUT_SIZE = 32
|
||||
PLACE_FREE = 0
|
||||
PLACE_SIZE = 1
|
||||
PLACE_ASPECT = 2
|
||||
PLACE_MOUSE = 3
|
||||
PLACE_CENTER = 4
|
||||
PLACE_POSITION = 5
|
||||
FL_PLACE_FULLSCREEN = 6
|
||||
FIND_INPUT = 0
|
||||
FIND_AUTOMATIC = 1
|
||||
FIND_MOUSE = 2
|
||||
BEGIN_GROUP = 10000
|
||||
END_GROUP = 20000
|
||||
ALIGN_TOP = 0
|
||||
ALIGN_BOTTOM = 1
|
||||
ALIGN_LEFT = 2
|
||||
ALIGN_RIGHT = 3
|
||||
ALIGN_CENTER = 4
|
||||
NO_BOX = 0
|
||||
UP_BOX = 1
|
||||
DOWN_BOX = 2
|
||||
FLAT_BOX = 3
|
||||
BORDER_BOX = 4
|
||||
SHADOW_BOX = 5
|
||||
FRAME_BOX = 6
|
||||
ROUNDED_BOX = 7
|
||||
RFLAT_BOX = 8
|
||||
RSHADOW_BOX = 9
|
||||
TOP_BOUND_COL = 51
|
||||
LEFT_BOUND_COL = 55
|
||||
BOT_BOUND_COL = 40
|
||||
RIGHT_BOUND_COL = 35
|
||||
COL1 = 47
|
||||
MCOL = 49
|
||||
LCOL = 0
|
||||
BOUND_WIDTH = 3.0
|
||||
DRAW = 0
|
||||
PUSH = 1
|
||||
RELEASE = 2
|
||||
ENTER = 3
|
||||
LEAVE = 4
|
||||
MOUSE = 5
|
||||
FOCUS = 6
|
||||
UNFOCUS = 7
|
||||
KEYBOARD = 8
|
||||
STEP = 9
|
||||
MOVE = 10
|
||||
FONT_NAME = 'Helvetica'
|
||||
FONT_BOLDNAME = 'Helvetica-Bold'
|
||||
FONT_ITALICNAME = 'Helvetica-Oblique'
|
||||
FONT_FIXEDNAME = 'Courier'
|
||||
FONT_ICONNAME = 'Icon'
|
||||
SMALL_FONT = 8.0
|
||||
NORMAL_FONT = 11.0
|
||||
LARGE_FONT = 20.0
|
||||
NORMAL_STYLE = 0
|
||||
BOLD_STYLE = 1
|
||||
ITALIC_STYLE = 2
|
||||
FIXED_STYLE = 3
|
||||
ENGRAVED_STYLE = 4
|
||||
ICON_STYLE = 5
|
||||
BITMAP = 3
|
||||
NORMAL_BITMAP = 0
|
||||
BITMAP_BOXTYPE = NO_BOX
|
||||
BITMAP_COL1 = 0
|
||||
BITMAP_COL2 = COL1
|
||||
BITMAP_LCOL = LCOL
|
||||
BITMAP_ALIGN = ALIGN_BOTTOM
|
||||
BITMAP_MAXSIZE = 128*128
|
||||
BITMAP_BW = BOUND_WIDTH
|
||||
BOX = 1
|
||||
BOX_BOXTYPE = UP_BOX
|
||||
BOX_COL1 = COL1
|
||||
BOX_LCOL = LCOL
|
||||
BOX_ALIGN = ALIGN_CENTER
|
||||
BOX_BW = BOUND_WIDTH
|
||||
BROWSER = 71
|
||||
NORMAL_BROWSER = 0
|
||||
SELECT_BROWSER = 1
|
||||
HOLD_BROWSER = 2
|
||||
MULTI_BROWSER = 3
|
||||
BROWSER_BOXTYPE = DOWN_BOX
|
||||
BROWSER_COL1 = COL1
|
||||
BROWSER_COL2 = 3
|
||||
BROWSER_LCOL = LCOL
|
||||
BROWSER_ALIGN = ALIGN_BOTTOM
|
||||
BROWSER_SLCOL = COL1
|
||||
BROWSER_BW = BOUND_WIDTH
|
||||
BROWSER_LINELENGTH = 128
|
||||
BROWSER_MAXLINE = 512
|
||||
BUTTON = 11
|
||||
NORMAL_BUTTON = 0
|
||||
PUSH_BUTTON = 1
|
||||
RADIO_BUTTON = 2
|
||||
HIDDEN_BUTTON = 3
|
||||
TOUCH_BUTTON = 4
|
||||
INOUT_BUTTON = 5
|
||||
RETURN_BUTTON = 6
|
||||
if _v20:
|
||||
HIDDEN_RET_BUTTON = 7
|
||||
BUTTON_BOXTYPE = UP_BOX
|
||||
BUTTON_COL1 = COL1
|
||||
BUTTON_COL2 = COL1
|
||||
BUTTON_LCOL = LCOL
|
||||
BUTTON_ALIGN = ALIGN_CENTER
|
||||
BUTTON_MCOL1 = MCOL
|
||||
BUTTON_MCOL2 = MCOL
|
||||
BUTTON_BW = BOUND_WIDTH
|
||||
if _v20:
|
||||
CHART = 4
|
||||
BAR_CHART = 0
|
||||
HORBAR_CHART = 1
|
||||
LINE_CHART = 2
|
||||
FILLED_CHART = 3
|
||||
SPIKE_CHART = 4
|
||||
PIE_CHART = 5
|
||||
SPECIALPIE_CHART = 6
|
||||
CHART_BOXTYPE = BORDER_BOX
|
||||
CHART_COL1 = COL1
|
||||
CHART_LCOL = LCOL
|
||||
CHART_ALIGN = ALIGN_BOTTOM
|
||||
CHART_BW = BOUND_WIDTH
|
||||
CHART_MAX = 128
|
||||
CHOICE = 42
|
||||
NORMAL_CHOICE = 0
|
||||
CHOICE_BOXTYPE = DOWN_BOX
|
||||
CHOICE_COL1 = COL1
|
||||
CHOICE_COL2 = LCOL
|
||||
CHOICE_LCOL = LCOL
|
||||
CHOICE_ALIGN = ALIGN_LEFT
|
||||
CHOICE_BW = BOUND_WIDTH
|
||||
CHOICE_MCOL = MCOL
|
||||
CHOICE_MAXITEMS = 128
|
||||
CHOICE_MAXSTR = 64
|
||||
CLOCK = 61
|
||||
SQUARE_CLOCK = 0
|
||||
ROUND_CLOCK = 1
|
||||
CLOCK_BOXTYPE = UP_BOX
|
||||
CLOCK_COL1 = 37
|
||||
CLOCK_COL2 = 42
|
||||
CLOCK_LCOL = LCOL
|
||||
CLOCK_ALIGN = ALIGN_BOTTOM
|
||||
CLOCK_TOPCOL = COL1
|
||||
CLOCK_BW = BOUND_WIDTH
|
||||
COUNTER = 25
|
||||
NORMAL_COUNTER = 0
|
||||
SIMPLE_COUNTER = 1
|
||||
COUNTER_BOXTYPE = UP_BOX
|
||||
COUNTER_COL1 = COL1
|
||||
COUNTER_COL2 = 4
|
||||
COUNTER_LCOL = LCOL
|
||||
COUNTER_ALIGN = ALIGN_BOTTOM
|
||||
if _v20:
|
||||
COUNTER_BW = BOUND_WIDTH
|
||||
else:
|
||||
DEFAULT = 51
|
||||
RETURN_DEFAULT = 0
|
||||
ALWAYS_DEFAULT = 1
|
||||
DIAL = 22
|
||||
NORMAL_DIAL = 0
|
||||
LINE_DIAL = 1
|
||||
DIAL_BOXTYPE = NO_BOX
|
||||
DIAL_COL1 = COL1
|
||||
DIAL_COL2 = 37
|
||||
DIAL_LCOL = LCOL
|
||||
DIAL_ALIGN = ALIGN_BOTTOM
|
||||
DIAL_TOPCOL = COL1
|
||||
DIAL_BW = BOUND_WIDTH
|
||||
FREE = 101
|
||||
NORMAL_FREE = 1
|
||||
SLEEPING_FREE = 2
|
||||
INPUT_FREE = 3
|
||||
CONTINUOUS_FREE = 4
|
||||
ALL_FREE = 5
|
||||
INPUT = 31
|
||||
NORMAL_INPUT = 0
|
||||
if _v20:
|
||||
FLOAT_INPUT = 1
|
||||
INT_INPUT = 2
|
||||
HIDDEN_INPUT = 3
|
||||
if _v21:
|
||||
MULTILINE_INPUT = 4
|
||||
SECRET_INPUT = 5
|
||||
else:
|
||||
ALWAYS_INPUT = 1
|
||||
INPUT_BOXTYPE = DOWN_BOX
|
||||
INPUT_COL1 = 13
|
||||
INPUT_COL2 = 5
|
||||
INPUT_LCOL = LCOL
|
||||
INPUT_ALIGN = ALIGN_LEFT
|
||||
INPUT_TCOL = LCOL
|
||||
INPUT_CCOL = 4
|
||||
INPUT_BW = BOUND_WIDTH
|
||||
INPUT_MAX = 128
|
||||
LIGHTBUTTON = 12
|
||||
LIGHTBUTTON_BOXTYPE = UP_BOX
|
||||
LIGHTBUTTON_COL1 = 39
|
||||
LIGHTBUTTON_COL2 = 3
|
||||
LIGHTBUTTON_LCOL = LCOL
|
||||
LIGHTBUTTON_ALIGN = ALIGN_CENTER
|
||||
LIGHTBUTTON_TOPCOL = COL1
|
||||
LIGHTBUTTON_MCOL = MCOL
|
||||
LIGHTBUTTON_BW1 = BOUND_WIDTH
|
||||
LIGHTBUTTON_BW2 = BOUND_WIDTH/2.0
|
||||
LIGHTBUTTON_MINSIZE = 12.0
|
||||
MENU = 41
|
||||
TOUCH_MENU = 0
|
||||
PUSH_MENU = 1
|
||||
MENU_BOXTYPE = BORDER_BOX
|
||||
MENU_COL1 = 55
|
||||
MENU_COL2 = 37
|
||||
MENU_LCOL = LCOL
|
||||
MENU_ALIGN = ALIGN_CENTER
|
||||
MENU_BW = BOUND_WIDTH
|
||||
MENU_MAX = 300
|
||||
POSITIONER = 23
|
||||
NORMAL_POSITIONER = 0
|
||||
POSITIONER_BOXTYPE = DOWN_BOX
|
||||
POSITIONER_COL1 = COL1
|
||||
POSITIONER_COL2 = 1
|
||||
POSITIONER_LCOL = LCOL
|
||||
POSITIONER_ALIGN = ALIGN_BOTTOM
|
||||
POSITIONER_BW = BOUND_WIDTH
|
||||
ROUNDBUTTON = 13
|
||||
ROUNDBUTTON_BOXTYPE = NO_BOX
|
||||
ROUNDBUTTON_COL1 = 7
|
||||
ROUNDBUTTON_COL2 = 3
|
||||
ROUNDBUTTON_LCOL = LCOL
|
||||
ROUNDBUTTON_ALIGN = ALIGN_CENTER
|
||||
ROUNDBUTTON_TOPCOL = COL1
|
||||
ROUNDBUTTON_MCOL = MCOL
|
||||
ROUNDBUTTON_BW = BOUND_WIDTH
|
||||
SLIDER = 21
|
||||
VALSLIDER = 24
|
||||
VERT_SLIDER = 0
|
||||
HOR_SLIDER = 1
|
||||
VERT_FILL_SLIDER = 2
|
||||
HOR_FILL_SLIDER = 3
|
||||
VERT_NICE_SLIDER = 4
|
||||
HOR_NICE_SLIDER = 5
|
||||
SLIDER_BOXTYPE = DOWN_BOX
|
||||
SLIDER_COL1 = COL1
|
||||
SLIDER_COL2 = COL1
|
||||
SLIDER_LCOL = LCOL
|
||||
SLIDER_ALIGN = ALIGN_BOTTOM
|
||||
SLIDER_BW1 = BOUND_WIDTH
|
||||
SLIDER_BW2 = BOUND_WIDTH*0.75
|
||||
SLIDER_FINE = 0.05
|
||||
SLIDER_WIDTH = 0.08
|
||||
TEXT = 2
|
||||
NORMAL_TEXT = 0
|
||||
TEXT_BOXTYPE = NO_BOX
|
||||
TEXT_COL1 = COL1
|
||||
TEXT_LCOL = LCOL
|
||||
TEXT_ALIGN = ALIGN_LEFT
|
||||
TEXT_BW = BOUND_WIDTH
|
||||
TIMER = 62
|
||||
NORMAL_TIMER = 0
|
||||
VALUE_TIMER = 1
|
||||
HIDDEN_TIMER = 2
|
||||
TIMER_BOXTYPE = DOWN_BOX
|
||||
TIMER_COL1 = COL1
|
||||
TIMER_COL2 = 1
|
||||
TIMER_LCOL = LCOL
|
||||
TIMER_ALIGN = ALIGN_CENTER
|
||||
TIMER_BW = BOUND_WIDTH
|
||||
TIMER_BLINKRATE = 0.2
|
|
@ -0,0 +1,59 @@
|
|||
# Symbols from <gl/get.h>
|
||||
|
||||
BCKBUFFER = 0x1
|
||||
FRNTBUFFER = 0x2
|
||||
DRAWZBUFFER = 0x4
|
||||
DMRGB = 0
|
||||
DMSINGLE = 1
|
||||
DMDOUBLE = 2
|
||||
DMRGBDOUBLE = 5
|
||||
HZ30 = 0
|
||||
HZ60 = 1
|
||||
NTSC = 2
|
||||
HDTV = 3
|
||||
VGA = 4
|
||||
IRIS3K = 5
|
||||
PR60 = 6
|
||||
PAL = 9
|
||||
HZ30_SG = 11
|
||||
A343 = 14
|
||||
STR_RECT = 15
|
||||
VOF0 = 16
|
||||
VOF1 = 17
|
||||
VOF2 = 18
|
||||
VOF3 = 19
|
||||
SGI0 = 20
|
||||
SGI1 = 21
|
||||
SGI2 = 22
|
||||
HZ72 = 23
|
||||
GL_VIDEO_REG = 0x00800000
|
||||
GLV_GENLOCK = 0x00000001
|
||||
GLV_UNBLANK = 0x00000002
|
||||
GLV_SRED = 0x00000004
|
||||
GLV_SGREEN = 0x00000008
|
||||
GLV_SBLUE = 0x00000010
|
||||
GLV_SALPHA = 0x00000020
|
||||
GLV_TTLGENLOCK = 0x00000080
|
||||
GLV_TTLSYNC = GLV_TTLGENLOCK
|
||||
GLV_GREENGENLOCK = 0x0000100
|
||||
LEFTPLANE = 0x0001
|
||||
RIGHTPLANE = 0x0002
|
||||
BOTTOMPLANE = 0x0004
|
||||
TOPPLANE = 0x0008
|
||||
NEARPLANE = 0x0010
|
||||
FARPLANE = 0x0020
|
||||
## GETDEF = __GL_GET_H__
|
||||
NOBUFFER = 0x0
|
||||
BOTHBUFFERS = 0x3
|
||||
DMINTENSITYSINGLE = 3
|
||||
DMINTENSITYDOUBLE = 4
|
||||
MONSPECIAL = 0x20
|
||||
HZ50 = 3
|
||||
MONA = 5
|
||||
MONB = 6
|
||||
MONC = 7
|
||||
MOND = 8
|
||||
MON_ALL = 12
|
||||
MON_GEN_ALL = 13
|
||||
CMAPMULTI = 0
|
||||
CMAPONE = 1
|
|
@ -0,0 +1,393 @@
|
|||
NULL = 0
|
||||
FALSE = 0
|
||||
TRUE = 1
|
||||
ATTRIBSTACKDEPTH = 10
|
||||
VPSTACKDEPTH = 8
|
||||
MATRIXSTACKDEPTH = 32
|
||||
NAMESTACKDEPTH = 1025
|
||||
STARTTAG = -2
|
||||
ENDTAG = -3
|
||||
BLACK = 0
|
||||
RED = 1
|
||||
GREEN = 2
|
||||
YELLOW = 3
|
||||
BLUE = 4
|
||||
MAGENTA = 5
|
||||
CYAN = 6
|
||||
WHITE = 7
|
||||
PUP_CLEAR = 0
|
||||
PUP_COLOR = 1
|
||||
PUP_BLACK = 2
|
||||
PUP_WHITE = 3
|
||||
NORMALDRAW = 0x010
|
||||
PUPDRAW = 0x020
|
||||
OVERDRAW = 0x040
|
||||
UNDERDRAW = 0x080
|
||||
CURSORDRAW = 0x100
|
||||
DUALDRAW = 0x200
|
||||
PATTERN_16 = 16
|
||||
PATTERN_32 = 32
|
||||
PATTERN_64 = 64
|
||||
PATTERN_16_SIZE = 16
|
||||
PATTERN_32_SIZE = 64
|
||||
PATTERN_64_SIZE = 256
|
||||
SRC_AUTO = 0
|
||||
SRC_FRONT = 1
|
||||
SRC_BACK = 2
|
||||
SRC_ZBUFFER = 3
|
||||
SRC_PUP = 4
|
||||
SRC_OVER = 5
|
||||
SRC_UNDER = 6
|
||||
SRC_FRAMEGRABBER = 7
|
||||
BF_ZERO = 0
|
||||
BF_ONE = 1
|
||||
BF_DC = 2
|
||||
BF_SC = 2
|
||||
BF_MDC = 3
|
||||
BF_MSC = 3
|
||||
BF_SA = 4
|
||||
BF_MSA = 5
|
||||
BF_DA = 6
|
||||
BF_MDA = 7
|
||||
BF_MIN_SA_MDA = 8
|
||||
AF_NEVER = 0
|
||||
AF_LESS = 1
|
||||
AF_EQUAL = 2
|
||||
AF_LEQUAL = 3
|
||||
AF_GREATER = 4
|
||||
AF_NOTEQUAL = 5
|
||||
AF_GEQUAL = 6
|
||||
AF_ALWAYS = 7
|
||||
ZF_NEVER = 0
|
||||
ZF_LESS = 1
|
||||
ZF_EQUAL = 2
|
||||
ZF_LEQUAL = 3
|
||||
ZF_GREATER = 4
|
||||
ZF_NOTEQUAL = 5
|
||||
ZF_GEQUAL = 6
|
||||
ZF_ALWAYS = 7
|
||||
ZSRC_DEPTH = 0
|
||||
ZSRC_COLOR = 1
|
||||
SMP_OFF = 0x0
|
||||
SMP_ON = 0x1
|
||||
SMP_SMOOTHER = 0x2
|
||||
SML_OFF = 0x0
|
||||
SML_ON = 0x1
|
||||
SML_SMOOTHER = 0x2
|
||||
SML_END_CORRECT = 0x4
|
||||
PYSM_OFF = 0
|
||||
PYSM_ON = 1
|
||||
PYSM_SHRINK = 2
|
||||
DT_OFF = 0
|
||||
DT_ON = 1
|
||||
PUP_NONE = 0
|
||||
PUP_GREY = 0x1
|
||||
PUP_BOX = 0x2
|
||||
PUP_CHECK = 0x4
|
||||
GLC_OLDPOLYGON = 0
|
||||
GLC_ZRANGEMAP = 1
|
||||
GLC_MQUEUERATE = 2
|
||||
GLC_SOFTATTACH = 3
|
||||
GLC_MANAGEBG = 4
|
||||
GLC_SLOWMAPCOLORS = 5
|
||||
GLC_INPUTCHANGEBUG = 6
|
||||
GLC_NOBORDERBUG = 7
|
||||
GLC_SET_VSYNC = 8
|
||||
GLC_GET_VSYNC = 9
|
||||
GLC_VSYNC_SLEEP = 10
|
||||
GLC_COMPATRATE = 15
|
||||
C16X1 = 0
|
||||
C16X2 = 1
|
||||
C32X1 = 2
|
||||
C32X2 = 3
|
||||
CCROSS = 4
|
||||
FLAT = 0
|
||||
GOURAUD = 1
|
||||
LO_ZERO = 0x0
|
||||
LO_AND = 0x1
|
||||
LO_ANDR = 0x2
|
||||
LO_SRC = 0x3
|
||||
LO_ANDI = 0x4
|
||||
LO_DST = 0x5
|
||||
LO_XOR = 0x6
|
||||
LO_OR = 0x7
|
||||
LO_NOR = 0x8
|
||||
LO_XNOR = 0x9
|
||||
LO_NDST = 0xa
|
||||
LO_ORR = 0xb
|
||||
LO_NSRC = 0xc
|
||||
LO_ORI = 0xd
|
||||
LO_NAND = 0xe
|
||||
LO_ONE = 0xf
|
||||
INFOCUSSCRN = -2
|
||||
ST_KEEP = 0
|
||||
ST_ZERO = 1
|
||||
ST_REPLACE = 2
|
||||
ST_INCR = 3
|
||||
ST_DECR = 4
|
||||
ST_INVERT = 5
|
||||
SF_NEVER = 0
|
||||
SF_LESS = 1
|
||||
SF_EQUAL = 2
|
||||
SF_LEQUAL = 3
|
||||
SF_GREATER = 4
|
||||
SF_NOTEQUAL = 5
|
||||
SF_GEQUAL = 6
|
||||
SF_ALWAYS = 7
|
||||
SS_OFF = 0
|
||||
SS_DEPTH = 1
|
||||
PYM_FILL = 1
|
||||
PYM_POINT = 2
|
||||
PYM_LINE = 3
|
||||
PYM_HOLLOW = 4
|
||||
PYM_LINE_FAST = 5
|
||||
FG_OFF = 0
|
||||
FG_ON = 1
|
||||
FG_DEFINE = 2
|
||||
FG_VTX_EXP = 2
|
||||
FG_VTX_LIN = 3
|
||||
FG_PIX_EXP = 4
|
||||
FG_PIX_LIN = 5
|
||||
FG_VTX_EXP2 = 6
|
||||
FG_PIX_EXP2 = 7
|
||||
PM_SHIFT = 0
|
||||
PM_EXPAND = 1
|
||||
PM_C0 = 2
|
||||
PM_C1 = 3
|
||||
PM_ADD24 = 4
|
||||
PM_SIZE = 5
|
||||
PM_OFFSET = 6
|
||||
PM_STRIDE = 7
|
||||
PM_TTOB = 8
|
||||
PM_RTOL = 9
|
||||
PM_ZDATA = 10
|
||||
PM_WARP = 11
|
||||
PM_RDX = 12
|
||||
PM_RDY = 13
|
||||
PM_CDX = 14
|
||||
PM_CDY = 15
|
||||
PM_XSTART = 16
|
||||
PM_YSTART = 17
|
||||
PM_VO1 = 1000
|
||||
NAUTO = 0
|
||||
NNORMALIZE = 1
|
||||
AC_CLEAR = 0
|
||||
AC_ACCUMULATE = 1
|
||||
AC_CLEAR_ACCUMULATE = 2
|
||||
AC_RETURN = 3
|
||||
AC_MULT = 4
|
||||
AC_ADD = 5
|
||||
CP_OFF = 0
|
||||
CP_ON = 1
|
||||
CP_DEFINE = 2
|
||||
SB_RESET = 0
|
||||
SB_TRACK = 1
|
||||
SB_HOLD = 2
|
||||
RD_FREEZE = 0x00000001
|
||||
RD_ALPHAONE = 0x00000002
|
||||
RD_IGNORE_UNDERLAY = 0x00000004
|
||||
RD_IGNORE_OVERLAY = 0x00000008
|
||||
RD_IGNORE_PUP = 0x00000010
|
||||
RD_OFFSCREEN = 0x00000020
|
||||
GD_XPMAX = 0
|
||||
GD_YPMAX = 1
|
||||
GD_XMMAX = 2
|
||||
GD_YMMAX = 3
|
||||
GD_ZMIN = 4
|
||||
GD_ZMAX = 5
|
||||
GD_BITS_NORM_SNG_RED = 6
|
||||
GD_BITS_NORM_SNG_GREEN = 7
|
||||
GD_BITS_NORM_SNG_BLUE = 8
|
||||
GD_BITS_NORM_DBL_RED = 9
|
||||
GD_BITS_NORM_DBL_GREEN = 10
|
||||
GD_BITS_NORM_DBL_BLUE = 11
|
||||
GD_BITS_NORM_SNG_CMODE = 12
|
||||
GD_BITS_NORM_DBL_CMODE = 13
|
||||
GD_BITS_NORM_SNG_MMAP = 14
|
||||
GD_BITS_NORM_DBL_MMAP = 15
|
||||
GD_BITS_NORM_ZBUFFER = 16
|
||||
GD_BITS_OVER_SNG_CMODE = 17
|
||||
GD_BITS_UNDR_SNG_CMODE = 18
|
||||
GD_BITS_PUP_SNG_CMODE = 19
|
||||
GD_BITS_NORM_SNG_ALPHA = 21
|
||||
GD_BITS_NORM_DBL_ALPHA = 22
|
||||
GD_BITS_CURSOR = 23
|
||||
GD_OVERUNDER_SHARED = 24
|
||||
GD_BLEND = 25
|
||||
GD_CIFRACT = 26
|
||||
GD_CROSSHAIR_CINDEX = 27
|
||||
GD_DITHER = 28
|
||||
GD_LINESMOOTH_CMODE = 30
|
||||
GD_LINESMOOTH_RGB = 31
|
||||
GD_LOGICOP = 33
|
||||
GD_NSCRNS = 35
|
||||
GD_NURBS_ORDER = 36
|
||||
GD_NBLINKS = 37
|
||||
GD_NVERTEX_POLY = 39
|
||||
GD_PATSIZE_64 = 40
|
||||
GD_PNTSMOOTH_CMODE = 41
|
||||
GD_PNTSMOOTH_RGB = 42
|
||||
GD_PUP_TO_OVERUNDER = 43
|
||||
GD_READSOURCE = 44
|
||||
GD_READSOURCE_ZBUFFER = 48
|
||||
GD_STEREO = 50
|
||||
GD_SUBPIXEL_LINE = 51
|
||||
GD_SUBPIXEL_PNT = 52
|
||||
GD_SUBPIXEL_POLY = 53
|
||||
GD_TRIMCURVE_ORDER = 54
|
||||
GD_WSYS = 55
|
||||
GD_ZDRAW_GEOM = 57
|
||||
GD_ZDRAW_PIXELS = 58
|
||||
GD_SCRNTYPE = 61
|
||||
GD_TEXTPORT = 62
|
||||
GD_NMMAPS = 63
|
||||
GD_FRAMEGRABBER = 64
|
||||
GD_TIMERHZ = 66
|
||||
GD_DBBOX = 67
|
||||
GD_AFUNCTION = 68
|
||||
GD_ALPHA_OVERUNDER = 69
|
||||
GD_BITS_ACBUF = 70
|
||||
GD_BITS_ACBUF_HW = 71
|
||||
GD_BITS_STENCIL = 72
|
||||
GD_CLIPPLANES = 73
|
||||
GD_FOGVERTEX = 74
|
||||
GD_LIGHTING_TWOSIDE = 76
|
||||
GD_POLYMODE = 77
|
||||
GD_POLYSMOOTH = 78
|
||||
GD_SCRBOX = 79
|
||||
GD_TEXTURE = 80
|
||||
GD_FOGPIXEL = 81
|
||||
GD_TEXTURE_PERSP = 82
|
||||
GD_MUXPIPES = 83
|
||||
GD_NOLIMIT = -2
|
||||
GD_WSYS_NONE = 0
|
||||
GD_WSYS_4S = 1
|
||||
GD_SCRNTYPE_WM = 0
|
||||
GD_SCRNTYPE_NOWM = 1
|
||||
N_PIXEL_TOLERANCE = 1
|
||||
N_CULLING = 2
|
||||
N_DISPLAY = 3
|
||||
N_ERRORCHECKING = 4
|
||||
N_SUBDIVISIONS = 5
|
||||
N_S_STEPS = 6
|
||||
N_T_STEPS = 7
|
||||
N_TILES = 8
|
||||
N_TMP1 = 9
|
||||
N_TMP2 = 10
|
||||
N_TMP3 = 11
|
||||
N_TMP4 = 12
|
||||
N_TMP5 = 13
|
||||
N_TMP6 = 14
|
||||
N_FILL = 1.0
|
||||
N_OUTLINE_POLY = 2.0
|
||||
N_OUTLINE_PATCH = 5.0
|
||||
N_ISOLINE_S = 12.0
|
||||
N_ST = 0x8
|
||||
N_STW = 0xd
|
||||
N_XYZ = 0x4c
|
||||
N_XYZW = 0x51
|
||||
N_TEX = 0x88
|
||||
N_TEXW = 0x8d
|
||||
N_RGBA = 0xd0
|
||||
N_RGBAW = 0xd5
|
||||
N_P2D = 0x8
|
||||
N_P2DR = 0xd
|
||||
N_V3D = 0x4c
|
||||
N_V3DR = 0x51
|
||||
N_T2D = 0x88
|
||||
N_T2DR = 0x8d
|
||||
N_C4D = 0xd0
|
||||
N_C4DR = 0xd5
|
||||
LMNULL = 0.0
|
||||
MSINGLE = 0
|
||||
MPROJECTION = 1
|
||||
MVIEWING = 2
|
||||
MTEXTURE = 3
|
||||
MAXLIGHTS = 8
|
||||
MAXRESTRICTIONS = 4
|
||||
DEFMATERIAL = 0
|
||||
EMISSION = 1
|
||||
AMBIENT = 2
|
||||
DIFFUSE = 3
|
||||
SPECULAR = 4
|
||||
SHININESS = 5
|
||||
COLORINDEXES = 6
|
||||
ALPHA = 7
|
||||
DEFLIGHT = 100
|
||||
LCOLOR = 101
|
||||
POSITION = 102
|
||||
SPOTDIRECTION = 103
|
||||
SPOTLIGHT = 104
|
||||
DEFLMODEL = 200
|
||||
LOCALVIEWER = 201
|
||||
ATTENUATION = 202
|
||||
ATTENUATION2 = 203
|
||||
TWOSIDE = 204
|
||||
MATERIAL = 1000
|
||||
BACKMATERIAL = 1001
|
||||
LIGHT0 = 1100
|
||||
LIGHT1 = 1101
|
||||
LIGHT2 = 1102
|
||||
LIGHT3 = 1103
|
||||
LIGHT4 = 1104
|
||||
LIGHT5 = 1105
|
||||
LIGHT6 = 1106
|
||||
LIGHT7 = 1107
|
||||
LMODEL = 1200
|
||||
LMC_COLOR = 0
|
||||
LMC_EMISSION = 1
|
||||
LMC_AMBIENT = 2
|
||||
LMC_DIFFUSE = 3
|
||||
LMC_SPECULAR = 4
|
||||
LMC_AD = 5
|
||||
LMC_NULL = 6
|
||||
TX_MINFILTER = 0x100
|
||||
TX_MAGFILTER = 0x200
|
||||
TX_WRAP = 0x300
|
||||
TX_WRAP_S = 0x310
|
||||
TX_WRAP_T = 0x320
|
||||
TX_TILE = 0x400
|
||||
TX_BORDER = 0x500
|
||||
TX_NULL = 0x000
|
||||
TX_POINT = 0x110
|
||||
TX_BILINEAR = 0x220
|
||||
TX_MIPMAP = 0x120
|
||||
TX_MIPMAP_POINT = 0x121
|
||||
TX_MIPMAP_LINEAR = 0x122
|
||||
TX_MIPMAP_BILINEAR = 0x123
|
||||
TX_MIPMAP_TRILINEAR = 0x124
|
||||
TX_REPEAT = 0x301
|
||||
TX_CLAMP = 0x302
|
||||
TX_SELECT = 0x303
|
||||
TX_TEXTURE_0 = 0
|
||||
TV_MODULATE = 0x101
|
||||
TV_BLEND = 0x102
|
||||
TV_DECAL = 0x103
|
||||
TV_COLOR = 0x200
|
||||
TV_NULL = 0x000
|
||||
TV_ENV0 = 0
|
||||
TX_S = 0
|
||||
TX_T = 1
|
||||
TG_OFF = 0
|
||||
TG_ON = 1
|
||||
TG_CONTOUR = 2
|
||||
TG_LINEAR = 3
|
||||
TG_SPHEREMAP = 4
|
||||
TG_REFRACTMAP = 5
|
||||
DGLSINK = 0
|
||||
DGLLOCAL = 1
|
||||
DGLTSOCKET = 2
|
||||
DGL4DDN = 3
|
||||
PUP_CURSOR = PUP_COLOR
|
||||
FATAL = 1
|
||||
WARNING = 2
|
||||
ASK_CONT = 3
|
||||
ASK_RESTART = 4
|
||||
XMAXSCREEN = 1279
|
||||
YMAXSCREEN = 1023
|
||||
XMAXMEDIUM = 1023
|
||||
YMAXMEDIUM = 767
|
||||
XMAX170 = 645
|
||||
YMAX170 = 484
|
||||
XMAXPAL = 779
|
||||
YMAXPAL = 574
|
|
@ -0,0 +1,12 @@
|
|||
NOERROR = 0
|
||||
NOCONTEXT = -1
|
||||
NODISPLAY = -2
|
||||
NOWINDOW = -3
|
||||
NOGRAPHICS = -4
|
||||
NOTTOP = -5
|
||||
NOVISUAL = -6
|
||||
BUFSIZE = -7
|
||||
BADWINDOW = -8
|
||||
ALREADYBOUND = -100
|
||||
BINDFAILED = -101
|
||||
SETFAILED = -102
|
|
@ -0,0 +1,133 @@
|
|||
# Generated by h2py from /usr/include/netinet/in.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
|
||||
# Included from sys/endian.h
|
||||
LITTLE_ENDIAN = 1234
|
||||
BIG_ENDIAN = 4321
|
||||
PDP_ENDIAN = 3412
|
||||
BYTE_ORDER = BIG_ENDIAN
|
||||
BYTE_ORDER = LITTLE_ENDIAN
|
||||
def ntohl(x): return (x)
|
||||
|
||||
def ntohs(x): return (x)
|
||||
|
||||
def htonl(x): return (x)
|
||||
|
||||
def htons(x): return (x)
|
||||
|
||||
def htonl(x): return ntohl(x)
|
||||
|
||||
def htons(x): return ntohs(x)
|
||||
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
|
||||
# Included from standards.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
IPPROTO_IP = 0
|
||||
IPPROTO_ICMP = 1
|
||||
IPPROTO_IGMP = 2
|
||||
IPPROTO_GGP = 3
|
||||
IPPROTO_IPIP = 4
|
||||
IPPROTO_ENCAP = IPPROTO_IPIP
|
||||
IPPROTO_ST = 5
|
||||
IPPROTO_TCP = 6
|
||||
IPPROTO_EGP = 8
|
||||
IPPROTO_PUP = 12
|
||||
IPPROTO_UDP = 17
|
||||
IPPROTO_IDP = 22
|
||||
IPPROTO_TP = 29
|
||||
IPPROTO_XTP = 36
|
||||
IPPROTO_RSVP = 46
|
||||
IPPROTO_HELLO = 63
|
||||
IPPROTO_ND = 77
|
||||
IPPROTO_EON = 80
|
||||
IPPROTO_OSPF = 89
|
||||
IPPROTO_SWIPE = 94
|
||||
IPPROTO_RAW = 255
|
||||
IPPROTO_MAX = 256
|
||||
IPPORT_RESERVED = 1024
|
||||
IPPORT_MAXPORT = 65535
|
||||
def IN_CLASSA(i): return (((__int32_t)(i) & 0x80000000) == 0)
|
||||
|
||||
IN_CLASSA_NET = 0xff000000
|
||||
IN_CLASSA_NSHIFT = 24
|
||||
IN_CLASSA_HOST = 0x00ffffff
|
||||
IN_CLASSA_MAX = 128
|
||||
def IN_CLASSB(i): return (((__int32_t)(i) & 0xc0000000) == 0x80000000)
|
||||
|
||||
IN_CLASSB_NET = 0xffff0000
|
||||
IN_CLASSB_NSHIFT = 16
|
||||
IN_CLASSB_HOST = 0x0000ffff
|
||||
IN_CLASSB_MAX = 65536
|
||||
def IN_CLASSC(i): return (((__int32_t)(i) & 0xe0000000) == 0xc0000000)
|
||||
|
||||
IN_CLASSC_NET = 0xffffff00
|
||||
IN_CLASSC_NSHIFT = 8
|
||||
IN_CLASSC_HOST = 0x000000ff
|
||||
def IN_CLASSD(i): return (((__int32_t)(i) & 0xf0000000) == 0xe0000000)
|
||||
|
||||
IN_CLASSD_NET = 0xf0000000
|
||||
IN_CLASSD_NSHIFT = 28
|
||||
IN_CLASSD_HOST = 0x0fffffff
|
||||
def IN_MULTICAST(i): return IN_CLASSD(i)
|
||||
|
||||
def IN_EXPERIMENTAL(i): return (((__int32_t)(i) & 0xf0000000) == 0xf0000000)
|
||||
|
||||
def IN_BADCLASS(i): return (((__int32_t)(i) & 0xf0000000) == 0xf0000000)
|
||||
|
||||
INADDR_NONE = 0xffffffff
|
||||
IN_LOOPBACKNET = 127
|
||||
IP_OPTIONS = 1
|
||||
IP_HDRINCL = 2
|
||||
IP_TOS = 3
|
||||
IP_TTL = 4
|
||||
IP_RECVOPTS = 5
|
||||
IP_RECVRETOPTS = 6
|
||||
IP_RECVDSTADDR = 7
|
||||
IP_RETOPTS = 8
|
||||
IP_MULTICAST_IF = 20
|
||||
IP_MULTICAST_TTL = 21
|
||||
IP_MULTICAST_LOOP = 22
|
||||
IP_ADD_MEMBERSHIP = 23
|
||||
IP_DROP_MEMBERSHIP = 24
|
||||
IP_MULTICAST_VIF = 25
|
||||
IP_RSVP_VIF_ON = 26
|
||||
IP_RSVP_VIF_OFF = 27
|
||||
IP_RSVP_ON = 28
|
||||
IP_SENDSRCADDR = 36
|
||||
IP_DEFAULT_MULTICAST_TTL = 1
|
||||
IP_DEFAULT_MULTICAST_LOOP = 1
|
||||
IP_MAX_MEMBERSHIPS = 20
|
|
@ -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
|
|
@ -0,0 +1,152 @@
|
|||
# Generated by h2py from /usr/include/sys/socket.h
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
|
||||
# Included from standards.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
NC_TPI_CLTS = 1
|
||||
NC_TPI_COTS = 2
|
||||
NC_TPI_COTS_ORD = 3
|
||||
NC_TPI_RAW = 4
|
||||
SOCK_DGRAM = NC_TPI_CLTS
|
||||
SOCK_STREAM = NC_TPI_COTS
|
||||
SOCK_RAW = NC_TPI_RAW
|
||||
SOCK_RDM = 5
|
||||
SOCK_SEQPACKET = 6
|
||||
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_ORDREL = 0x0200
|
||||
SO_IMASOCKET = 0x0400
|
||||
SO_CHAMELEON = 0x1000
|
||||
SO_PASSIFNAME = 0x2000
|
||||
SO_SNDBUF = 0x1001
|
||||
SO_RCVBUF = 0x1002
|
||||
SO_SNDLOWAT = 0x1003
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_SNDTIMEO = 0x1005
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_ERROR = 0x1007
|
||||
SO_TYPE = 0x1008
|
||||
SO_PROTOTYPE = 0x1009
|
||||
SOL_SOCKET = 0xffff
|
||||
AF_UNSPEC = 0
|
||||
AF_LOCAL = 1
|
||||
AF_UNIX = AF_LOCAL
|
||||
AF_INET = 2
|
||||
AF_IMPLINK = 3
|
||||
AF_PUP = 4
|
||||
AF_CHAOS = 5
|
||||
AF_NS = 6
|
||||
AF_ISO = 7
|
||||
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_NIT = 17
|
||||
AF_802 = 18
|
||||
AF_OSI = 19
|
||||
AF_X25 = 20
|
||||
AF_OSINET = 21
|
||||
AF_GOSIP = 22
|
||||
AF_SDL = 23
|
||||
AF_INET6 = 24
|
||||
AF_LINK = 25
|
||||
AF_MAX = (AF_LINK+1)
|
||||
_SIN_ADDR_SIZE = 8
|
||||
_SIN_SA_DATA_SIZE = 14
|
||||
_MAX_SA_LEN = 20
|
||||
def OPTLEN(x): return ((((x) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
|
||||
|
||||
PF_UNSPEC = AF_UNSPEC
|
||||
PF_LOCAL = AF_LOCAL
|
||||
PF_UNIX = PF_LOCAL
|
||||
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_NIT = AF_NIT
|
||||
PF_802 = AF_802
|
||||
PF_X25 = AF_X25
|
||||
PF_OSINET = AF_OSINET
|
||||
PF_GOSIP = AF_GOSIP
|
||||
PF_INET6 = AF_INET6
|
||||
PF_MAX = AF_MAX
|
||||
NET_RT_DUMP = 1
|
||||
NET_RT_FLAGS = 2
|
||||
NET_RT_IFLIST = 3
|
||||
IPCTL_FORWARDING = 1
|
||||
IPCTL_SENDREDIRECTS = 2
|
||||
UDPCTL_CHECKSUM = 1
|
||||
SOMAXCONN = 1000
|
||||
MSG_OOB = 0x1
|
||||
MSG_PEEK = 0x2
|
||||
MSG_DONTROUTE = 0x4
|
||||
MSG_EOR = 0x8
|
||||
MSG_TRUNC = 0x10
|
||||
MSG_CTRUNC = 0x20
|
||||
MSG_WAITALL = 0x40
|
||||
MSG_DONTWAIT = 0x80
|
||||
MSG_BTAG = 0x40
|
||||
MSG_ETAG = 0x80
|
||||
MSG_MAXIOVLEN = 16
|
||||
_ALIGNBYTES = 7
|
||||
def _ALIGN(p): return (((u_int)(p) + _ALIGNBYTES) & ~_ALIGNBYTES)
|
||||
|
||||
SCM_RIGHTS = 0x01
|
|
@ -0,0 +1,120 @@
|
|||
NTSC_XMAX = 640
|
||||
NTSC_YMAX = 480
|
||||
PAL_XMAX = 768
|
||||
PAL_YMAX = 576
|
||||
BLANKING_BUFFER_SIZE = 2
|
||||
|
||||
MAX_SOURCES = 2
|
||||
|
||||
# mode parameter for Bind calls
|
||||
IN_OFF = 0 # No Video
|
||||
IN_OVER = 1 # Video over graphics
|
||||
IN_UNDER = 2 # Video under graphics
|
||||
IN_REPLACE = 3 # Video replaces entire win
|
||||
|
||||
# mode parameters for LoadMap calls. Specifies buffer, always 256 entries
|
||||
INPUT_COLORMAP = 0 # tuples of 8-bit RGB
|
||||
CHROMA_KEY_MAP = 1 # tuples of 8-bit RGB
|
||||
COLOR_SPACE_MAP = 2 # tuples of 8-bit RGB
|
||||
GAMMA_MAP = 3 # tuples of 24-bit red values
|
||||
|
||||
# mode parameters for UseExclusive calls
|
||||
INPUT = 0
|
||||
OUTPUT = 1
|
||||
IN_OUT = 2
|
||||
|
||||
# Format constants for the capture routines
|
||||
RGB8_FRAMES = 0 # noninterleaved 8 bit 3:2:3 RBG fields
|
||||
RGB32_FRAMES = 1 # 32-bit 8:8:8 RGB frames
|
||||
YUV411_FRAMES = 2 # interleaved, 8:2:2 YUV format
|
||||
YUV411_FRAMES_AND_BLANKING_BUFFER = 3
|
||||
|
||||
#
|
||||
# sv.SetParam is passed variable length argument lists,
|
||||
# consisting of <name, value> pairs. The following
|
||||
# constants identify argument names.
|
||||
#
|
||||
_NAME_BASE = 1000
|
||||
SOURCE = (_NAME_BASE + 0)
|
||||
SOURCE1 = 0
|
||||
SOURCE2 = 1
|
||||
SOURCE3 = 2
|
||||
COLOR = (_NAME_BASE + 1)
|
||||
DEFAULT_COLOR = 0
|
||||
USER_COLOR = 1
|
||||
MONO = 2
|
||||
OUTPUTMODE = (_NAME_BASE + 2)
|
||||
LIVE_OUTPUT = 0
|
||||
STILL24_OUT = 1
|
||||
FREEZE = (_NAME_BASE + 3)
|
||||
DITHER = (_NAME_BASE + 4)
|
||||
OUTPUT_FILTER = (_NAME_BASE + 5)
|
||||
HUE = (_NAME_BASE + 6)
|
||||
GENLOCK = (_NAME_BASE + 7)
|
||||
GENLOCK_OFF = 0
|
||||
GENLOCK_ON = 1
|
||||
GENLOCK_HOUSE = 2
|
||||
BROADCAST = (_NAME_BASE + 8)
|
||||
NTSC = 0
|
||||
PAL = 1
|
||||
VIDEO_MODE = (_NAME_BASE + 9)
|
||||
COMP = 0
|
||||
SVIDEO = 1
|
||||
INPUT_BYPASS = (_NAME_BASE + 10)
|
||||
FIELDDROP = (_NAME_BASE + 11)
|
||||
SLAVE = (_NAME_BASE + 12)
|
||||
APERTURE_FACTOR = (_NAME_BASE + 13)
|
||||
AFACTOR_0 = 0
|
||||
AFACTOR_QTR = 1
|
||||
AFACTOR_HLF = 2
|
||||
AFACTOR_ONE = 3
|
||||
CORING = (_NAME_BASE + 14)
|
||||
COR_OFF = 0
|
||||
COR_1LSB = 1
|
||||
COR_2LSB = 2
|
||||
COR_3LSB = 3
|
||||
APERTURE_BANDPASS = (_NAME_BASE + 15)
|
||||
ABAND_F0 = 0
|
||||
ABAND_F1 = 1
|
||||
ABAND_F2 = 2
|
||||
ABAND_F3 = 3
|
||||
PREFILTER = (_NAME_BASE + 16)
|
||||
CHROMA_TRAP = (_NAME_BASE + 17)
|
||||
CK_THRESHOLD = (_NAME_BASE + 18)
|
||||
PAL_SENSITIVITY = (_NAME_BASE + 19)
|
||||
GAIN_CONTROL = (_NAME_BASE + 20)
|
||||
GAIN_SLOW = 0
|
||||
GAIN_MEDIUM = 1
|
||||
GAIN_FAST = 2
|
||||
GAIN_FROZEN = 3
|
||||
AUTO_CKILL = (_NAME_BASE + 21)
|
||||
VTR_MODE = (_NAME_BASE + 22)
|
||||
VTR_INPUT = 0
|
||||
CAMERA_INPUT = 1
|
||||
LUMA_DELAY = (_NAME_BASE + 23)
|
||||
VNOISE = (_NAME_BASE + 24)
|
||||
VNOISE_NORMAL = 0
|
||||
VNOISE_SEARCH = 1
|
||||
VNOISE_AUTO = 2
|
||||
VNOISE_BYPASS = 3
|
||||
CHCV_PAL = (_NAME_BASE + 25)
|
||||
CHCV_NTSC = (_NAME_BASE + 26)
|
||||
CCIR_LEVELS = (_NAME_BASE + 27)
|
||||
STD_CHROMA = (_NAME_BASE + 28)
|
||||
DENC_VTBYPASS = (_NAME_BASE + 29)
|
||||
FAST_TIMECONSTANT = (_NAME_BASE + 30)
|
||||
GENLOCK_DELAY = (_NAME_BASE + 31)
|
||||
PHASE_SYNC = (_NAME_BASE + 32)
|
||||
VIDEO_OUTPUT = (_NAME_BASE + 33)
|
||||
CHROMA_PHASEOUT = (_NAME_BASE + 34)
|
||||
CHROMA_CENTER = (_NAME_BASE + 35)
|
||||
YUV_TO_RGB_INVERT = (_NAME_BASE + 36)
|
||||
SOURCE1_BROADCAST = (_NAME_BASE + 37)
|
||||
SOURCE1_MODE = (_NAME_BASE + 38)
|
||||
SOURCE2_BROADCAST = (_NAME_BASE + 39)
|
||||
SOURCE2_MODE = (_NAME_BASE + 40)
|
||||
SOURCE3_BROADCAST = (_NAME_BASE + 41)
|
||||
SOURCE3_MODE = (_NAME_BASE + 42)
|
||||
SIGNAL_STD = (_NAME_BASE + 43)
|
||||
NOSIGNAL = 2
|
||||
SIGNAL_COLOR = (_NAME_BASE + 44)
|
|
@ -0,0 +1,676 @@
|
|||
# Generated by h2py from /usr/include/sys/termios.h
|
||||
|
||||
# Included from standards.h
|
||||
|
||||
# Included from sys/ttydev.h
|
||||
__NEW_INVALID_BAUD = 1800
|
||||
__OLD_B0 = 0
|
||||
__OLD_B50 = 0000001
|
||||
__OLD_B75 = 0000002
|
||||
__OLD_B110 = 0000003
|
||||
__OLD_B134 = 0000004
|
||||
__OLD_B150 = 0000005
|
||||
__OLD_B200 = 0000006
|
||||
__OLD_B300 = 0000007
|
||||
__OLD_B600 = 0000010
|
||||
__OLD_B1200 = 0000011
|
||||
__OLD_B1800 = 0000012
|
||||
__OLD_B2400 = 0000013
|
||||
__OLD_B4800 = 0000014
|
||||
__OLD_B9600 = 0000015
|
||||
__OLD_B19200 = 0000016
|
||||
__OLD_EXTA = 0000016
|
||||
__OLD_B38400 = 0000017
|
||||
__OLD_EXTB = 0000017
|
||||
__OLD_INVALID_BAUD = __OLD_B1800
|
||||
B0 = 0
|
||||
B50 = 50
|
||||
B75 = 75
|
||||
B110 = 110
|
||||
B134 = 134
|
||||
B150 = 150
|
||||
B200 = 200
|
||||
B300 = 300
|
||||
B600 = 600
|
||||
B1200 = 1200
|
||||
B1800 = 1800
|
||||
B2400 = 2400
|
||||
B4800 = 4800
|
||||
B9600 = 9600
|
||||
B19200 = 19200
|
||||
EXTA = 19200
|
||||
B38400 = 38400
|
||||
EXTB = 38400
|
||||
B57600 = 57600
|
||||
B76800 = 76800
|
||||
B115200 = 115200
|
||||
__INVALID_BAUD = 1800
|
||||
B0 = __OLD_B0
|
||||
B50 = __OLD_B50
|
||||
B75 = __OLD_B75
|
||||
B110 = __OLD_B110
|
||||
B134 = __OLD_B134
|
||||
B150 = __OLD_B150
|
||||
B200 = __OLD_B200
|
||||
B300 = __OLD_B300
|
||||
B600 = __OLD_B600
|
||||
B1200 = __OLD_B1200
|
||||
B1800 = __OLD_B1800
|
||||
B2400 = __OLD_B2400
|
||||
B4800 = __OLD_B4800
|
||||
B9600 = __OLD_B9600
|
||||
B19200 = __OLD_B19200
|
||||
EXTA = __OLD_B19200
|
||||
B38400 = __OLD_B38400
|
||||
EXTB = __OLD_B38400
|
||||
__INVALID_BAUD = __OLD_INVALID_BAUD
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
_POSIX_VDISABLE = 0
|
||||
def CTRL(c): return ((c)&037)
|
||||
|
||||
IBSHIFT = 16
|
||||
NCC = 8
|
||||
NCCS = 23
|
||||
__NEW_MAX_BAUD = 500000
|
||||
VINTR = 0
|
||||
VQUIT = 1
|
||||
VERASE = 2
|
||||
VKILL = 3
|
||||
VEOF = 4
|
||||
VEOL = 5
|
||||
VEOL2 = 6
|
||||
VMIN = 4
|
||||
VTIME = 5
|
||||
VSWTCH = 7
|
||||
VSTART = 8
|
||||
VSTOP = 9
|
||||
VSUSP = 10
|
||||
VDSUSP = 11
|
||||
VREPRINT = 12
|
||||
VDISCARD = 13
|
||||
VWERASE = 14
|
||||
VLNEXT = 15
|
||||
VRPRNT = VREPRINT
|
||||
VFLUSHO = VDISCARD
|
||||
VCEOF = NCC
|
||||
VCEOL = (NCC + 1)
|
||||
CNUL = 0
|
||||
CDEL = 0377
|
||||
CESC = ord('\\')
|
||||
CINTR = 0177
|
||||
CQUIT = 034
|
||||
CERASE = CTRL(ord('H'))
|
||||
CKILL = CTRL(ord('U'))
|
||||
CEOL = 0
|
||||
CEOL2 = 0
|
||||
CEOF = CTRL(ord('d'))
|
||||
CEOT = CEOF
|
||||
CSTART = CTRL(ord('q'))
|
||||
CSTOP = CTRL(ord('s'))
|
||||
CSWTCH = CTRL(ord('z'))
|
||||
CNSWTCH = 0
|
||||
CSUSP = CSWTCH
|
||||
CLNEXT = CTRL(ord('v'))
|
||||
CWERASE = CTRL(ord('w'))
|
||||
CFLUSHO = CTRL(ord('o'))
|
||||
CFLUSH = CFLUSHO
|
||||
CRPRNT = CTRL(ord('r'))
|
||||
CDSUSP = CTRL(ord('y'))
|
||||
CBRK = 0377
|
||||
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
|
||||
IMAXBEL = 0020000
|
||||
IBLKMD = 0040000
|
||||
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
|
||||
XTABS = 0014000
|
||||
BSDLY = 0020000
|
||||
BS0 = 0
|
||||
BS1 = 0020000
|
||||
VTDLY = 0040000
|
||||
VT0 = 0
|
||||
VT1 = 0040000
|
||||
FFDLY = 0100000
|
||||
FF0 = 0
|
||||
FF1 = 0100000
|
||||
PAGEOUT = 0200000
|
||||
WRAP = 0400000
|
||||
CBAUD = 000000017
|
||||
CSIZE = 000000060
|
||||
CS5 = 0
|
||||
CS6 = 000000020
|
||||
CS7 = 000000040
|
||||
CS8 = 000000060
|
||||
CSTOPB = 000000100
|
||||
CREAD = 000000200
|
||||
PARENB = 000000400
|
||||
PARODD = 000001000
|
||||
HUPCL = 000002000
|
||||
CLOCAL = 000004000
|
||||
RCV1EN = 000010000
|
||||
XMT1EN = 000020000
|
||||
LOBLK = 000040000
|
||||
XCLUDE = 000100000
|
||||
CIBAUD = 003600000
|
||||
PAREXT = 004000000
|
||||
CNEW_RTSCTS = 010000000
|
||||
ISIG = 0000001
|
||||
ICANON = 0000002
|
||||
XCASE = 0000004
|
||||
ECHO = 0000010
|
||||
ECHOE = 0000020
|
||||
ECHOK = 0000040
|
||||
ECHONL = 0000100
|
||||
NOFLSH = 0000200
|
||||
IEXTEN = 0000400
|
||||
ITOSTOP = 0100000
|
||||
TOSTOP = ITOSTOP
|
||||
ECHOCTL = 0001000
|
||||
ECHOPRT = 0002000
|
||||
ECHOKE = 0004000
|
||||
DEFECHO = 0010000
|
||||
FLUSHO = 0020000
|
||||
PENDIN = 0040000
|
||||
TIOC = (ord('T')<<8)
|
||||
__NEW_TCGETA = (TIOC|201)
|
||||
__NEW_TCSETA = (TIOC|202)
|
||||
__NEW_TCSETAW = (TIOC|203)
|
||||
__NEW_TCSETAF = (TIOC|204)
|
||||
__OLD_TCGETA = (TIOC|1)
|
||||
__OLD_TCSETA = (TIOC|2)
|
||||
__OLD_TCSETAW = (TIOC|3)
|
||||
__OLD_TCSETAF = (TIOC|4)
|
||||
TCGETA = __NEW_TCGETA
|
||||
TCSETA = __NEW_TCSETA
|
||||
TCSETAW = __NEW_TCSETAW
|
||||
TCSETAF = __NEW_TCSETAF
|
||||
TCGETA = __OLD_TCGETA
|
||||
TCSETA = __OLD_TCSETA
|
||||
TCSETAW = __OLD_TCSETAW
|
||||
TCSETAF = __OLD_TCSETAF
|
||||
TCSBRK = (TIOC|5)
|
||||
TCXONC = (TIOC|6)
|
||||
TCFLSH = (TIOC|7)
|
||||
|
||||
# Included from sys/ioctl.h
|
||||
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)
|
||||
|
||||
# Included from sys/ioccom.h
|
||||
IOCPARM_MASK = 0xff
|
||||
IOC_VOID = 0x20000000
|
||||
IOC_OUT = 0x40000000
|
||||
IOC_IN = 0x80000000
|
||||
IOC_INOUT = (IOC_IN|IOC_OUT)
|
||||
|
||||
# Included from net/soioctl.h
|
||||
|
||||
# Included from sys/termio.h
|
||||
|
||||
# Included from sys/termios.h
|
||||
_POSIX_VDISABLE = 0
|
||||
def CTRL(c): return ((c)&037)
|
||||
|
||||
IBSHIFT = 16
|
||||
NCC = 8
|
||||
NCCS = 23
|
||||
__NEW_MAX_BAUD = 500000
|
||||
VINTR = 0
|
||||
VQUIT = 1
|
||||
VERASE = 2
|
||||
VKILL = 3
|
||||
VEOF = 4
|
||||
VEOL = 5
|
||||
VEOL2 = 6
|
||||
VMIN = 4
|
||||
VTIME = 5
|
||||
VSWTCH = 7
|
||||
VSTART = 8
|
||||
VSTOP = 9
|
||||
VSUSP = 10
|
||||
VDSUSP = 11
|
||||
VREPRINT = 12
|
||||
VDISCARD = 13
|
||||
VWERASE = 14
|
||||
VLNEXT = 15
|
||||
VRPRNT = VREPRINT
|
||||
VFLUSHO = VDISCARD
|
||||
VCEOF = NCC
|
||||
VCEOL = (NCC + 1)
|
||||
CNUL = 0
|
||||
CDEL = 0377
|
||||
CESC = ord('\\')
|
||||
CINTR = 0177
|
||||
CQUIT = 034
|
||||
CERASE = CTRL(ord('H'))
|
||||
CKILL = CTRL(ord('U'))
|
||||
CEOL = 0
|
||||
CEOL2 = 0
|
||||
CEOF = CTRL(ord('d'))
|
||||
CEOT = CEOF
|
||||
CSTART = CTRL(ord('q'))
|
||||
CSTOP = CTRL(ord('s'))
|
||||
CSWTCH = CTRL(ord('z'))
|
||||
CNSWTCH = 0
|
||||
CSUSP = CSWTCH
|
||||
CLNEXT = CTRL(ord('v'))
|
||||
CWERASE = CTRL(ord('w'))
|
||||
CFLUSHO = CTRL(ord('o'))
|
||||
CFLUSH = CFLUSHO
|
||||
CRPRNT = CTRL(ord('r'))
|
||||
CDSUSP = CTRL(ord('y'))
|
||||
CBRK = 0377
|
||||
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
|
||||
IMAXBEL = 0020000
|
||||
IBLKMD = 0040000
|
||||
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
|
||||
XTABS = 0014000
|
||||
BSDLY = 0020000
|
||||
BS0 = 0
|
||||
BS1 = 0020000
|
||||
VTDLY = 0040000
|
||||
VT0 = 0
|
||||
VT1 = 0040000
|
||||
FFDLY = 0100000
|
||||
FF0 = 0
|
||||
FF1 = 0100000
|
||||
PAGEOUT = 0200000
|
||||
WRAP = 0400000
|
||||
CBAUD = 000000017
|
||||
CSIZE = 000000060
|
||||
CS5 = 0
|
||||
CS6 = 000000020
|
||||
CS7 = 000000040
|
||||
CS8 = 000000060
|
||||
CSTOPB = 000000100
|
||||
CREAD = 000000200
|
||||
PARENB = 000000400
|
||||
PARODD = 000001000
|
||||
HUPCL = 000002000
|
||||
CLOCAL = 000004000
|
||||
RCV1EN = 000010000
|
||||
XMT1EN = 000020000
|
||||
LOBLK = 000040000
|
||||
XCLUDE = 000100000
|
||||
CIBAUD = 003600000
|
||||
PAREXT = 004000000
|
||||
CNEW_RTSCTS = 010000000
|
||||
ISIG = 0000001
|
||||
ICANON = 0000002
|
||||
XCASE = 0000004
|
||||
ECHO = 0000010
|
||||
ECHOE = 0000020
|
||||
ECHOK = 0000040
|
||||
ECHONL = 0000100
|
||||
NOFLSH = 0000200
|
||||
IEXTEN = 0000400
|
||||
ITOSTOP = 0100000
|
||||
TOSTOP = ITOSTOP
|
||||
ECHOCTL = 0001000
|
||||
ECHOPRT = 0002000
|
||||
ECHOKE = 0004000
|
||||
DEFECHO = 0010000
|
||||
FLUSHO = 0020000
|
||||
PENDIN = 0040000
|
||||
TIOC = (ord('T')<<8)
|
||||
__NEW_TCGETA = (TIOC|201)
|
||||
__NEW_TCSETA = (TIOC|202)
|
||||
__NEW_TCSETAW = (TIOC|203)
|
||||
__NEW_TCSETAF = (TIOC|204)
|
||||
__OLD_TCGETA = (TIOC|1)
|
||||
__OLD_TCSETA = (TIOC|2)
|
||||
__OLD_TCSETAW = (TIOC|3)
|
||||
__OLD_TCSETAF = (TIOC|4)
|
||||
TCGETA = __NEW_TCGETA
|
||||
TCSETA = __NEW_TCSETA
|
||||
TCSETAW = __NEW_TCSETAW
|
||||
TCSETAF = __NEW_TCSETAF
|
||||
TCGETA = __OLD_TCGETA
|
||||
TCSETA = __OLD_TCSETA
|
||||
TCSETAW = __OLD_TCSETAW
|
||||
TCSETAF = __OLD_TCSETAF
|
||||
TCSBRK = (TIOC|5)
|
||||
TCXONC = (TIOC|6)
|
||||
TCFLSH = (TIOC|7)
|
||||
LDISC0 = 0
|
||||
LDISC1 = 1
|
||||
NTTYDISC = LDISC1
|
||||
TIOCFLUSH = (TIOC|12)
|
||||
TCSETLABEL = (TIOC|31)
|
||||
TCDSET = (TIOC|32)
|
||||
TCBLKMD = (TIOC|33)
|
||||
TIOCPKT = (TIOC|112)
|
||||
TIOCPKT_DATA = 0x00
|
||||
TIOCPKT_FLUSHREAD = 0x01
|
||||
TIOCPKT_FLUSHWRITE = 0x02
|
||||
TIOCPKT_NOSTOP = 0x10
|
||||
TIOCPKT_DOSTOP = 0x20
|
||||
TIOCPKT_IOCTL = 0x40
|
||||
TIOCNOTTY = (TIOC|113)
|
||||
TIOCSTI = (TIOC|114)
|
||||
TFIOC = (ord('F')<<8)
|
||||
oFIONREAD = (TFIOC|127)
|
||||
TO_STOP = LOBLK
|
||||
IOCTYPE = 0xff00
|
||||
__NEW_TCGETS = (TIOC|213)
|
||||
__NEW_TCSETS = (TIOC|214)
|
||||
__NEW_TCSETSW = (TIOC|215)
|
||||
__NEW_TCSETSF = (TIOC|216)
|
||||
__OLD_TCGETS = (TIOC|13)
|
||||
__OLD_TCSETS = (TIOC|14)
|
||||
__OLD_TCSETSW = (TIOC|15)
|
||||
__OLD_TCSETSF = (TIOC|16)
|
||||
TCGETS = __NEW_TCGETS
|
||||
TCSETS = __NEW_TCSETS
|
||||
TCSETSW = __NEW_TCSETSW
|
||||
TCSETSF = __NEW_TCSETSF
|
||||
TCGETS = __OLD_TCGETS
|
||||
TCSETS = __OLD_TCSETS
|
||||
TCSETSW = __OLD_TCSETSW
|
||||
TCSETSF = __OLD_TCSETSF
|
||||
TCSANOW = ((ord('T')<<8)|14)
|
||||
TCSADRAIN = ((ord('T')<<8)|15)
|
||||
TCSAFLUSH = ((ord('T')<<8)|16)
|
||||
TCIFLUSH = 0
|
||||
TCOFLUSH = 1
|
||||
TCIOFLUSH = 2
|
||||
TCOOFF = 0
|
||||
TCOON = 1
|
||||
TCIOFF = 2
|
||||
TCION = 3
|
||||
tIOC = (ord('t')<<8)
|
||||
TIOCGETD = (tIOC|0)
|
||||
TIOCSETD = (tIOC|1)
|
||||
TIOCHPCL = (tIOC|2)
|
||||
TIOCGETP = (tIOC|8)
|
||||
TIOCSETP = (tIOC|9)
|
||||
TIOCSETN = (tIOC|10)
|
||||
TIOCEXCL = (tIOC|13)
|
||||
TIOCNXCL = (tIOC|14)
|
||||
TIOCSETC = (tIOC|17)
|
||||
TIOCGETC = (tIOC|18)
|
||||
TIOCLBIS = (tIOC|127)
|
||||
TIOCLBIC = (tIOC|126)
|
||||
TIOCLSET = (tIOC|125)
|
||||
TIOCLGET = (tIOC|124)
|
||||
TIOCSBRK = (tIOC|123)
|
||||
TIOCCBRK = (tIOC|122)
|
||||
TIOCSDTR = (tIOC|121)
|
||||
TIOCCDTR = (tIOC|120)
|
||||
TIOCSLTC = (tIOC|117)
|
||||
TIOCGLTC = (tIOC|116)
|
||||
TIOCOUTQ = (tIOC|115)
|
||||
TIOCSTOP = (tIOC|111)
|
||||
TIOCSTART = (tIOC|110)
|
||||
TIOCGSID = (tIOC|22)
|
||||
TIOCSSID = (tIOC|24)
|
||||
TIOCMSET = (tIOC|26)
|
||||
TIOCMBIS = (tIOC|27)
|
||||
TIOCMBIC = (tIOC|28)
|
||||
TIOCMGET = (tIOC|29)
|
||||
TIOCM_LE = 0001
|
||||
TIOCM_DTR = 0002
|
||||
TIOCM_RTS = 0004
|
||||
TIOCM_ST = 0010
|
||||
TIOCM_SR = 0020
|
||||
TIOCM_CTS = 0040
|
||||
TIOCM_CAR = 0100
|
||||
TIOCM_CD = TIOCM_CAR
|
||||
TIOCM_RNG = 0200
|
||||
TIOCM_RI = TIOCM_RNG
|
||||
TIOCM_DSR = 0400
|
||||
TIOCREMOTE = (tIOC|30)
|
||||
TIOCSIGNAL = (tIOC|31)
|
||||
ISPTM = ((ord('P')<<8)|1)
|
||||
UNLKPT = ((ord('P')<<8)|2)
|
||||
SVR4SOPEN = ((ord('P')<<8)|100)
|
||||
LDIOC = (ord('D')<<8)
|
||||
LDOPEN = (LDIOC|0)
|
||||
LDCLOSE = (LDIOC|1)
|
||||
LDCHG = (LDIOC|2)
|
||||
LDGETT = (LDIOC|8)
|
||||
LDSETT = (LDIOC|9)
|
||||
LDSMAP = (LDIOC|10)
|
||||
LDGMAP = (LDIOC|11)
|
||||
LDNMAP = (LDIOC|12)
|
||||
DIOC = (ord('d')<<8)
|
||||
DIOCGETP = (DIOC|8)
|
||||
DIOCSETP = (DIOC|9)
|
||||
FIORDCHK = ((ord('f')<<8)|3)
|
||||
CLNEXT = CTRL(ord('v'))
|
||||
CWERASE = CTRL(ord('w'))
|
||||
CFLUSHO = CTRL(ord('o'))
|
||||
CFLUSH = CFLUSHO
|
||||
CRPRNT = CTRL(ord('r'))
|
||||
CDSUSP = CTRL(ord('y'))
|
||||
__OLD_SSPEED = __OLD_B9600
|
||||
SSPEED = B9600
|
||||
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
|
||||
TIOCFLUSH = (TIOC|12)
|
||||
TCSETLABEL = (TIOC|31)
|
||||
TCDSET = (TIOC|32)
|
||||
TCBLKMD = (TIOC|33)
|
||||
TIOCPKT = (TIOC|112)
|
||||
TIOCPKT_DATA = 0x00
|
||||
TIOCPKT_FLUSHREAD = 0x01
|
||||
TIOCPKT_FLUSHWRITE = 0x02
|
||||
TIOCPKT_NOSTOP = 0x10
|
||||
TIOCPKT_DOSTOP = 0x20
|
||||
TIOCPKT_IOCTL = 0x40
|
||||
TIOCNOTTY = (TIOC|113)
|
||||
TIOCSTI = (TIOC|114)
|
||||
TFIOC = (ord('F')<<8)
|
||||
oFIONREAD = (TFIOC|127)
|
||||
TO_STOP = LOBLK
|
||||
IOCTYPE = 0xff00
|
||||
__NEW_TCGETS = (TIOC|213)
|
||||
__NEW_TCSETS = (TIOC|214)
|
||||
__NEW_TCSETSW = (TIOC|215)
|
||||
__NEW_TCSETSF = (TIOC|216)
|
||||
__OLD_TCGETS = (TIOC|13)
|
||||
__OLD_TCSETS = (TIOC|14)
|
||||
__OLD_TCSETSW = (TIOC|15)
|
||||
__OLD_TCSETSF = (TIOC|16)
|
||||
TCGETS = __NEW_TCGETS
|
||||
TCSETS = __NEW_TCSETS
|
||||
TCSETSW = __NEW_TCSETSW
|
||||
TCSETSF = __NEW_TCSETSF
|
||||
TCGETS = __OLD_TCGETS
|
||||
TCSETS = __OLD_TCSETS
|
||||
TCSETSW = __OLD_TCSETSW
|
||||
TCSETSF = __OLD_TCSETSF
|
||||
TCSANOW = ((ord('T')<<8)|14)
|
||||
TCSADRAIN = ((ord('T')<<8)|15)
|
||||
TCSAFLUSH = ((ord('T')<<8)|16)
|
||||
TCIFLUSH = 0
|
||||
TCOFLUSH = 1
|
||||
TCIOFLUSH = 2
|
||||
TCOOFF = 0
|
||||
TCOON = 1
|
||||
TCIOFF = 2
|
||||
TCION = 3
|
||||
tIOC = (ord('t')<<8)
|
||||
TIOCGETD = (tIOC|0)
|
||||
TIOCSETD = (tIOC|1)
|
||||
TIOCHPCL = (tIOC|2)
|
||||
TIOCGETP = (tIOC|8)
|
||||
TIOCSETP = (tIOC|9)
|
||||
TIOCSETN = (tIOC|10)
|
||||
TIOCEXCL = (tIOC|13)
|
||||
TIOCNXCL = (tIOC|14)
|
||||
TIOCSETC = (tIOC|17)
|
||||
TIOCGETC = (tIOC|18)
|
||||
TIOCLBIS = (tIOC|127)
|
||||
TIOCLBIC = (tIOC|126)
|
||||
TIOCLSET = (tIOC|125)
|
||||
TIOCLGET = (tIOC|124)
|
||||
TIOCSBRK = (tIOC|123)
|
||||
TIOCCBRK = (tIOC|122)
|
||||
TIOCSDTR = (tIOC|121)
|
||||
TIOCCDTR = (tIOC|120)
|
||||
TIOCSLTC = (tIOC|117)
|
||||
TIOCGLTC = (tIOC|116)
|
||||
TIOCOUTQ = (tIOC|115)
|
||||
TIOCSTOP = (tIOC|111)
|
||||
TIOCSTART = (tIOC|110)
|
||||
TIOCGSID = (tIOC|22)
|
||||
TIOCSSID = (tIOC|24)
|
||||
TIOCMSET = (tIOC|26)
|
||||
TIOCMBIS = (tIOC|27)
|
||||
TIOCMBIC = (tIOC|28)
|
||||
TIOCMGET = (tIOC|29)
|
||||
TIOCM_LE = 0001
|
||||
TIOCM_DTR = 0002
|
||||
TIOCM_RTS = 0004
|
||||
TIOCM_ST = 0010
|
||||
TIOCM_SR = 0020
|
||||
TIOCM_CTS = 0040
|
||||
TIOCM_CAR = 0100
|
||||
TIOCM_CD = TIOCM_CAR
|
||||
TIOCM_RNG = 0200
|
||||
TIOCM_RI = TIOCM_RNG
|
||||
TIOCM_DSR = 0400
|
||||
TIOCREMOTE = (tIOC|30)
|
||||
TIOCSIGNAL = (tIOC|31)
|
||||
ISPTM = ((ord('P')<<8)|1)
|
||||
UNLKPT = ((ord('P')<<8)|2)
|
||||
SVR4SOPEN = ((ord('P')<<8)|100)
|
||||
LDIOC = (ord('D')<<8)
|
||||
LDOPEN = (LDIOC|0)
|
||||
LDCLOSE = (LDIOC|1)
|
||||
LDCHG = (LDIOC|2)
|
||||
LDGETT = (LDIOC|8)
|
||||
LDSETT = (LDIOC|9)
|
||||
LDSMAP = (LDIOC|10)
|
||||
LDGMAP = (LDIOC|11)
|
||||
LDNMAP = (LDIOC|12)
|
||||
DIOC = (ord('d')<<8)
|
||||
DIOCGETP = (DIOC|8)
|
||||
DIOCSETP = (DIOC|9)
|
||||
FIORDCHK = ((ord('f')<<8)|3)
|
|
@ -0,0 +1,335 @@
|
|||
# Generated by h2py from /usr/include/sys/wait.h
|
||||
|
||||
# Included from standards.h
|
||||
def _W_INT(i): return (i)
|
||||
|
||||
WUNTRACED = 0004
|
||||
WNOHANG = 0100
|
||||
_WSTOPPED = 0177
|
||||
def WIFEXITED(stat): return ((_W_INT(stat)&0377)==0)
|
||||
|
||||
def WEXITSTATUS(stat): return ((_W_INT(stat)>>8)&0377)
|
||||
|
||||
def WTERMSIG(stat): return (_W_INT(stat)&0177)
|
||||
|
||||
def WSTOPSIG(stat): return ((_W_INT(stat)>>8)&0377)
|
||||
|
||||
WEXITED = 0001
|
||||
WTRAPPED = 0002
|
||||
WSTOPPED = 0004
|
||||
WCONTINUED = 0010
|
||||
WNOWAIT = 0200
|
||||
WOPTMASK = (WEXITED|WTRAPPED|WSTOPPED|WCONTINUED|WNOHANG|WNOWAIT)
|
||||
WSTOPFLG = 0177
|
||||
WCONTFLG = 0177777
|
||||
WCOREFLAG = 0200
|
||||
WSIGMASK = 0177
|
||||
def WWORD(stat): return (_W_INT(stat)&0177777)
|
||||
|
||||
def WIFCONTINUED(stat): return (WWORD(stat)==WCONTFLG)
|
||||
|
||||
def WCOREDUMP(stat): return (_W_INT(stat) & WCOREFLAG)
|
||||
|
||||
|
||||
# Included from sys/types.h
|
||||
|
||||
# Included from sgidefs.h
|
||||
_MIPS_ISA_MIPS1 = 1
|
||||
_MIPS_ISA_MIPS2 = 2
|
||||
_MIPS_ISA_MIPS3 = 3
|
||||
_MIPS_ISA_MIPS4 = 4
|
||||
_MIPS_SIM_ABI32 = 1
|
||||
_MIPS_SIM_NABI32 = 2
|
||||
_MIPS_SIM_ABI64 = 3
|
||||
P_MYID = (-1)
|
||||
P_MYHOSTID = (-1)
|
||||
|
||||
# Included from sys/bsd_types.h
|
||||
|
||||
# Included from sys/mkdev.h
|
||||
ONBITSMAJOR = 7
|
||||
ONBITSMINOR = 8
|
||||
OMAXMAJ = 0x7f
|
||||
OMAXMIN = 0xff
|
||||
NBITSMAJOR = 14
|
||||
NBITSMINOR = 18
|
||||
MAXMAJ = 0x1ff
|
||||
MAXMIN = 0x3ffff
|
||||
OLDDEV = 0
|
||||
NEWDEV = 1
|
||||
MKDEV_VER = NEWDEV
|
||||
def major(dev): return __major(MKDEV_VER, dev)
|
||||
|
||||
def minor(dev): return __minor(MKDEV_VER, dev)
|
||||
|
||||
|
||||
# Included from sys/select.h
|
||||
FD_SETSIZE = 1024
|
||||
__NBBY = 8
|
||||
|
||||
# Included from string.h
|
||||
NULL = 0L
|
||||
NBBY = 8
|
||||
|
||||
# Included from sys/procset.h
|
||||
P_INITPID = 1
|
||||
P_INITUID = 0
|
||||
P_INITPGID = 0
|
||||
|
||||
# Included from sys/signal.h
|
||||
SIGHUP = 1
|
||||
SIGINT = 2
|
||||
SIGQUIT = 3
|
||||
SIGILL = 4
|
||||
SIGTRAP = 5
|
||||
SIGIOT = 6
|
||||
SIGABRT = 6
|
||||
SIGEMT = 7
|
||||
SIGFPE = 8
|
||||
SIGKILL = 9
|
||||
SIGBUS = 10
|
||||
SIGSEGV = 11
|
||||
SIGSYS = 12
|
||||
SIGPIPE = 13
|
||||
SIGALRM = 14
|
||||
SIGTERM = 15
|
||||
SIGUSR1 = 16
|
||||
SIGUSR2 = 17
|
||||
SIGCLD = 18
|
||||
SIGCHLD = 18
|
||||
SIGPWR = 19
|
||||
SIGWINCH = 20
|
||||
SIGURG = 21
|
||||
SIGPOLL = 22
|
||||
SIGIO = 22
|
||||
SIGSTOP = 23
|
||||
SIGTSTP = 24
|
||||
SIGCONT = 25
|
||||
SIGTTIN = 26
|
||||
SIGTTOU = 27
|
||||
SIGVTALRM = 28
|
||||
SIGPROF = 29
|
||||
SIGXCPU = 30
|
||||
SIGXFSZ = 31
|
||||
SIG32 = 32
|
||||
SIGCKPT = 33
|
||||
SIGRTMIN = 49
|
||||
SIGRTMAX = 64
|
||||
SIGPTINTR = 47
|
||||
SIGPTRESCHED = 48
|
||||
__sigargs = int
|
||||
SIGEV_NONE = 128
|
||||
SIGEV_SIGNAL = 129
|
||||
SIGEV_CALLBACK = 130
|
||||
|
||||
# Included from sys/siginfo.h
|
||||
ILL_ILLOPC = 1
|
||||
ILL_ILLOPN = 2
|
||||
ILL_ILLADR = 3
|
||||
ILL_ILLTRP = 4
|
||||
ILL_PRVOPC = 5
|
||||
ILL_PRVREG = 6
|
||||
ILL_COPROC = 7
|
||||
ILL_BADSTK = 8
|
||||
NSIGILL = 8
|
||||
FPE_INTDIV = 1
|
||||
FPE_INTOVF = 2
|
||||
FPE_FLTDIV = 3
|
||||
FPE_FLTOVF = 4
|
||||
FPE_FLTUND = 5
|
||||
FPE_FLTRES = 6
|
||||
FPE_FLTINV = 7
|
||||
FPE_FLTSUB = 8
|
||||
NSIGFPE = 8
|
||||
SEGV_MAPERR = 1
|
||||
SEGV_ACCERR = 2
|
||||
NSIGSEGV = 2
|
||||
BUS_ADRALN = 1
|
||||
BUS_ADRERR = 2
|
||||
BUS_OBJERR = 3
|
||||
NSIGBUS = 3
|
||||
TRAP_BRKPT = 1
|
||||
TRAP_TRACE = 2
|
||||
NSIGTRAP = 2
|
||||
CLD_EXITED = 1
|
||||
CLD_KILLED = 2
|
||||
CLD_DUMPED = 3
|
||||
CLD_TRAPPED = 4
|
||||
CLD_STOPPED = 5
|
||||
CLD_CONTINUED = 6
|
||||
NSIGCLD = 6
|
||||
POLL_IN = 1
|
||||
POLL_OUT = 2
|
||||
POLL_MSG = 3
|
||||
POLL_ERR = 4
|
||||
POLL_PRI = 5
|
||||
POLL_HUP = 6
|
||||
NSIGPOLL = 6
|
||||
SI_MAXSZ = 128
|
||||
SI_USER = 0
|
||||
SI_KILL = SI_USER
|
||||
SI_QUEUE = -1
|
||||
SI_ASYNCIO = -2
|
||||
SI_TIMER = -3
|
||||
SI_MESGQ = -4
|
||||
SIG_NOP = 0
|
||||
SIG_BLOCK = 1
|
||||
SIG_UNBLOCK = 2
|
||||
SIG_SETMASK = 3
|
||||
SIG_SETMASK32 = 256
|
||||
SA_ONSTACK = 0x00000001
|
||||
SA_RESETHAND = 0x00000002
|
||||
SA_RESTART = 0x00000004
|
||||
SA_SIGINFO = 0x00000008
|
||||
SA_NODEFER = 0x00000010
|
||||
SA_NOCLDWAIT = 0x00010000
|
||||
SA_NOCLDSTOP = 0x00020000
|
||||
_SA_BSDCALL = 0x10000000
|
||||
MINSIGSTKSZ = 512
|
||||
SIGSTKSZ = 8192
|
||||
SS_ONSTACK = 0x00000001
|
||||
SS_DISABLE = 0x00000002
|
||||
|
||||
# Included from sys/ucontext.h
|
||||
NGREG = 36
|
||||
NGREG = 37
|
||||
GETCONTEXT = 0
|
||||
SETCONTEXT = 1
|
||||
UC_SIGMASK = 001
|
||||
UC_STACK = 002
|
||||
UC_CPU = 004
|
||||
UC_MAU = 010
|
||||
UC_MCONTEXT = (UC_CPU|UC_MAU)
|
||||
UC_ALL = (UC_SIGMASK|UC_STACK|UC_MCONTEXT)
|
||||
CTX_R0 = 0
|
||||
CTX_AT = 1
|
||||
CTX_V0 = 2
|
||||
CTX_V1 = 3
|
||||
CTX_A0 = 4
|
||||
CTX_A1 = 5
|
||||
CTX_A2 = 6
|
||||
CTX_A3 = 7
|
||||
CTX_T0 = 8
|
||||
CTX_T1 = 9
|
||||
CTX_T2 = 10
|
||||
CTX_T3 = 11
|
||||
CTX_T4 = 12
|
||||
CTX_T5 = 13
|
||||
CTX_T6 = 14
|
||||
CTX_T7 = 15
|
||||
CTX_A4 = 8
|
||||
CTX_A5 = 9
|
||||
CTX_A6 = 10
|
||||
CTX_A7 = 11
|
||||
CTX_T0 = 12
|
||||
CTX_T1 = 13
|
||||
CTX_T2 = 14
|
||||
CTX_T3 = 15
|
||||
CTX_S0 = 16
|
||||
CTX_S1 = 17
|
||||
CTX_S2 = 18
|
||||
CTX_S3 = 19
|
||||
CTX_S4 = 20
|
||||
CTX_S5 = 21
|
||||
CTX_S6 = 22
|
||||
CTX_S7 = 23
|
||||
CTX_T8 = 24
|
||||
CTX_T9 = 25
|
||||
CTX_K0 = 26
|
||||
CTX_K1 = 27
|
||||
CTX_GP = 28
|
||||
CTX_SP = 29
|
||||
CTX_S8 = 30
|
||||
CTX_RA = 31
|
||||
CTX_MDLO = 32
|
||||
CTX_MDHI = 33
|
||||
CTX_CAUSE = 34
|
||||
CTX_EPC = 35
|
||||
CTX_SR = 36
|
||||
CXT_R0 = CTX_R0
|
||||
CXT_AT = CTX_AT
|
||||
CXT_V0 = CTX_V0
|
||||
CXT_V1 = CTX_V1
|
||||
CXT_A0 = CTX_A0
|
||||
CXT_A1 = CTX_A1
|
||||
CXT_A2 = CTX_A2
|
||||
CXT_A3 = CTX_A3
|
||||
CXT_T0 = CTX_T0
|
||||
CXT_T1 = CTX_T1
|
||||
CXT_T2 = CTX_T2
|
||||
CXT_T3 = CTX_T3
|
||||
CXT_T4 = CTX_T4
|
||||
CXT_T5 = CTX_T5
|
||||
CXT_T6 = CTX_T6
|
||||
CXT_T7 = CTX_T7
|
||||
CXT_S0 = CTX_S0
|
||||
CXT_S1 = CTX_S1
|
||||
CXT_S2 = CTX_S2
|
||||
CXT_S3 = CTX_S3
|
||||
CXT_S4 = CTX_S4
|
||||
CXT_S5 = CTX_S5
|
||||
CXT_S6 = CTX_S6
|
||||
CXT_S7 = CTX_S7
|
||||
CXT_T8 = CTX_T8
|
||||
CXT_T9 = CTX_T9
|
||||
CXT_K0 = CTX_K0
|
||||
CXT_K1 = CTX_K1
|
||||
CXT_GP = CTX_GP
|
||||
CXT_SP = CTX_SP
|
||||
CXT_S8 = CTX_S8
|
||||
CXT_RA = CTX_RA
|
||||
CXT_MDLO = CTX_MDLO
|
||||
CXT_MDHI = CTX_MDHI
|
||||
CXT_CAUSE = CTX_CAUSE
|
||||
CXT_EPC = CTX_EPC
|
||||
CXT_SR = CTX_SR
|
||||
SV_ONSTACK = 0x0001
|
||||
SV_INTERRUPT = 0x0002
|
||||
NUMBSDSIGS = (32)
|
||||
def sigmask(sig): return (1L << ((sig)-1))
|
||||
|
||||
def sigmask(sig): return (1L << ((sig)-1))
|
||||
|
||||
SIG_ERR = (-1)
|
||||
SIG_IGN = (1)
|
||||
SIG_HOLD = (2)
|
||||
SIG_DFL = (0)
|
||||
NSIG = 65
|
||||
MAXSIG = (NSIG-1)
|
||||
NUMSIGS = (NSIG-1)
|
||||
BRK_USERBP = 0
|
||||
BRK_KERNELBP = 1
|
||||
BRK_ABORT = 2
|
||||
BRK_BD_TAKEN = 3
|
||||
BRK_BD_NOTTAKEN = 4
|
||||
BRK_SSTEPBP = 5
|
||||
BRK_OVERFLOW = 6
|
||||
BRK_DIVZERO = 7
|
||||
BRK_RANGE = 8
|
||||
BRK_PSEUDO_OP_BIT = 0x80
|
||||
BRK_PSEUDO_OP_MAX = 0x3
|
||||
BRK_CACHE_SYNC = 0x80
|
||||
BRK_SWASH_FLUSH = 0x81
|
||||
BRK_SWASH_SWTCH = 0x82
|
||||
BRK_MULOVF = 1023
|
||||
|
||||
# Included from sys/resource.h
|
||||
PRIO_MIN = -20
|
||||
PRIO_MAX = 20
|
||||
PRIO_PROCESS = 0
|
||||
PRIO_PGRP = 1
|
||||
PRIO_USER = 2
|
||||
RUSAGE_SELF = 0
|
||||
RUSAGE_CHILDREN = -1
|
||||
RLIMIT_CPU = 0
|
||||
RLIMIT_FSIZE = 1
|
||||
RLIMIT_DATA = 2
|
||||
RLIMIT_STACK = 3
|
||||
RLIMIT_CORE = 4
|
||||
RLIMIT_NOFILE = 5
|
||||
RLIMIT_VMEM = 6
|
||||
RLIMIT_RSS = 7
|
||||
RLIMIT_AS = RLIMIT_VMEM
|
||||
RLIM_NLIMITS = 8
|
||||
RLIM32_INFINITY = 0x7fffffff
|
||||
RLIM_INFINITY = 0x7fffffff
|
|
@ -0,0 +1,208 @@
|
|||
# This file implements a class which forms an interface to the .cddb
|
||||
# directory that is maintained by SGI's cdman program.
|
||||
#
|
||||
# Usage is as follows:
|
||||
#
|
||||
# import readcd
|
||||
# r = readcd.Readcd()
|
||||
# c = Cddb(r.gettrackinfo())
|
||||
#
|
||||
# Now you can use c.artist, c.title and c.track[trackno] (where trackno
|
||||
# starts at 1). When the CD is not recognized, all values will be the empty
|
||||
# string.
|
||||
# It is also possible to set the above mentioned variables to new values.
|
||||
# You can then use c.write() to write out the changed values to the
|
||||
# .cdplayerrc file.
|
||||
|
||||
import string, posix, os
|
||||
|
||||
_cddbrc = '.cddb'
|
||||
_DB_ID_NTRACKS = 5
|
||||
_dbid_map = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@_=+abcdefghijklmnopqrstuvwxyz'
|
||||
def _dbid(v):
|
||||
if v >= len(_dbid_map):
|
||||
return string.zfill(v, 2)
|
||||
else:
|
||||
return _dbid_map[v]
|
||||
|
||||
def tochash(toc):
|
||||
if type(toc) == type(''):
|
||||
tracklist = []
|
||||
for i in range(2, len(toc), 4):
|
||||
tracklist.append((None,
|
||||
(string.atoi(toc[i:i+2]),
|
||||
string.atoi(toc[i+2:i+4]))))
|
||||
else:
|
||||
tracklist = toc
|
||||
ntracks = len(tracklist)
|
||||
hash = _dbid((ntracks >> 4) & 0xF) + _dbid(ntracks & 0xF)
|
||||
if ntracks <= _DB_ID_NTRACKS:
|
||||
nidtracks = ntracks
|
||||
else:
|
||||
nidtracks = _DB_ID_NTRACKS - 1
|
||||
min = 0
|
||||
sec = 0
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
min = min + length[0]
|
||||
sec = sec + length[1]
|
||||
min = min + sec / 60
|
||||
sec = sec % 60
|
||||
hash = hash + _dbid(min) + _dbid(sec)
|
||||
for i in range(nidtracks):
|
||||
start, length = tracklist[i]
|
||||
hash = hash + _dbid(length[0]) + _dbid(length[1])
|
||||
return hash
|
||||
|
||||
class Cddb:
|
||||
def __init__(self, tracklist):
|
||||
if os.environ.has_key('CDDB_PATH'):
|
||||
path = os.environ['CDDB_PATH']
|
||||
cddb_path = string.splitfields(path, ',')
|
||||
else:
|
||||
home = os.environ['HOME']
|
||||
cddb_path = [home + '/' + _cddbrc]
|
||||
|
||||
self._get_id(tracklist)
|
||||
|
||||
for dir in cddb_path:
|
||||
file = dir + '/' + self.id + '.rdb'
|
||||
try:
|
||||
f = open(file, 'r')
|
||||
self.file = file
|
||||
break
|
||||
except IOError:
|
||||
pass
|
||||
ntracks = string.atoi(self.id[:2], 16)
|
||||
self.artist = ''
|
||||
self.title = ''
|
||||
self.track = [None] + [''] * ntracks
|
||||
self.trackartist = [None] + [''] * ntracks
|
||||
self.notes = []
|
||||
if not hasattr(self, 'file'):
|
||||
return
|
||||
import regex
|
||||
reg = regex.compile('^\\([^.]*\\)\\.\\([^:]*\\):[\t ]+\\(.*\\)')
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line:
|
||||
break
|
||||
if reg.match(line) == -1:
|
||||
print 'syntax error in ' + file
|
||||
continue
|
||||
name1 = line[reg.regs[1][0]:reg.regs[1][1]]
|
||||
name2 = line[reg.regs[2][0]:reg.regs[2][1]]
|
||||
value = line[reg.regs[3][0]:reg.regs[3][1]]
|
||||
if name1 == 'album':
|
||||
if name2 == 'artist':
|
||||
self.artist = value
|
||||
elif name2 == 'title':
|
||||
self.title = value
|
||||
elif name2 == 'toc':
|
||||
if not self.toc:
|
||||
self.toc = value
|
||||
if self.toc != value:
|
||||
print 'toc\'s don\'t match'
|
||||
elif name2 == 'notes':
|
||||
self.notes.append(value)
|
||||
elif name1[:5] == 'track':
|
||||
try:
|
||||
trackno = string.atoi(name1[5:])
|
||||
except strings.atoi_error:
|
||||
print 'syntax error in ' + file
|
||||
continue
|
||||
if trackno > ntracks:
|
||||
print 'track number ' + `trackno` + \
|
||||
' in file ' + file + \
|
||||
' out of range'
|
||||
continue
|
||||
if name2 == 'title':
|
||||
self.track[trackno] = value
|
||||
elif name2 == 'artist':
|
||||
self.trackartist[trackno] = value
|
||||
f.close()
|
||||
for i in range(2, len(self.track)):
|
||||
track = self.track[i]
|
||||
# if track title starts with `,', use initial part
|
||||
# of previous track's title
|
||||
if track and track[0] == ',':
|
||||
try:
|
||||
off = string.index(self.track[i - 1],
|
||||
',')
|
||||
except string.index_error:
|
||||
pass
|
||||
else:
|
||||
self.track[i] = self.track[i-1][:off] \
|
||||
+ track
|
||||
|
||||
def _get_id(self, tracklist):
|
||||
# fill in self.id and self.toc.
|
||||
# if the argument is a string ending in .rdb, the part
|
||||
# upto the suffix is taken as the id.
|
||||
if type(tracklist) == type(''):
|
||||
if tracklist[-4:] == '.rdb':
|
||||
self.id = tracklist[:-4]
|
||||
self.toc = ''
|
||||
return
|
||||
t = []
|
||||
for i in range(2, len(tracklist), 4):
|
||||
t.append((None, \
|
||||
(string.atoi(tracklist[i:i+2]), \
|
||||
string.atoi(tracklist[i+2:i+4]))))
|
||||
tracklist = t
|
||||
ntracks = len(tracklist)
|
||||
self.id = _dbid((ntracks >> 4) & 0xF) + _dbid(ntracks & 0xF)
|
||||
if ntracks <= _DB_ID_NTRACKS:
|
||||
nidtracks = ntracks
|
||||
else:
|
||||
nidtracks = _DB_ID_NTRACKS - 1
|
||||
min = 0
|
||||
sec = 0
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
min = min + length[0]
|
||||
sec = sec + length[1]
|
||||
min = min + sec / 60
|
||||
sec = sec % 60
|
||||
self.id = self.id + _dbid(min) + _dbid(sec)
|
||||
for i in range(nidtracks):
|
||||
start, length = tracklist[i]
|
||||
self.id = self.id + _dbid(length[0]) + _dbid(length[1])
|
||||
self.toc = string.zfill(ntracks, 2)
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
self.toc = self.toc + string.zfill(length[0], 2) + \
|
||||
string.zfill(length[1], 2)
|
||||
|
||||
def write(self):
|
||||
import posixpath
|
||||
if os.environ.has_key('CDDB_WRITE_DIR'):
|
||||
dir = os.environ['CDDB_WRITE_DIR']
|
||||
else:
|
||||
dir = os.environ['HOME'] + '/' + _cddbrc
|
||||
file = dir + '/' + self.id + '.rdb'
|
||||
if posixpath.exists(file):
|
||||
# make backup copy
|
||||
posix.rename(file, file + '~')
|
||||
f = open(file, 'w')
|
||||
f.write('album.title:\t' + self.title + '\n')
|
||||
f.write('album.artist:\t' + self.artist + '\n')
|
||||
f.write('album.toc:\t' + self.toc + '\n')
|
||||
for note in self.notes:
|
||||
f.write('album.notes:\t' + note + '\n')
|
||||
prevpref = None
|
||||
for i in range(1, len(self.track)):
|
||||
if self.trackartist[i]:
|
||||
f.write('track'+`i`+'.artist:\t'+self.trackartist[i]+'\n')
|
||||
track = self.track[i]
|
||||
try:
|
||||
off = string.index(track, ',')
|
||||
except string.index_error:
|
||||
prevpref = None
|
||||
else:
|
||||
if prevpref and track[:off] == prevpref:
|
||||
track = track[off:]
|
||||
else:
|
||||
prevpref = track[:off]
|
||||
f.write('track' + `i` + '.title:\t' + track + '\n')
|
||||
f.close()
|
|
@ -0,0 +1,89 @@
|
|||
# This file implements a class which forms an interface to the .cdplayerrc
|
||||
# file that is maintained by SGI's cdplayer program.
|
||||
#
|
||||
# Usage is as follows:
|
||||
#
|
||||
# import readcd
|
||||
# r = readcd.Readcd()
|
||||
# c = Cdplayer(r.gettrackinfo())
|
||||
#
|
||||
# Now you can use c.artist, c.title and c.track[trackno] (where trackno
|
||||
# starts at 1). When the CD is not recognized, all values will be the empty
|
||||
# string.
|
||||
# It is also possible to set the above mentioned variables to new values.
|
||||
# You can then use c.write() to write out the changed values to the
|
||||
# .cdplayerrc file.
|
||||
|
||||
cdplayerrc = '.cdplayerrc'
|
||||
|
||||
class Cdplayer:
|
||||
def __init__(self, tracklist):
|
||||
import string
|
||||
self.artist = ''
|
||||
self.title = ''
|
||||
if type(tracklist) == type(''):
|
||||
t = []
|
||||
for i in range(2, len(tracklist), 4):
|
||||
t.append((None, \
|
||||
(string.atoi(tracklist[i:i+2]), \
|
||||
string.atoi(tracklist[i+2:i+4]))))
|
||||
tracklist = t
|
||||
self.track = [None] + [''] * len(tracklist)
|
||||
self.id = 'd' + string.zfill(len(tracklist), 2)
|
||||
for track in tracklist:
|
||||
start, length = track
|
||||
self.id = self.id + string.zfill(length[0], 2) + \
|
||||
string.zfill(length[1], 2)
|
||||
try:
|
||||
import posix
|
||||
f = open(posix.environ['HOME'] + '/' + cdplayerrc, 'r')
|
||||
except IOError:
|
||||
return
|
||||
import regex
|
||||
reg = regex.compile('^\\([^:]*\\):\t\\(.*\\)')
|
||||
s = self.id + '.'
|
||||
l = len(s)
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if line == '':
|
||||
break
|
||||
if line[:l] == s:
|
||||
line = line[l:]
|
||||
if reg.match(line) == -1:
|
||||
print 'syntax error in ~/' + cdplayerrc
|
||||
continue
|
||||
name = line[reg.regs[1][0]:reg.regs[1][1]]
|
||||
value = line[reg.regs[2][0]:reg.regs[2][1]]
|
||||
if name == 'title':
|
||||
self.title = value
|
||||
elif name == 'artist':
|
||||
self.artist = value
|
||||
elif name[:5] == 'track':
|
||||
trackno = string.atoi(name[6:])
|
||||
self.track[trackno] = value
|
||||
f.close()
|
||||
|
||||
def write(self):
|
||||
import posix
|
||||
filename = posix.environ['HOME'] + '/' + cdplayerrc
|
||||
try:
|
||||
old = open(filename, 'r')
|
||||
except IOError:
|
||||
old = open('/dev/null', 'r')
|
||||
new = open(filename + '.new', 'w')
|
||||
s = self.id + '.'
|
||||
l = len(s)
|
||||
while 1:
|
||||
line = old.readline()
|
||||
if line == '':
|
||||
break
|
||||
if line[:l] <> s:
|
||||
new.write(line)
|
||||
new.write(self.id + '.title:\t' + self.title + '\n')
|
||||
new.write(self.id + '.artist:\t' + self.artist + '\n')
|
||||
for i in range(1, len(self.track)):
|
||||
new.write(self.id + '.track.' + `i` + ':\t' + \
|
||||
self.track[i] + '\n')
|
||||
old.close()
|
||||
new.close()
|
||||
posix.rename(filename + '.new', filename)
|
|
@ -0,0 +1,117 @@
|
|||
.SH
|
||||
Module flp
|
||||
.LP
|
||||
The flp module loads fl-forms from fd files, as generated
|
||||
by fdesign. The module is designed to be flexible enough to allow
|
||||
almost anything to be done with the loaded form.
|
||||
.LP
|
||||
Loadform defines
|
||||
two types of functions: functions to parse fd files and functions to
|
||||
create the forms from the templates returned by the parse functions.
|
||||
There are fairly low-level create functions that create single objects,
|
||||
and convenience routines that create complete forms, including callbacks,
|
||||
etc.
|
||||
.LP
|
||||
The exception flp.error is raised whenever an error occurs while parsing a forms
|
||||
definition file or creating a form.
|
||||
.SH 2
|
||||
Parsing functions
|
||||
.LP
|
||||
There are two parsing functions, parse_form() and parse_forms(). They
|
||||
take the following form:
|
||||
.LP
|
||||
.ft C
|
||||
ftuple = parse_form(filename, formname)
|
||||
.br
|
||||
ftdict = parse_forms(filename)
|
||||
.IP
|
||||
Parse_form parses a single form, and returns a tuple (ftmp, otmplist).
|
||||
Ftmp is a template for a form, otmplist is a list of templates for
|
||||
objects. See below for a description of these templates.
|
||||
.IP
|
||||
Parse_forms parses all forms in an fd file. It returns a dictionary of
|
||||
(ftmp, otmplist) tuples, indexed by formname.
|
||||
.IP
|
||||
Filename is the name of the forms definition file to inspect. The functions
|
||||
appends '.fd' if needed, and use 'sys.path' to locate the file.
|
||||
.IP
|
||||
formname is the name of the form to load. This argument is mandatory,
|
||||
even if the file only contains one form.
|
||||
.LP
|
||||
The form template and object template are structures that contain all
|
||||
the information read from the fd file, in 'natural' form. A form
|
||||
template record contains the following fields:
|
||||
.IP
|
||||
.nf
|
||||
"Name", the name of the form;
|
||||
"Width", the width of the form;
|
||||
"Height", the height of the form; and
|
||||
"Numberofobjects", the number of objects in the form.
|
||||
.LP
|
||||
An object template contains the following fields:
|
||||
.IP
|
||||
.nf
|
||||
"Class", the class of object (eg. FL.BUTTON);
|
||||
"Type", the sub-class (eg. FL.NORMALBUTTON);
|
||||
"Box", a list with four members: [x, y, width, height];
|
||||
"Boxtype", the type of box (eg. FL.DOWNBOX);
|
||||
"Colors", a list with the two object colors;
|
||||
"Alignment", the label alignment (eg. FL.ALIGNLEFT);
|
||||
"Style", the label style (eg. FL.BOLDSTYLE);
|
||||
"Lcol", the label color;
|
||||
"Label", a string containing the label;
|
||||
"Name", a string containing the name of the object;
|
||||
"Callback", a string containing the callback routine name; and
|
||||
"Argument", a string containing the callback routine extra argument.
|
||||
.SH
|
||||
Low-level create routines.
|
||||
.LP
|
||||
The three low-level creation routines are called as follows:
|
||||
.LP
|
||||
.ft C
|
||||
form = create_form(form_template)
|
||||
.IP
|
||||
Create an fl form from a form template. Returns the form created.
|
||||
.LP
|
||||
.ft C
|
||||
obj = create_object(form, obj_template)
|
||||
.IP
|
||||
Create an object in an fl form. Return the new object.
|
||||
An error is raised if the object has a callback routine.
|
||||
.SH
|
||||
High-level create routines.
|
||||
.LP
|
||||
The 'standard' way to handle forms in python is to define a class
|
||||
that contains the form and all the objects (insofar as they are named),
|
||||
and that defines all the callback functions, and use an instance of
|
||||
this class to handle the form interaction.
|
||||
Flp contains three routines that simplify handling this paradigm:
|
||||
.LP
|
||||
.ft C
|
||||
create_full_form(instance, ftuple)
|
||||
.IP
|
||||
This routine takes an instance of your form-handling class and an
|
||||
ftuple (as returned by the parsing routines) as parameters. It inserts
|
||||
the form into the instance, defines all object names and arranges that
|
||||
the callback methods are called. All the names inserted into the
|
||||
instance are the same as the names used for the objects, etc. in the
|
||||
fd file.
|
||||
.LP
|
||||
.ft C
|
||||
merge_full_form(instance, form, ftuple)
|
||||
.IP
|
||||
This function does the same as create_full_form, only it does not create
|
||||
the form itself nor the 'background box' that fdesign automatically
|
||||
adds to each form. This is useful if your class inherits a superclass
|
||||
that already defines a skeleton form (with 'OK' and 'Cancel' buttons,
|
||||
for instance), and you want to merge the new form into that existing
|
||||
form. The 'form' parameter is the form to which the new objects are
|
||||
added.
|
||||
.LP
|
||||
If you use the paradigm sketched here but need slightly more control
|
||||
over object creation there is a routine that creates a single object
|
||||
and inserts its name (and arranges for the callback routine to be
|
||||
called):
|
||||
.LP
|
||||
.ft C
|
||||
create_object_instance(instance, form, obj_template)
|
|
@ -0,0 +1,455 @@
|
|||
#
|
||||
# flp - Module to load fl forms from fd files
|
||||
#
|
||||
# Jack Jansen, December 1991
|
||||
#
|
||||
import string
|
||||
import os
|
||||
import sys
|
||||
import FL
|
||||
|
||||
SPLITLINE = '--------------------'
|
||||
FORMLINE = '=============== FORM ==============='
|
||||
ENDLINE = '=============================='
|
||||
|
||||
error = 'flp.error'
|
||||
|
||||
##################################################################
|
||||
# Part 1 - The parsing routines #
|
||||
##################################################################
|
||||
|
||||
#
|
||||
# Externally visible function. Load form.
|
||||
#
|
||||
def parse_form(filename, formname):
|
||||
forms = checkcache(filename)
|
||||
if forms is None:
|
||||
forms = parse_forms(filename)
|
||||
if forms.has_key(formname):
|
||||
return forms[formname]
|
||||
else:
|
||||
raise error, 'No such form in fd file'
|
||||
|
||||
#
|
||||
# Externally visible function. Load all forms.
|
||||
#
|
||||
def parse_forms(filename):
|
||||
forms = checkcache(filename)
|
||||
if forms != None: return forms
|
||||
fp = _open_formfile(filename)
|
||||
nforms = _parse_fd_header(fp)
|
||||
forms = {}
|
||||
for i in range(nforms):
|
||||
form = _parse_fd_form(fp, None)
|
||||
forms[form[0].Name] = form
|
||||
writecache(filename, forms)
|
||||
return forms
|
||||
|
||||
#
|
||||
# Internal: see if a cached version of the file exists
|
||||
#
|
||||
MAGIC = '.fdc'
|
||||
_internal_cache = {} # Used by frozen scripts only
|
||||
def checkcache(filename):
|
||||
if _internal_cache.has_key(filename):
|
||||
altforms = _internal_cache[filename]
|
||||
return _unpack_cache(altforms)
|
||||
import marshal
|
||||
fp, filename = _open_formfile2(filename)
|
||||
fp.close()
|
||||
cachename = filename + 'c'
|
||||
try:
|
||||
fp = open(cachename, 'r')
|
||||
except IOError:
|
||||
#print 'flp: no cache file', cachename
|
||||
return None
|
||||
try:
|
||||
if fp.read(4) != MAGIC:
|
||||
print 'flp: bad magic word in cache file', cachename
|
||||
return None
|
||||
cache_mtime = rdlong(fp)
|
||||
file_mtime = getmtime(filename)
|
||||
if cache_mtime != file_mtime:
|
||||
#print 'flp: outdated cache file', cachename
|
||||
return None
|
||||
#print 'flp: valid cache file', cachename
|
||||
altforms = marshal.load(fp)
|
||||
return _unpack_cache(altforms)
|
||||
finally:
|
||||
fp.close()
|
||||
|
||||
def _unpack_cache(altforms):
|
||||
forms = {}
|
||||
for name in altforms.keys():
|
||||
altobj, altlist = altforms[name]
|
||||
obj = _newobj()
|
||||
obj.make(altobj)
|
||||
list = []
|
||||
for altobj in altlist:
|
||||
nobj = _newobj()
|
||||
nobj.make(altobj)
|
||||
list.append(nobj)
|
||||
forms[name] = obj, list
|
||||
return forms
|
||||
|
||||
def rdlong(fp):
|
||||
s = fp.read(4)
|
||||
if len(s) != 4: return None
|
||||
a, b, c, d = s[0], s[1], s[2], s[3]
|
||||
return ord(a)<<24 | ord(b)<<16 | ord(c)<<8 | ord(d)
|
||||
|
||||
def wrlong(fp, x):
|
||||
a, b, c, d = (x>>24)&0xff, (x>>16)&0xff, (x>>8)&0xff, x&0xff
|
||||
fp.write(chr(a) + chr(b) + chr(c) + chr(d))
|
||||
|
||||
def getmtime(filename):
|
||||
import os
|
||||
from stat import ST_MTIME
|
||||
try:
|
||||
return os.stat(filename)[ST_MTIME]
|
||||
except os.error:
|
||||
return None
|
||||
|
||||
#
|
||||
# Internal: write cached version of the form (parsing is too slow!)
|
||||
#
|
||||
def writecache(filename, forms):
|
||||
import marshal
|
||||
fp, filename = _open_formfile2(filename)
|
||||
fp.close()
|
||||
cachename = filename + 'c'
|
||||
try:
|
||||
fp = open(cachename, 'w')
|
||||
except IOError:
|
||||
print 'flp: can\'t create cache file', cachename
|
||||
return # Never mind
|
||||
fp.write('\0\0\0\0') # Seek back and write MAGIC when done
|
||||
wrlong(fp, getmtime(filename))
|
||||
altforms = _pack_cache(forms)
|
||||
marshal.dump(altforms, fp)
|
||||
fp.seek(0)
|
||||
fp.write(MAGIC)
|
||||
fp.close()
|
||||
#print 'flp: wrote cache file', cachename
|
||||
|
||||
#
|
||||
# External: print some statements that set up the internal cache.
|
||||
# This is for use with the "freeze" script. You should call
|
||||
# flp.freeze(filename) for all forms used by the script, and collect
|
||||
# the output on a file in a module file named "frozenforms.py". Then
|
||||
# in the main program of the script import frozenforms.
|
||||
# (Don't forget to take this out when using the unfrozen version of
|
||||
# the script!)
|
||||
#
|
||||
def freeze(filename):
|
||||
forms = parse_forms(filename)
|
||||
altforms = _pack_cache(forms)
|
||||
print 'import flp'
|
||||
print 'flp._internal_cache[', `filename`, '] =', altforms
|
||||
|
||||
#
|
||||
# Internal: create the data structure to be placed in the cache
|
||||
#
|
||||
def _pack_cache(forms):
|
||||
altforms = {}
|
||||
for name in forms.keys():
|
||||
obj, list = forms[name]
|
||||
altobj = obj.__dict__
|
||||
altlist = []
|
||||
for obj in list: altlist.append(obj.__dict__)
|
||||
altforms[name] = altobj, altlist
|
||||
return altforms
|
||||
|
||||
#
|
||||
# Internal: Locate form file (using PYTHONPATH) and open file
|
||||
#
|
||||
def _open_formfile(filename):
|
||||
return _open_formfile2(filename)[0]
|
||||
|
||||
def _open_formfile2(filename):
|
||||
if filename[-3:] <> '.fd':
|
||||
filename = filename + '.fd'
|
||||
if filename[0] == '/':
|
||||
try:
|
||||
fp = open(filename,'r')
|
||||
except IOError:
|
||||
fp = None
|
||||
else:
|
||||
for pc in sys.path:
|
||||
pn = os.path.join(pc, filename)
|
||||
try:
|
||||
fp = open(pn, 'r')
|
||||
filename = pn
|
||||
break
|
||||
except IOError:
|
||||
fp = None
|
||||
if fp == None:
|
||||
raise error, 'Cannot find forms file ' + filename
|
||||
return fp, filename
|
||||
|
||||
#
|
||||
# Internal: parse the fd file header, return number of forms
|
||||
#
|
||||
def _parse_fd_header(file):
|
||||
# First read the magic header line
|
||||
datum = _parse_1_line(file)
|
||||
if datum <> ('Magic', 12321):
|
||||
raise error, 'Not a forms definition file'
|
||||
# Now skip until we know number of forms
|
||||
while 1:
|
||||
datum = _parse_1_line(file)
|
||||
if type(datum) == type(()) and datum[0] == 'Numberofforms':
|
||||
break
|
||||
return datum[1]
|
||||
#
|
||||
# Internal: parse fd form, or skip if name doesn't match.
|
||||
# the special value None means 'allways parse it'.
|
||||
#
|
||||
def _parse_fd_form(file, name):
|
||||
datum = _parse_1_line(file)
|
||||
if datum <> FORMLINE:
|
||||
raise error, 'Missing === FORM === line'
|
||||
form = _parse_object(file)
|
||||
if form.Name == name or name == None:
|
||||
objs = []
|
||||
for j in range(form.Numberofobjects):
|
||||
obj = _parse_object(file)
|
||||
objs.append(obj)
|
||||
return (form, objs)
|
||||
else:
|
||||
for j in range(form.Numberofobjects):
|
||||
_skip_object(file)
|
||||
return None
|
||||
|
||||
#
|
||||
# Internal class: a convient place to store object info fields
|
||||
#
|
||||
class _newobj:
|
||||
def add(self, name, value):
|
||||
self.__dict__[name] = value
|
||||
def make(self, dict):
|
||||
for name in dict.keys():
|
||||
self.add(name, dict[name])
|
||||
|
||||
#
|
||||
# Internal parsing routines.
|
||||
#
|
||||
def _parse_string(str):
|
||||
if '\\' in str:
|
||||
s = '\'' + str + '\''
|
||||
try:
|
||||
return eval(s)
|
||||
except:
|
||||
pass
|
||||
return str
|
||||
|
||||
def _parse_num(str):
|
||||
return eval(str)
|
||||
|
||||
def _parse_numlist(str):
|
||||
slist = string.split(str)
|
||||
nlist = []
|
||||
for i in slist:
|
||||
nlist.append(_parse_num(i))
|
||||
return nlist
|
||||
|
||||
# This dictionary maps item names to parsing routines.
|
||||
# If no routine is given '_parse_num' is default.
|
||||
_parse_func = { \
|
||||
'Name': _parse_string, \
|
||||
'Box': _parse_numlist, \
|
||||
'Colors': _parse_numlist, \
|
||||
'Label': _parse_string, \
|
||||
'Name': _parse_string, \
|
||||
'Callback': _parse_string, \
|
||||
'Argument': _parse_string }
|
||||
|
||||
# This function parses a line, and returns either
|
||||
# a string or a tuple (name,value)
|
||||
|
||||
import regex
|
||||
prog = regex.compile('^\([^:]*\): *\(.*\)')
|
||||
|
||||
def _parse_line(line):
|
||||
if prog.match(line) < 0:
|
||||
return line
|
||||
a = prog.regs
|
||||
name = line[:a[1][1]]
|
||||
if name[0] == 'N':
|
||||
name = string.joinfields(string.split(name),'')
|
||||
name = string.lower(name)
|
||||
name = string.upper(name[0]) + name[1:]
|
||||
value = line[a[2][0]:]
|
||||
try:
|
||||
pf = _parse_func[name]
|
||||
except KeyError:
|
||||
pf = _parse_num
|
||||
value = pf(value)
|
||||
return (name, value)
|
||||
|
||||
def _readline(file):
|
||||
line = file.readline()
|
||||
if not line:
|
||||
raise EOFError
|
||||
return line[:-1]
|
||||
|
||||
def _parse_1_line(file):
|
||||
line = _readline(file)
|
||||
while line == '':
|
||||
line = _readline(file)
|
||||
return _parse_line(line)
|
||||
|
||||
def _skip_object(file):
|
||||
line = ''
|
||||
while not line in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
pos = file.tell()
|
||||
line = _readline(file)
|
||||
if line == FORMLINE:
|
||||
file.seek(pos)
|
||||
|
||||
def _parse_object(file):
|
||||
obj = _newobj()
|
||||
while 1:
|
||||
pos = file.tell()
|
||||
datum = _parse_1_line(file)
|
||||
if datum in (SPLITLINE, FORMLINE, ENDLINE):
|
||||
if datum == FORMLINE:
|
||||
file.seek(pos)
|
||||
return obj
|
||||
if type(datum) <> type(()) or len(datum) <> 2:
|
||||
raise error, 'Parse error, illegal line in object: '+datum
|
||||
obj.add(datum[0], datum[1])
|
||||
|
||||
#################################################################
|
||||
# Part 2 - High-level object/form creation routines #
|
||||
#################################################################
|
||||
|
||||
#
|
||||
# External - Create a form an link to an instance variable.
|
||||
#
|
||||
def create_full_form(inst, (fdata, odatalist)):
|
||||
form = create_form(fdata)
|
||||
exec 'inst.'+fdata.Name+' = form\n'
|
||||
for odata in odatalist:
|
||||
create_object_instance(inst, form, odata)
|
||||
|
||||
#
|
||||
# External - Merge a form into an existing form in an instance
|
||||
# variable.
|
||||
#
|
||||
def merge_full_form(inst, form, (fdata, odatalist)):
|
||||
exec 'inst.'+fdata.Name+' = form\n'
|
||||
if odatalist[0].Class <> FL.BOX:
|
||||
raise error, 'merge_full_form() expects FL.BOX as first obj'
|
||||
for odata in odatalist[1:]:
|
||||
create_object_instance(inst, form, odata)
|
||||
|
||||
|
||||
#################################################################
|
||||
# Part 3 - Low-level object/form creation routines #
|
||||
#################################################################
|
||||
|
||||
#
|
||||
# External Create_form - Create form from parameters
|
||||
#
|
||||
def create_form(fdata):
|
||||
import fl
|
||||
return fl.make_form(FL.NO_BOX, fdata.Width, fdata.Height)
|
||||
|
||||
#
|
||||
# External create_object - Create an object. Make sure there are
|
||||
# no callbacks. Returns the object created.
|
||||
#
|
||||
def create_object(form, odata):
|
||||
obj = _create_object(form, odata)
|
||||
if odata.Callback:
|
||||
raise error, 'Creating free object with callback'
|
||||
return obj
|
||||
#
|
||||
# External create_object_instance - Create object in an instance.
|
||||
#
|
||||
def create_object_instance(inst, form, odata):
|
||||
obj = _create_object(form, odata)
|
||||
if odata.Callback:
|
||||
cbfunc = eval('inst.'+odata.Callback)
|
||||
obj.set_call_back(cbfunc, odata.Argument)
|
||||
if odata.Name:
|
||||
exec 'inst.' + odata.Name + ' = obj\n'
|
||||
#
|
||||
# Internal _create_object: Create the object and fill options
|
||||
#
|
||||
def _create_object(form, odata):
|
||||
crfunc = _select_crfunc(form, odata.Class)
|
||||
obj = crfunc(odata.Type, odata.Box[0], odata.Box[1], odata.Box[2], \
|
||||
odata.Box[3], odata.Label)
|
||||
if not odata.Class in (FL.BEGIN_GROUP, FL.END_GROUP):
|
||||
obj.boxtype = odata.Boxtype
|
||||
obj.col1 = odata.Colors[0]
|
||||
obj.col2 = odata.Colors[1]
|
||||
obj.align = odata.Alignment
|
||||
obj.lstyle = odata.Style
|
||||
obj.lsize = odata.Size
|
||||
obj.lcol = odata.Lcol
|
||||
return obj
|
||||
#
|
||||
# Internal crfunc: helper function that returns correct create function
|
||||
#
|
||||
def _select_crfunc(fm, cl):
|
||||
if cl == FL.BEGIN_GROUP: return fm.bgn_group
|
||||
elif cl == FL.END_GROUP: return fm.end_group
|
||||
elif cl == FL.BITMAP: return fm.add_bitmap
|
||||
elif cl == FL.BOX: return fm.add_box
|
||||
elif cl == FL.BROWSER: return fm.add_browser
|
||||
elif cl == FL.BUTTON: return fm.add_button
|
||||
elif cl == FL.CHART: return fm.add_chart
|
||||
elif cl == FL.CHOICE: return fm.add_choice
|
||||
elif cl == FL.CLOCK: return fm.add_clock
|
||||
elif cl == FL.COUNTER: return fm.add_counter
|
||||
elif cl == FL.DIAL: return fm.add_dial
|
||||
elif cl == FL.FREE: return fm.add_free
|
||||
elif cl == FL.INPUT: return fm.add_input
|
||||
elif cl == FL.LIGHTBUTTON: return fm.add_lightbutton
|
||||
elif cl == FL.MENU: return fm.add_menu
|
||||
elif cl == FL.POSITIONER: return fm.add_positioner
|
||||
elif cl == FL.ROUNDBUTTON: return fm.add_roundbutton
|
||||
elif cl == FL.SLIDER: return fm.add_slider
|
||||
elif cl == FL.VALSLIDER: return fm.add_valslider
|
||||
elif cl == FL.TEXT: return fm.add_text
|
||||
elif cl == FL.TIMER: return fm.add_timer
|
||||
else:
|
||||
raise error, 'Unknown object type: ' + `cl`
|
||||
|
||||
|
||||
def test():
|
||||
import time
|
||||
t0 = time.time()
|
||||
if len(sys.argv) == 2:
|
||||
forms = parse_forms(sys.argv[1])
|
||||
t1 = time.time()
|
||||
print 'parse time:', 0.001*(t1-t0), 'sec.'
|
||||
keys = forms.keys()
|
||||
keys.sort()
|
||||
for i in keys:
|
||||
_printform(forms[i])
|
||||
elif len(sys.argv) == 3:
|
||||
form = parse_form(sys.argv[1], sys.argv[2])
|
||||
t1 = time.time()
|
||||
print 'parse time:', round(t1-t0, 3), 'sec.'
|
||||
_printform(form)
|
||||
else:
|
||||
print 'Usage: test fdfile [form]'
|
||||
|
||||
def _printform(form):
|
||||
f = form[0]
|
||||
objs = form[1]
|
||||
print 'Form ', f.Name, ', size: ', f.Width, f.Height, ' Nobj ', f.Numberofobjects
|
||||
for i in objs:
|
||||
print ' Obj ', i.Name, ' type ', i.Class, i.Type
|
||||
print ' Box ', i.Box, ' btype ', i.Boxtype
|
||||
print ' Label ', i.Label, ' size/style/col/align ', i.Size,i.Style, i.Lcol, i.Alignment
|
||||
print ' cols ', i.Colors
|
||||
print ' cback ', i.Callback, i.Argument
|
||||
|
||||
# Local variables:
|
||||
# py-indent-offset: 4
|
||||
# end:
|
|
@ -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)
|
|
@ -0,0 +1,281 @@
|
|||
# Module 'panel'
|
||||
#
|
||||
# Support for the Panel library.
|
||||
# Uses built-in module 'pnl'.
|
||||
# Applciations should use 'panel.function' instead of 'pnl.function';
|
||||
# most 'pnl' functions are transparently exported by 'panel',
|
||||
# but dopanel() is overridden and you have to use this version
|
||||
# if you want to use callbacks.
|
||||
|
||||
|
||||
import pnl
|
||||
|
||||
|
||||
debug = 0
|
||||
|
||||
|
||||
# Test if an object is a list.
|
||||
#
|
||||
def is_list(x):
|
||||
return type(x) == type([])
|
||||
|
||||
|
||||
# Reverse a list.
|
||||
#
|
||||
def reverse(list):
|
||||
res = []
|
||||
for item in list:
|
||||
res.insert(0, item)
|
||||
return res
|
||||
|
||||
|
||||
# Get an attribute of a list, which may itself be another list.
|
||||
# Don't use 'prop' for name.
|
||||
#
|
||||
def getattrlist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] == name:
|
||||
return item[1:]
|
||||
return []
|
||||
|
||||
|
||||
# Get a property of a list, which may itself be another list.
|
||||
#
|
||||
def getproplist(list, name):
|
||||
for item in list:
|
||||
if item and is_list(item) and item[0] == 'prop':
|
||||
if len(item) > 1 and item[1] == name:
|
||||
return item[2:]
|
||||
return []
|
||||
|
||||
|
||||
# Test if an actuator description contains the property 'end-of-group'
|
||||
#
|
||||
def is_endgroup(list):
|
||||
x = getproplist(list, 'end-of-group')
|
||||
return (x and x[0] == '#t')
|
||||
|
||||
|
||||
# Neatly display an actuator definition given as S-expression
|
||||
# the prefix string is printed before each line.
|
||||
#
|
||||
def show_actuator(prefix, a):
|
||||
for item in a:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Subactuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
print prefix, '?', item
|
||||
|
||||
|
||||
# Neatly display a panel.
|
||||
#
|
||||
def show_panel(prefix, p):
|
||||
for item in p:
|
||||
if not is_list(item):
|
||||
print prefix, item
|
||||
elif item and item[0] == 'al':
|
||||
print prefix, 'Actuator list:'
|
||||
for a in item[1:]:
|
||||
show_actuator(prefix + ' ', a)
|
||||
elif len(item) == 2:
|
||||
print prefix, item[0], '=>', item[1]
|
||||
elif len(item) == 3 and item[0] == 'prop':
|
||||
print prefix, 'Prop', item[1], '=>',
|
||||
print item[2]
|
||||
else:
|
||||
print prefix, '?', item
|
||||
|
||||
|
||||
# Exception raised by build_actuator or build_panel.
|
||||
#
|
||||
panel_error = 'panel error'
|
||||
|
||||
|
||||
# Dummy callback used to initialize the callbacks.
|
||||
#
|
||||
def dummy_callback(arg):
|
||||
pass
|
||||
|
||||
|
||||
# Assign attributes to members of the target.
|
||||
# Attribute names in exclist are ignored.
|
||||
# The member name is the attribute name prefixed with the prefix.
|
||||
#
|
||||
def assign_members(target, attrlist, exclist, prefix):
|
||||
for item in attrlist:
|
||||
if is_list(item) and len(item) == 2 and item[0] not in exclist:
|
||||
name, value = item[0], item[1]
|
||||
ok = 1
|
||||
if value[0] in '-0123456789':
|
||||
value = eval(value)
|
||||
elif value[0] == '"':
|
||||
value = value[1:-1]
|
||||
elif value == 'move-then-resize':
|
||||
# Strange default set by Panel Editor...
|
||||
ok = 0
|
||||
else:
|
||||
print 'unknown value', value, 'for', name
|
||||
ok = 0
|
||||
if ok:
|
||||
lhs = 'target.' + prefix + name
|
||||
stmt = lhs + '=' + `value`
|
||||
if debug: print 'exec', stmt
|
||||
try:
|
||||
exec stmt + '\n'
|
||||
except KeyboardInterrupt: # Don't catch this!
|
||||
raise KeyboardInterrupt
|
||||
except:
|
||||
print 'assign failed:', stmt
|
||||
|
||||
|
||||
# Build a real actuator from an actuator descriptior.
|
||||
# Return a pair (actuator, name).
|
||||
#
|
||||
def build_actuator(descr):
|
||||
namelist = getattrlist(descr, 'name')
|
||||
if namelist:
|
||||
# Assume it is a string
|
||||
actuatorname = namelist[0][1:-1]
|
||||
else:
|
||||
actuatorname = ''
|
||||
type = descr[0]
|
||||
if type[:4] == 'pnl_': type = type[4:]
|
||||
act = pnl.mkact(type)
|
||||
act.downfunc = act.activefunc = act.upfunc = dummy_callback
|
||||
#
|
||||
assign_members(act, descr[1:], ['al', 'data', 'name'], '')
|
||||
#
|
||||
# Treat actuator-specific data
|
||||
#
|
||||
datalist = getattrlist(descr, 'data')
|
||||
prefix = ''
|
||||
if type[-4:] == 'puck':
|
||||
prefix = 'puck_'
|
||||
elif type == 'mouse':
|
||||
prefix = 'mouse_'
|
||||
assign_members(act, datalist, [], prefix)
|
||||
#
|
||||
return act, actuatorname
|
||||
|
||||
|
||||
# Build all sub-actuators and add them to the super-actuator.
|
||||
# The super-actuator must already have been added to the panel.
|
||||
# Sub-actuators with defined names are added as members to the panel
|
||||
# so they can be referenced as p.name.
|
||||
#
|
||||
# Note: I have no idea how panel.endgroup() works when applied
|
||||
# to a sub-actuator.
|
||||
#
|
||||
def build_subactuators(panel, super_act, al):
|
||||
#
|
||||
# This is nearly the same loop as below in build_panel(),
|
||||
# except a call is made to addsubact() instead of addact().
|
||||
#
|
||||
for a in al:
|
||||
act, name = build_actuator(a)
|
||||
act.addsubact(super_act)
|
||||
if name:
|
||||
stmt = 'panel.' + name + ' = act'
|
||||
if debug: print 'exec', stmt
|
||||
exec stmt + '\n'
|
||||
if is_endgroup(a):
|
||||
panel.endgroup()
|
||||
sub_al = getattrlist(a, 'al')
|
||||
if sub_al:
|
||||
build_subactuators(panel, act, sub_al)
|
||||
#
|
||||
# Fix the actuator to which whe just added subactuators.
|
||||
# This can't hurt (I hope) and is needed for the scroll actuator.
|
||||
#
|
||||
super_act.fixact()
|
||||
|
||||
|
||||
# Build a real panel from a panel definition.
|
||||
# Return a panel object p, where for each named actuator a, p.name is a
|
||||
# reference to a.
|
||||
#
|
||||
def build_panel(descr):
|
||||
#
|
||||
# Sanity check
|
||||
#
|
||||
if (not descr) or descr[0] <> 'panel':
|
||||
raise panel_error, 'panel description must start with "panel"'
|
||||
#
|
||||
if debug: show_panel('', descr)
|
||||
#
|
||||
# Create an empty panel
|
||||
#
|
||||
panel = pnl.mkpanel()
|
||||
#
|
||||
# Assign panel attributes
|
||||
#
|
||||
assign_members(panel, descr[1:], ['al'], '')
|
||||
#
|
||||
# Look for actuator list
|
||||
#
|
||||
al = getattrlist(descr, 'al')
|
||||
#
|
||||
# The order in which actuators are created is important
|
||||
# because of the endgroup() operator.
|
||||
# Unfortunately the Panel Editor outputs the actuator list
|
||||
# in reverse order, so we reverse it here.
|
||||
#
|
||||
al = reverse(al)
|
||||
#
|
||||
for a in al:
|
||||
act, name = build_actuator(a)
|
||||
act.addact(panel)
|
||||
if name:
|
||||
stmt = 'panel.' + name + ' = act'
|
||||
exec stmt + '\n'
|
||||
if is_endgroup(a):
|
||||
panel.endgroup()
|
||||
sub_al = getattrlist(a, 'al')
|
||||
if sub_al:
|
||||
build_subactuators(panel, act, sub_al)
|
||||
#
|
||||
return panel
|
||||
|
||||
|
||||
# Wrapper around pnl.dopanel() which calls call-back functions.
|
||||
#
|
||||
def my_dopanel():
|
||||
# Extract only the first 4 elements to allow for future expansion
|
||||
a, down, active, up = pnl.dopanel()[:4]
|
||||
if down:
|
||||
down.downfunc(down)
|
||||
if active:
|
||||
active.activefunc(active)
|
||||
if up:
|
||||
up.upfunc(up)
|
||||
return a
|
||||
|
||||
|
||||
# Create one or more panels from a description file (S-expressions)
|
||||
# generated by the Panel Editor.
|
||||
#
|
||||
def defpanellist(file):
|
||||
import panelparser
|
||||
descrlist = panelparser.parse_file(open(file, 'r'))
|
||||
panellist = []
|
||||
for descr in descrlist:
|
||||
panellist.append(build_panel(descr))
|
||||
return panellist
|
||||
|
||||
|
||||
# Import everything from built-in method pnl, so the user can always
|
||||
# use panel.foo() instead of pnl.foo().
|
||||
# This gives *no* performance penalty once this module is imported.
|
||||
#
|
||||
from pnl import * # for export
|
||||
|
||||
dopanel = my_dopanel # override pnl.dopanel
|
|
@ -0,0 +1,128 @@
|
|||
# Module 'parser'
|
||||
#
|
||||
# Parse S-expressions output by the Panel Editor
|
||||
# (which is written in Scheme so it can't help writing S-expressions).
|
||||
#
|
||||
# See notes at end of file.
|
||||
|
||||
|
||||
whitespace = ' \t\n'
|
||||
operators = '()\''
|
||||
separators = operators + whitespace + ';' + '"'
|
||||
|
||||
|
||||
# Tokenize a string.
|
||||
# Return a list of tokens (strings).
|
||||
#
|
||||
def tokenize_string(s):
|
||||
tokens = []
|
||||
while s:
|
||||
c = s[:1]
|
||||
if c in whitespace:
|
||||
s = s[1:]
|
||||
elif c == ';':
|
||||
s = ''
|
||||
elif c == '"':
|
||||
n = len(s)
|
||||
i = 1
|
||||
while i < n:
|
||||
c = s[i]
|
||||
i = i+1
|
||||
if c == '"': break
|
||||
if c == '\\': i = i+1
|
||||
tokens.append(s[:i])
|
||||
s = s[i:]
|
||||
elif c in operators:
|
||||
tokens.append(c)
|
||||
s = s[1:]
|
||||
else:
|
||||
n = len(s)
|
||||
i = 1
|
||||
while i < n:
|
||||
if s[i] in separators: break
|
||||
i = i+1
|
||||
tokens.append(s[:i])
|
||||
s = s[i:]
|
||||
return tokens
|
||||
|
||||
|
||||
# Tokenize a whole file (given as file object, not as file name).
|
||||
# Return a list of tokens (strings).
|
||||
#
|
||||
def tokenize_file(fp):
|
||||
tokens = []
|
||||
while 1:
|
||||
line = fp.readline()
|
||||
if not line: break
|
||||
tokens = tokens + tokenize_string(line)
|
||||
return tokens
|
||||
|
||||
|
||||
# Exception raised by parse_exr.
|
||||
#
|
||||
syntax_error = 'syntax error'
|
||||
|
||||
|
||||
# Parse an S-expression.
|
||||
# Input is a list of tokens as returned by tokenize_*().
|
||||
# Return a pair (expr, tokens)
|
||||
# where expr is a list representing the s-expression,
|
||||
# and tokens contains the remaining tokens.
|
||||
# May raise syntax_error.
|
||||
#
|
||||
def parse_expr(tokens):
|
||||
if (not tokens) or tokens[0] <> '(':
|
||||
raise syntax_error, 'expected "("'
|
||||
tokens = tokens[1:]
|
||||
expr = []
|
||||
while 1:
|
||||
if not tokens:
|
||||
raise syntax_error, 'missing ")"'
|
||||
if tokens[0] == ')':
|
||||
return expr, tokens[1:]
|
||||
elif tokens[0] == '(':
|
||||
subexpr, tokens = parse_expr(tokens)
|
||||
expr.append(subexpr)
|
||||
else:
|
||||
expr.append(tokens[0])
|
||||
tokens = tokens[1:]
|
||||
|
||||
|
||||
# Parse a file (given as file object, not as file name).
|
||||
# Return a list of parsed S-expressions found at the top level.
|
||||
#
|
||||
def parse_file(fp):
|
||||
tokens = tokenize_file(fp)
|
||||
exprlist = []
|
||||
while tokens:
|
||||
expr, tokens = parse_expr(tokens)
|
||||
exprlist.append(expr)
|
||||
return exprlist
|
||||
|
||||
|
||||
# EXAMPLE:
|
||||
#
|
||||
# The input
|
||||
# '(hip (hop hur-ray))'
|
||||
#
|
||||
# passed to tokenize_string() returns the token list
|
||||
# ['(', 'hip', '(', 'hop', 'hur-ray', ')', ')']
|
||||
#
|
||||
# When this is passed to parse_expr() it returns the expression
|
||||
# ['hip', ['hop', 'hur-ray']]
|
||||
# plus an empty token list (because there are no tokens left.
|
||||
#
|
||||
# When a file containing the example is passed to parse_file() it returns
|
||||
# a list whose only element is the output of parse_expr() above:
|
||||
# [['hip', ['hop', 'hur-ray']]]
|
||||
|
||||
|
||||
# TOKENIZING:
|
||||
#
|
||||
# Comments start with semicolon (;) and continue till the end of the line.
|
||||
#
|
||||
# Tokens are separated by whitespace, except the following characters
|
||||
# always form a separate token (outside strings):
|
||||
# ( ) '
|
||||
# Strings are enclosed in double quotes (") and backslash (\) is used
|
||||
# as escape character in strings.
|
|
@ -0,0 +1,104 @@
|
|||
Interface to CD-ROM player.
|
||||
|
||||
This module implements an interface to the built-in cd module. The
|
||||
intention is to provide a more user-friendly interface than the
|
||||
built-in module.
|
||||
|
||||
The module defines a class Readcd with several methods. The
|
||||
initialization of the class will try to open the CD player. This
|
||||
means that initialization will fail if the CD player is already in
|
||||
use. A RuntimeError will be raised by the cd module in that case.
|
||||
|
||||
The way to work with this module is as follows. The user specifies
|
||||
the parts of the CD that are to be read and he specifies callback
|
||||
functions which are to be called by the system. At some point he can
|
||||
tell the system to play. The specified parts of the CD will then be
|
||||
read and the callbacks will be called.
|
||||
|
||||
Initialization.
|
||||
===============
|
||||
|
||||
r = readcd.Readcd([cd-player [, mode]])
|
||||
|
||||
The optional arguments are the name of the CD device and the mode.
|
||||
When "mode" is not specified, it defaults to 'r' (which is the only
|
||||
possible value); when "cd-player" also isn't specified, it defaults
|
||||
to "None" which indicates the default CD player.
|
||||
|
||||
Methods.
|
||||
========
|
||||
|
||||
eject() -- Eject the CD from the player.
|
||||
|
||||
reset() -- Reset the list of data stretches to be played.
|
||||
|
||||
appendtrack(track) -- Append the specified track to the list of music
|
||||
stretches.
|
||||
|
||||
appendstretch(first, last) -- Append the stretch from "first" to "last"
|
||||
to the list of music stretches. Both "first" and "last" can be in one
|
||||
of four forms. "None": for "first", the beginning of the CD, for
|
||||
"last" the end of the CD; a single integer: a track number--playing
|
||||
starts at the beginning of the track or ends at the end of the
|
||||
specified track; a three-tuple: the absolute time from the start of
|
||||
the CD in minutes, seconds, frames; a four-tuple: track number and
|
||||
relative time within the track in minutes, seconds, frames.
|
||||
|
||||
settracks(tracklist) -- The argument is a list of integers. The list
|
||||
of stretches is set to argument list. The old list is discarded.
|
||||
|
||||
setcallback(type, func, arg) -- Set a callback function for "type".
|
||||
The function will be called as func(arg, type, data) where "arg" is
|
||||
the third argument of setcallback, "type" is the type of callback,
|
||||
"data" is type-dependent data. See the CDsetcallback(3) manual page
|
||||
for more information. The possible "type" arguments are defined in
|
||||
the CD module.
|
||||
|
||||
removecallback(type) -- Remove the callback for "type".
|
||||
|
||||
gettrackinfo([tracklist]) -- Return a list of tuples. Each tuple
|
||||
consists of start and length information of a track. The start and
|
||||
length information consist of three-tuples with minutes, seconds and
|
||||
frames. The optional tracklist argument gives a list of interesting
|
||||
track numbers. If no tracklist is specified, information about all
|
||||
tracks is returned.
|
||||
|
||||
getstatus() -- Return the status information of the CD.
|
||||
|
||||
play() -- Play the preprogrammed stretches of music from the CD. When
|
||||
nothing was programmed, the whole CD is played.
|
||||
|
||||
Specifying stretches.
|
||||
=====================
|
||||
|
||||
There are three methods available to specify a stretch of music to be
|
||||
played. The easiest way is to use "settracklist(tracklist)" with which
|
||||
a list of tracks can be specified. "settracklist(tracklist)" is
|
||||
equivalent to the sequence
|
||||
reset()
|
||||
for track in tracklist:
|
||||
appendtrack(track)
|
||||
|
||||
The next method is "appendtrack(track)" with which a whole track can be
|
||||
added to the list of music to be played. "appendtrack(track)" is
|
||||
equivalent to "appendstretch(track, track)".
|
||||
|
||||
The most complete method is "appendstretch(first, last)". Using this
|
||||
method, it is possible to specify any stretch of music.
|
||||
|
||||
When two consecutive tracks are played, it is possible to choose
|
||||
whether the pause that may be between the tracks is played as well or
|
||||
whether the pause should be skipped. When the end of a stretch is
|
||||
specified using a track number and the next stretch starts at the
|
||||
beginning of the following track and that was also specified using the
|
||||
track number (that is, both were specified as integers, not as tuples),
|
||||
the pause is played. When either value was specified using absolute
|
||||
time or track-relative time (that is, as three-tuple or as
|
||||
four-tuple), the pause will not be played.
|
||||
|
||||
Errors.
|
||||
=======
|
||||
|
||||
When an error occurs, an exception will be raised. Depending on where
|
||||
the error occurs, the exception may either be "readcd.Error" or
|
||||
"RuntimeError".
|
|
@ -0,0 +1,242 @@
|
|||
# Class interface to the CD module.
|
||||
|
||||
import cd, CD
|
||||
|
||||
Error = 'Readcd.Error'
|
||||
_Stop = 'Readcd.Stop'
|
||||
|
||||
def _doatime(self, cb_type, data):
|
||||
if ((data[0] * 60) + data[1]) * 75 + data[2] > self.end:
|
||||
## print 'done with list entry',`self.listindex`
|
||||
raise _Stop
|
||||
func, arg = self.callbacks[cb_type]
|
||||
if func:
|
||||
func(arg, cb_type, data)
|
||||
|
||||
def _dopnum(self, cb_type, data):
|
||||
if data > self.end:
|
||||
## print 'done with list entry',`self.listindex`
|
||||
raise _Stop
|
||||
func, arg = self.callbacks[cb_type]
|
||||
if func:
|
||||
func(arg, cb_type, data)
|
||||
|
||||
class Readcd:
|
||||
def __init__(self, *arg):
|
||||
if len(arg) == 0:
|
||||
self.player = cd.open()
|
||||
elif len(arg) == 1:
|
||||
self.player = cd.open(arg[0])
|
||||
elif len(arg) == 2:
|
||||
self.player = cd.open(arg[0], arg[1])
|
||||
else:
|
||||
raise Error, 'bad __init__ call'
|
||||
self.list = []
|
||||
self.callbacks = [(None, None)] * 8
|
||||
self.parser = cd.createparser()
|
||||
self.playing = 0
|
||||
self.end = 0
|
||||
self.status = None
|
||||
self.trackinfo = None
|
||||
|
||||
def eject(self):
|
||||
self.player.eject()
|
||||
self.list = []
|
||||
self.end = 0
|
||||
self.listindex = 0
|
||||
self.status = None
|
||||
self.trackinfo = None
|
||||
if self.playing:
|
||||
## print 'stop playing from eject'
|
||||
raise _Stop
|
||||
|
||||
def pmsf2msf(self, track, min, sec, frame):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
if track < self.status[5] or track > self.status[6]:
|
||||
raise Error, 'track number out of range'
|
||||
if not self.trackinfo:
|
||||
self.cacheinfo()
|
||||
start, total = self.trackinfo[track]
|
||||
start = ((start[0] * 60) + start[1]) * 75 + start[2]
|
||||
total = ((total[0] * 60) + total[1]) * 75 + total[2]
|
||||
block = ((min * 60) + sec) * 75 + frame
|
||||
if block > total:
|
||||
raise Error, 'out of range'
|
||||
block = start + block
|
||||
min, block = divmod(block, 75*60)
|
||||
sec, frame = divmod(block, 75)
|
||||
return min, sec, frame
|
||||
|
||||
def reset(self):
|
||||
self.list = []
|
||||
|
||||
def appendtrack(self, track):
|
||||
self.appendstretch(track, track)
|
||||
|
||||
def appendstretch(self, start, end):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
if not start:
|
||||
start = 1
|
||||
if not end:
|
||||
end = self.status[6]
|
||||
if type(end) == type(0):
|
||||
if end < self.status[5] or end > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
else:
|
||||
l = len(end)
|
||||
if l == 4:
|
||||
prog, min, sec, frame = end
|
||||
if prog < self.status[5] or prog > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
end = self.pmsf2msf(prog, min, sec, frame)
|
||||
elif l <> 3:
|
||||
raise Error, 'syntax error'
|
||||
if type(start) == type(0):
|
||||
if start < self.status[5] or start > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
if len(self.list) > 0:
|
||||
s, e = self.list[-1]
|
||||
if type(e) == type(0):
|
||||
if start == e+1:
|
||||
start = s
|
||||
del self.list[-1]
|
||||
else:
|
||||
l = len(start)
|
||||
if l == 4:
|
||||
prog, min, sec, frame = start
|
||||
if prog < self.status[5] or prog > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
start = self.pmsf2msf(prog, min, sec, frame)
|
||||
elif l <> 3:
|
||||
raise Error, 'syntax error'
|
||||
self.list.append((start, end))
|
||||
|
||||
def settracks(self, list):
|
||||
self.list = []
|
||||
for track in list:
|
||||
self.appendtrack(track)
|
||||
|
||||
def setcallback(self, cb_type, func, arg):
|
||||
if cb_type < 0 or cb_type >= 8:
|
||||
raise Error, 'type out of range'
|
||||
self.callbacks[cb_type] = (func, arg)
|
||||
if self.playing:
|
||||
start, end = self.list[self.listindex]
|
||||
if type(end) == type(0):
|
||||
if cb_type <> CD.PNUM:
|
||||
self.parser.setcallback(cb_type, func, arg)
|
||||
else:
|
||||
if cb_type <> CD.ATIME:
|
||||
self.parser.setcallback(cb_type, func, arg)
|
||||
|
||||
def removecallback(self, cb_type):
|
||||
if cb_type < 0 or cb_type >= 8:
|
||||
raise Error, 'type out of range'
|
||||
self.callbacks[cb_type] = (None, None)
|
||||
if self.playing:
|
||||
start, end = self.list[self.listindex]
|
||||
if type(end) == type(0):
|
||||
if cb_type <> CD.PNUM:
|
||||
self.parser.removecallback(cb_type)
|
||||
else:
|
||||
if cb_type <> CD.ATIME:
|
||||
self.parser.removecallback(cb_type)
|
||||
|
||||
def gettrackinfo(self, *arg):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
if not self.trackinfo:
|
||||
self.cacheinfo()
|
||||
if len(arg) == 0:
|
||||
return self.trackinfo[self.status[5]:self.status[6]+1]
|
||||
result = []
|
||||
for i in arg:
|
||||
if i < self.status[5] or i > self.status[6]:
|
||||
raise Error, 'range error'
|
||||
result.append(self.trackinfo[i])
|
||||
return result
|
||||
|
||||
def cacheinfo(self):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
self.trackinfo = []
|
||||
for i in range(self.status[5]):
|
||||
self.trackinfo.append(None)
|
||||
for i in range(self.status[5], self.status[6]+1):
|
||||
self.trackinfo.append(self.player.gettrackinfo(i))
|
||||
|
||||
def cachestatus(self):
|
||||
self.status = self.player.getstatus()
|
||||
if self.status[0] == CD.NODISC:
|
||||
self.status = None
|
||||
raise Error, 'no disc in player'
|
||||
|
||||
def getstatus(self):
|
||||
return self.player.getstatus()
|
||||
|
||||
def play(self):
|
||||
if not self.status:
|
||||
self.cachestatus()
|
||||
size = self.player.bestreadsize()
|
||||
self.listindex = 0
|
||||
self.playing = 0
|
||||
for i in range(8):
|
||||
func, arg = self.callbacks[i]
|
||||
if func:
|
||||
self.parser.setcallback(i, func, arg)
|
||||
else:
|
||||
self.parser.removecallback(i)
|
||||
if len(self.list) == 0:
|
||||
for i in range(self.status[5], self.status[6]+1):
|
||||
self.appendtrack(i)
|
||||
try:
|
||||
while 1:
|
||||
if not self.playing:
|
||||
if self.listindex >= len(self.list):
|
||||
return
|
||||
start, end = self.list[self.listindex]
|
||||
if type(start) == type(0):
|
||||
dummy = self.player.seektrack(
|
||||
start)
|
||||
else:
|
||||
min, sec, frame = start
|
||||
dummy = self.player.seek(
|
||||
min, sec, frame)
|
||||
if type(end) == type(0):
|
||||
self.parser.setcallback(
|
||||
CD.PNUM, _dopnum, self)
|
||||
self.end = end
|
||||
func, arg = \
|
||||
self.callbacks[CD.ATIME]
|
||||
if func:
|
||||
self.parser.setcallback(CD.ATIME, func, arg)
|
||||
else:
|
||||
self.parser.removecallback(CD.ATIME)
|
||||
else:
|
||||
min, sec, frame = end
|
||||
self.parser.setcallback(
|
||||
CD.ATIME, _doatime,
|
||||
self)
|
||||
self.end = (min * 60 + sec) * \
|
||||
75 + frame
|
||||
func, arg = \
|
||||
self.callbacks[CD.PNUM]
|
||||
if func:
|
||||
self.parser.setcallback(CD.PNUM, func, arg)
|
||||
else:
|
||||
self.parser.removecallback(CD.PNUM)
|
||||
self.playing = 1
|
||||
data = self.player.readda(size)
|
||||
if data == '':
|
||||
self.playing = 0
|
||||
self.listindex = self.listindex + 1
|
||||
continue
|
||||
try:
|
||||
self.parser.parseframe(data)
|
||||
except _Stop:
|
||||
self.playing = 0
|
||||
self.listindex = self.listindex + 1
|
||||
finally:
|
||||
self.playing = 0
|
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
case `uname -sr` in
|
||||
'IRIX '[45].*) ;;
|
||||
*) echo Probably not on an IRIX system 1>&2
|
||||
exit 1;;
|
||||
esac
|
||||
set -v
|
||||
h2py /usr/include/sys/fcntl.h
|
||||
h2py /usr/include/sys/file.h
|
||||
h2py /usr/include/sys/socket.h
|
||||
h2py -i '(u_long)' /usr/include/netinet/in.h
|
||||
h2py /usr/include/sys/termios.h
|
||||
h2py /usr/include/errno.h
|
|
@ -0,0 +1,97 @@
|
|||
# Convert "arbitrary" image files to rgb files (SGI's image format).
|
||||
# Input may be compressed.
|
||||
# The uncompressed file type may be PBM, PGM, PPM, GIF, TIFF, or Sun raster.
|
||||
# An exception is raised if the file is not of a recognized type.
|
||||
# Returned filename is either the input filename or a temporary filename;
|
||||
# in the latter case the caller must ensure that it is removed.
|
||||
# Other temporary files used are removed by the function.
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
import pipes
|
||||
import imghdr
|
||||
|
||||
table = {}
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['ppm'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['pnm'] = t
|
||||
table['pgm'] = t
|
||||
table['pbm'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('fromgif $IN $OUT', 'ff')
|
||||
table['gif'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('tifftopnm', '--')
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['tiff'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('rasttopnm', '--')
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['rast'] = t
|
||||
|
||||
t = pipes.Template()
|
||||
t.append('djpeg', '--')
|
||||
t.append('(PATH=$PATH:/ufs/guido/bin/sgi; exec pnmtoppm)', '--')
|
||||
t.append('fromppm $IN $OUT', 'ff')
|
||||
table['jpeg'] = t
|
||||
|
||||
uncompress = pipes.Template()
|
||||
uncompress.append('uncompress', '--')
|
||||
|
||||
|
||||
error = 'torgb.error' # Exception
|
||||
|
||||
def torgb(filename):
|
||||
temps = []
|
||||
ret = None
|
||||
try:
|
||||
ret = _torgb(filename, temps)
|
||||
finally:
|
||||
for temp in temps[:]:
|
||||
if temp <> ret:
|
||||
try:
|
||||
os.unlink(temp)
|
||||
except os.error:
|
||||
pass
|
||||
temps.remove(temp)
|
||||
return ret
|
||||
|
||||
def _torgb(filename, temps):
|
||||
if filename[-2:] == '.Z':
|
||||
fname = tempfile.mktemp()
|
||||
temps.append(fname)
|
||||
sts = uncompress.copy(filename, fname)
|
||||
if sts:
|
||||
raise error, filename + ': uncompress failed'
|
||||
else:
|
||||
fname = filename
|
||||
try:
|
||||
ftype = imghdr.what(fname)
|
||||
except IOError, msg:
|
||||
if type(msg) == type(()) and len(msg) == 2 and \
|
||||
type(msg[0]) == type(0) and type(msg[1]) == type(''):
|
||||
msg = msg[1]
|
||||
if type(msg) <> type(''):
|
||||
msg = `msg`
|
||||
raise error, filename + ': ' + msg
|
||||
if ftype == 'rgb':
|
||||
return fname
|
||||
if ftype == None or not table.has_key(ftype):
|
||||
raise error, \
|
||||
filename + ': unsupported image file type ' + `ftype`
|
||||
temp = tempfile.mktemp()
|
||||
sts = table[ftype].copy(fname, temp)
|
||||
if sts:
|
||||
raise error, filename + ': conversion to rgb failed'
|
||||
return temp
|
Loading…
Reference in New Issue