ftp.nice.ch/pub/next/graphics/video/VideoTeXT.1.1a.N.bs.tar.gz#/VideoTeXT1.1a/Quelltexte/PageSupplier.h

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.