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