This is GloveWindow.m in view mode; [Download] [Up]
/* Generated by Interface Builder */
#import "GloveWindow.h"
#import "GloveView.h"
#import <appkit/Application.h>
#import <appkit/Button.h>
#import <appkit/Matrix.h>
#import <dpsclient/psops.h>
#import <dpsclient/wraps.h>
@implementation GloveWindow
void timeHandler(DPSTimedEntry teNumber, double now, void *userData)
{
[(id)userData getGloveData];
}
- appDidInit: sender
{
powerGlove = [[PowerGlove alloc] init];
[powerGlove init];
[powerGlove setxHyst:0 yHyst:0 zHyst:0];
timerNum = DPSAddTimedEntry(0.10,
&timeHandler,
self,
NX_BASETHRESHOLD);
return self;
}
- getGloveData
{
int knuckle;
if( [powerGlove dspIsRunning] == NO )
fprintf(stderr, "DSP not running....\n");
[[rawDataMatrix cellAt: 0: 0] setIntValue: [powerGlove gloveX]];
[[rawDataMatrix cellAt: 1: 0] setIntValue: [powerGlove gloveY]];
[[rawDataMatrix cellAt: 2: 0] setIntValue: [powerGlove gloveZ]];
[[rawDataMatrix cellAt: 3: 0] setIntValue: [powerGlove gloveRot]];
[[rawDataMatrix cellAt: 4: 0] setIntValue: [powerGlove thumb]];
[[rawDataMatrix cellAt: 5: 0] setIntValue: [powerGlove index]];
[[rawDataMatrix cellAt: 6: 0] setIntValue: [powerGlove middle]];
[[rawDataMatrix cellAt: 7: 0] setIntValue: [powerGlove ring]];
[[rawDataMatrix cellAt: 8: 0] setStringValue:
[powerGlove padUp] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 9: 0] setStringValue:
[powerGlove padDown] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 10: 0] setStringValue:
[powerGlove padLeft] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 11: 0] setStringValue:
[powerGlove padRight] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 12: 0] setStringValue:
[powerGlove aPressed] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 13: 0] setStringValue:
[powerGlove bPressed] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 14: 0] setStringValue:
[powerGlove startPressed] ? "Yes" : "No" ];
[[rawDataMatrix cellAt: 15: 0] setStringValue:
[powerGlove selectPressed] ? "Yes" : "No" ];
for( knuckle = 0; knuckle < 4; knuckle ++ )
{
[thumbFingerMatrix setState: ([powerGlove thumb] > 2 - knuckle)
at: knuckle: 0];
[indexFingerMatrix setState: ([powerGlove index] > 2 - knuckle)
at: knuckle: 0];
[middleFingerMatrix setState:
([powerGlove middle] > 2 - knuckle)
at: knuckle: 0];
[ringFingerMatrix setState: ([powerGlove ring] > 2 - knuckle)
at: knuckle: 0];
[littleFingerMatrix setState: ([powerGlove ring] > 2 - knuckle)
at: knuckle: 0];
}
[aButton setState: [powerGlove aPressed]];
[bButton setState: [powerGlove bPressed]];
[startButton setState: [powerGlove startPressed]];
[selectButton setState: [powerGlove selectPressed]];
[upButton setState: [powerGlove padUp]];
[downButton setState: [powerGlove padDown]];
[leftButton setState: [powerGlove padLeft]];
[rightButton setState: [powerGlove padRight]];
[gloveView setX: [powerGlove gloveX]
y: [powerGlove gloveY]
z: [powerGlove gloveZ]
roll: [powerGlove gloveRot]];
[self displayIfNeeded];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.