1df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger/* 2df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * Copyright 2009, The Android Open Source Project 3df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * 4df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * Redistribution and use in source and binary forms, with or without 5df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * modification, are permitted provided that the following conditions 6df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * are met: 7df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * * Redistributions of source code must retain the above copyright 8df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * notice, this list of conditions and the following disclaimer. 9df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * * Redistributions in binary form must reproduce the above copyright 10df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * notice, this list of conditions and the following disclaimer in the 11df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * documentation and/or other materials provided with the distribution. 12df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * 13df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger */ 25df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 26df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger/* 27df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in 28df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger consideration of your agreement to the following terms, and your use, installation, 29df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger modification or redistribution of this Apple software constitutes acceptance of these 30df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger terms. If you do not agree with these terms, please do not use, install, modify or 31df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger redistribute this Apple software. 32df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 33df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger In consideration of your agreement to abide by the following terms, and subject to these 34df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger terms, Apple grants you a personal, non-exclusive license, under Apple�s copyrights in 35df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger this original Apple software (the "Apple Software"), to use, reproduce, modify and 36df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger redistribute the Apple Software, with or without modifications, in source and/or binary 37df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger forms; provided that if you redistribute the Apple Software in its entirety and without 38df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger modifications, you must retain this notice and the following text and disclaimers in all 39df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger such redistributions of the Apple Software. Neither the name, trademarks, service marks 40df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger or logos of Apple Computer, Inc. may be used to endorse or promote products derived from 41df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger the Apple Software without specific prior written permission from Apple. Except as expressly 42df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger stated in this notice, no other rights or licenses, express or implied, are granted by Apple 43df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger herein, including but not limited to any patent rights that may be infringed by your 44df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger derivative works or by other works in which the Apple Software may be incorporated. 45df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 46df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, 47df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, 48df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS 49df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS. 50df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 51df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL 52df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 53df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, 54df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND 55df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR 56df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 57df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger */ 58df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 59df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger#ifndef PluginObject__DEFINED 60df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger#define PluginObject__DEFINED 61df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 62df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger#include "main.h" 63df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 64df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenbergerclass SubPlugin { 65df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenbergerpublic: 66df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger SubPlugin(NPP inst) : m_inst(inst) {} 67df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger virtual ~SubPlugin() {} 68ccee91085913ccb486b063616afae13b53b2e92bBen Murdoch virtual int16_t handleEvent(const ANPEvent* evt) = 0; 69df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 70df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger NPP inst() const { return m_inst; } 71df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 72df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenbergerprivate: 73df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger NPP m_inst; 74df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger}; 75df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 76df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenbergertypedef struct PluginObject { 77df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger NPObject header; 78df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger NPP npp; 79df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger NPWindow* window; 80df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 81df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger SubPlugin* subPlugin; 82df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 83df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger} PluginObject; 84df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 85df8a3f31d871db25e952972c2eb346a71186e9e3Derek SollenbergerNPClass *getPluginClass(void); 86df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger 87df8a3f31d871db25e952972c2eb346a71186e9e3Derek Sollenberger#endif // PluginObject__DEFINED 88