Sha256: ccc44705305917a3454cd57dfc8aac72726feaa83485460895d332953db17bde

Contents?: true

Size: 1.85 KB

Versions: 17

Compression:

Stored size: 1.85 KB

Contents

#import <UIKit/UIKit.h>

#import "Recorder.h"
#import "Viewer.h"

@interface UIApplication (Recording)

-(void)_addRecorder:(id)recorder;
-(void)_removeRecorder:(id)recorder;
-(void)_playbackEvents:(NSArray*)events atPlaybackRate:(float)playbackRate messageWhenDone:(id)target withSelector:(SEL)selector;

@end

static Recorder *sharedRecorder = nil;

@implementation Recorder

+(Recorder *)sharedRecorder {
	if (sharedRecorder == nil) {
		sharedRecorder = [[super allocWithZone:NULL] init];
	}
	return sharedRecorder;
}

-(id)init {
	self = [super init];

	eventList = [[NSMutableArray alloc] init];

	return self;
}

-(void)dealloc {
	[eventList release];
	[super dealloc];
}

-(void)record {
	[eventList removeAllObjects];

	NSLog(@"Starting recording");

	[[UIApplication sharedApplication] _addRecorder: self];
}

-(void)saveToFile:(NSString*)path {
	NSLog(@"Saving events to file: %@", path);

	[eventList writeToFile: path atomically: YES];
}

-(void)stop {
	NSLog(@"Stopping recording");

	[[UIApplication sharedApplication] _removeRecorder: self];
}

-(void)recordApplicationEvent:(NSDictionary*)event {
	NSLog(@"Recorded event: %@", event);

	[eventList addObject:event];
}

-(void)load:(NSArray*)events {
	NSLog(@"Loading events");

	[eventList setArray: events];
}

-(void)loadFromFile:(NSString*)path {
	NSLog(@"Loading events from file: %@", path);

	[eventList setArray: [NSMutableArray arrayWithContentsOfFile: path]];
}

-(void)playbackWithDelegate: (id)delegate doneSelector:(SEL)doneSelector {
	NSLog(@"Playback");

	playbackDelegate = delegate;
	playbackDoneSelector = doneSelector;

	[[UIApplication sharedApplication] _playbackEvents: eventList atPlaybackRate: 1.0f messageWhenDone: self withSelector: @selector(playbackDone:)];
}

-(void)playbackDone:(NSDictionary *)details {
	NSLog(@"Playback complete");
	[playbackDelegate performSelector: playbackDoneSelector];
}

@end

Version data entries

17 entries across 13 versions & 1 rubygems

Version Path
iCuke-0.7.0 ext/iCuke/Recorder.m
iCuke-0.6.6 ext/iCuke/Recorder.m
iCuke-0.6.5 ext/iCuke/Recorder.m
iCuke-0.6.4 ext/iCuke/Recorder.m
iCuke-0.6.3 ext/iCuke/sdk4.0/Recorder.m
iCuke-0.6.3 ext/iCuke/sdk3.1/Recorder.m
iCuke-0.6.2 ext/iCuke/sdk4.0/Recorder.m
iCuke-0.6.2 ext/iCuke/sdk3.1/Recorder.m
iCuke-0.6.1 ext/iCuke/sdk4.0/Recorder.m
iCuke-0.6.1 ext/iCuke/sdk3.1/Recorder.m
iCuke-0.6.0 ext/iCuke/sdk3.1/Recorder.m
iCuke-0.6.0 ext/iCuke/sdk4.0/Recorder.m
iCuke-0.5.5 ext/iCuke/Recorder.m
iCuke-0.5.4 ext/iCuke/Recorder.m
iCuke-0.5.3 ext/iCuke/Recorder.m
iCuke-0.5.2 ext/iCuke/Recorder.m
iCuke-0.5.1 ext/iCuke/Recorder.m