This is PageSupplier.h in view mode; [Download] [Up]
/* (c) 1992 Dirk Schwarzhans, Matthias Braun
Use under the terms of the GNU General Public License */
#import <cthreads.h>
#import <mach.h>
#import <objc/Object.h>
#import <objc/HashTable.h>
#import <objc/Storage.h>
#import <appkit/Window.h>
#import "pageNumber.h"
#import "VTSpeaker.h"
typedef struct
{
const unsigned char *data;
Window *window;
unsigned tag;
} PagePacket;
@interface PageSupplier:Object
{
port_t dev_port, owner_port, cmd_port, read_port,
reply_port; // Ports för den DSP
VTSpeaker *speaker;
port_t speakerReplyPort;
// Zwischenspeicher der DSPThread
char clockString[9];
char pageString[4];
BOOL interruptedSequenz;
// Kommunikationsbreich zwischen Hauptthread und DSPThread
volatile BOOL clockMessages; // Uhr eingeschaltet
volatile BOOL pageMessages; // Seitennummern an
mutex_t memoryInUse; // för die folgenden Daten
HashTable *allPages;
HashTable *windowTable;
Window *actualWindow;
volatile unsigned tag;
// Zwischenspeicher, wenn momentan bearbeitete Seite ankommt
volatile BOOL depositValid; // Seite unterwegs
volatile VTPageNumber depositPage; // Seitennummer
volatile VTSubpageNumber depositSubpage; // Unterseitennummer
volatile BOOL depositFull; // angekommen
Storage *deposit; // eigentliche Daten
volatile BOOL threadsAborted;
volatile BOOL DSPThreadAborted;
// Kommunikationsbereich zwischen DSPThread und comThread
mutex_t comMem; // Mutex zum Schutz
condition_t comMemChanged;
volatile BOOL pageReady; // Seite angekommen
volatile PagePacket pagePacket; // Seitendaten
volatile BOOL clockReady; // Uhr angekommen
volatile char clockString2[9]; // Uhrendaten
volatile BOOL pageNumReady; // Seitennummer angek.
volatile char pageString2[4]; // Seitennummer
volatile BOOL error; // Fehler oder Abbruch
volatile char *errorString; // NULL bei Abbruch
mutex_t sending; // Senden an DSP aktiv
}
- init; // nicht sehr sinnvoll
- initPort:(port_t)port;
- stopThreads;
- free;
- requestClockMessages:(BOOL)flag;
- requestPageMessages:(BOOL)flag;
- writeModeRegister:(unsigned char)data;
- writeDisplayControlRegisters:(unsigned char)normal:(unsigned char)news;
- writeDisplayModeRegister:(unsigned char)data;
- (unsigned)forgetAll;
- (unsigned)setMainWindow:(Window *)window;
- (unsigned)windowClosed:(Window *)window;
- (unsigned)pageRequest:(VTPageNumber)number;
- (unsigned)pageRequest:(VTPageNumber)page subpage:(VTSubpageNumber)subpage;
- (unsigned)doCareSubpage:(VTSubpageNumber)number;
- (unsigned)dontCareSubpage;
- (unsigned)holdPage:(BOOL)hold;
- (unsigned)nextSubpage:(VTSubpageNumber *)requested;
- (unsigned)previousSubpage:(VTSubpageNumber *)requested;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.