mirror of
https://github.com/ksherlock/ample.git
synced 2024-09-27 15:58:52 +00:00
4c003007f5
it still needs work to allow sockets and opt-out of disk image drag-and-drop.
62 lines
1.1 KiB
Objective-C
62 lines
1.1 KiB
Objective-C
//
|
|
// Media.m
|
|
// Ample
|
|
//
|
|
// Created by Kelvin Sherlock on 3/7/2021.
|
|
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import "Media.h"
|
|
|
|
const Media EmptyMedia = { 0 };
|
|
|
|
struct Media MediaFromDictionary(NSDictionary *dict) {
|
|
|
|
Media m = { 0 };
|
|
|
|
#define _(name) m.name = [[dict objectForKey: @ # name] unsignedIntValue]
|
|
_(cass);
|
|
_(cdrom);
|
|
_(hard);
|
|
_(floppy_3_5);
|
|
_(floppy_5_25);
|
|
_(pseudo_disk);
|
|
_(bitbanger);
|
|
|
|
return m;
|
|
#undef _
|
|
}
|
|
|
|
void MediaAdd(Media *dest, const Media *src) {
|
|
|
|
if (!src || !dest) return;
|
|
|
|
#define _(name) dest->name += src->name;
|
|
_(cass);
|
|
_(cdrom);
|
|
_(hard);
|
|
_(floppy_3_5);
|
|
_(floppy_5_25);
|
|
_(pseudo_disk);
|
|
_(bitbanger);
|
|
#undef _
|
|
}
|
|
|
|
BOOL MediaEqual(const Media *lhs, const Media *rhs) {
|
|
if (lhs == rhs) return YES;
|
|
if (!lhs || !rhs) return NO;
|
|
|
|
|
|
#define _(name) if (lhs->name != rhs->name) return NO;
|
|
_(cass);
|
|
_(cdrom);
|
|
_(hard);
|
|
_(floppy_3_5);
|
|
_(floppy_5_25);
|
|
_(pseudo_disk);
|
|
_(bitbanger);
|
|
return YES;
|
|
#undef _
|
|
}
|