Merge libs/ardour and gtk2_ardour with 2.0-ongoing R2837.

git-svn-id: svn://localhost/ardour2/trunk@2883 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2008-01-10 21:20:59 +00:00
parent 73dd9d37e7
commit bb457bb960
168 changed files with 11821 additions and 5338 deletions

View file

@ -1,48 +1,77 @@
/*
Copyright (C) 2006 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __au_plugin_ui_h__
#define __au_plugin_ui_h__
#include <boost/shared_ptr.hpp>
#ifndef __gtk2_ardour_auplugin_ui_h__
#define __gtk2_ardour_auplugin_ui_h__
#include <AppKit/AppKit.h>
#include <Carbon/Carbon.h>
#include <AudioUnit/AudioUnit.h>
/* fix up stupid apple macros */
#undef check
#undef require
#undef verify
#include <gtkmm/box.h>
#include "plugin_ui.h"
namespace ARDOUR {
class AUPlugin;
class PluginInsert;
class IOProcessor;
}
class AUPluginUI
class AUPluginUI : public PlugUIBase, public Gtk::VBox
{
public:
AUPluginUI (boost::shared_ptr<ARDOUR::PluginInsert>);
~AUPluginUI ();
gint get_preferred_height () { return prefheight; }
gint get_preferred_width () { return prefwidth; }
bool start_updating(GdkEventAny*);
bool stop_updating(GdkEventAny*);
virtual void activate ();
virtual void deactivate ();
void on_realize ();
void on_show ();
OSStatus carbon_event (EventHandlerCallRef nextHandlerRef, EventRef event);
private:
WindowRef wr;
boost::shared_ptr<ARDOUR::AUPlugin> au;
int prefheight;
int prefwidth;
void plugin_going_away (ARDOUR::IOProcessor*);
Component get_carbon_view_component(OSType subtype);
/* Cocoa */
NSWindow* cocoa_window;
NSScrollView* scroll_view;
NSView* au_view;
/* Carbon */
NSWindow* cocoa_parent;
ComponentDescription carbon_descriptor;
AudioUnitCarbonView editView;
WindowRef carbon_window;
EventHandlerRef carbon_event_handler;
bool carbon_parented;
bool cocoa_parented;
void test_view_support (bool&, bool&);
bool test_cocoa_view_support ();
bool test_carbon_view_support ();
int create_carbon_view (bool generic);
int create_cocoa_view ();
int parent_carbon_window ();
int parent_cocoa_window ();
NSWindow* get_nswindow();
bool plugin_class_valid (Class pluginClass);
};
#endif // __au_plugin_ui_h__
#endif /* __gtk2_ardour_auplugin_ui_h__ */