00001 /*00002 *00003 * Copyright (c) 2006, Ben Suffolk <ben@usbdmx.com>00004 * All rights reserved.00005 *00006 * Redistribution and use in source and binary forms, with or without 00007 * modification, are permitted provided that the following conditions are met:00008 *00009 * 1. Redistributions of source code must retain the above copyright notice,00010 * this list of conditions and the following disclaimer.00011 *00012 * 2. Redistributions in binary form must reproduce the above copyright notice,00013 * this list of conditions and the following disclaimer in the documentation00014 * and/or other materials provided with the distribution.00015 *00016 * 3. Neither the name of the usbdmx.com web site nor the names of its 00017 * contributors may be used to endorse or promote products derived from this00018 * software without specific prior written permission.00019 *00020 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00021 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00022 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00023 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00024 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00025 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 00026 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00027 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00028 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00029 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE00030 * POSSIBILITY OF SUCH DAMAGE.00031 *00032 * $Id: LOHWUSBDMX.h 186 2007-09-28 13:33:35Z ben.suffolk $00033 *00034 */00035
00036 #import <Cocoa/Cocoa.h>00037 #import <LightsOn/ftd2xx.h>00038 #import "LOHWBridge.h"00039 #include <pthread.h>00040
00041 #define LOHWD2xxUSBDMXUpgradeRequiredNotification @"LOHWD2xxUSBDMXUpgradeRequiredNotification"00042
00054@interface LOHWD2xxUSBDMX : LOHWBridge00055 {
00056 BOOL TX;
00057 BOOL RX;
00058
00059unsignedcharTXStartCode;
00060unsignedcharRXStartCode;
00061unsignedintTXLastChannel;
00062 BOOL blackout;
00063
00064unsignedcharout_universe[513];
00065
00066 // Physical file handeling 00067 NSString *serialNumber;
00068 FT_HANDLE ftHandle;
00069 BOOL isOpen;
00070
00071unsignedcharversionByte;
00072 NSString *versionString;
00073
00074 // The Receiver thread details 00075 BOOL shouldReceiverBeRunning;
00076 NSThread *receiverThread;
00077 NSLock *threadRunningLock;
00078
00079 // The transmitter thread details00080 BOOL shouldTransmitterBeRunning;
00081 NSThread *transmitterThread;
00082 NSLock *transmitterRunningLock;
00083
00084 pthread_mutex_t TXSentMutex;
00085 pthread_cond_t TXSentCondition;
00086 BOOL TXSent;
00087 BOOL TXData;
00088
00089 }
00090
00091
00107 - (id)initWithIdentifier:(NSString *)identifier;
00108
00109
00119 + (NSArray *)interfaceIdentifiers;
00120
00121
00127 - (NSString *)versionString;
00128
00129
00135 - (unsigned char)versionByte;
00136
00137
00138 - (BOOL)reopen;
00139
00140 @end00141
00142