diff --git a/aegisub/auto4_auto3.cpp b/aegisub/auto4_auto3.cpp index 4aec05c50..4cc69f375 100644 --- a/aegisub/auto4_auto3.cpp +++ b/aegisub/auto4_auto3.cpp @@ -44,6 +44,7 @@ #include #include #include "auto4_auto3.h" +#include "auto4_auto3_factory.h" #include "../auto3/auto3.h" #include "options.h" #include "string_codec.h" @@ -736,6 +737,25 @@ namespace Automation4 { Create(); } + Auto3ScriptFactory::Auto3ScriptFactory() + { + engine_name = _T("Legacy Automation 3"); + filename_pattern = _T("*.auto3"); + Register(this); + } + + Auto3ScriptFactory::~Auto3ScriptFactory() { } + + Script* Auto3ScriptFactory::Produce(const wxString &filename) const + { + if (filename.Right(6).Lower() == _T(".auto3")) { + return new Auto3Script(filename); + } else { + return 0; + } + } + + }; #endif // WITH_AUTO3 diff --git a/aegisub/auto4_auto3.h b/aegisub/auto4_auto3.h index 7957db7bd..ced63766a 100644 --- a/aegisub/auto4_auto3.h +++ b/aegisub/auto4_auto3.h @@ -166,29 +166,6 @@ namespace Automation4 { virtual void Reload(); }; - - // Auto3ScriptFactory - class Auto3ScriptFactory : public ScriptFactory { - public: - Auto3ScriptFactory() - { - engine_name = _T("Legacy Automation 3"); - filename_pattern = _T("*.auto3"); - Register(this); - } - - ~Auto3ScriptFactory() { } - - virtual Script* Produce(const wxString &filename) const - { - if (filename.Right(6).Lower() == _T(".auto3")) { - return new Auto3Script(filename); - } else { - return 0; - } - } - }; - }; #endif diff --git a/aegisub/auto4_auto3_factory.h b/aegisub/auto4_auto3_factory.h new file mode 100644 index 000000000..df7246a83 --- /dev/null +++ b/aegisub/auto4_auto3_factory.h @@ -0,0 +1,57 @@ +// Copyright (c) 2007, Niels Martin Hansen +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:jiifurusu@gmail.com +// + +// Scripting engine for legacy Automation 3 compatibility + +#pragma once + +#ifndef _AUTO4_AUTO3_FACTORY_H +#define _AUTO4_AUTO3_FACTORY_H + +#include "auto4_base.h" + +namespace Automation4 { + + // Auto3ScriptFactory + class Auto3ScriptFactory : public ScriptFactory { + public: + Auto3ScriptFactory(); + ~Auto3ScriptFactory(); + Script* Produce(const wxString &filename) const; + }; + +}; + +#endif diff --git a/aegisub/auto4_perl.cpp b/aegisub/auto4_perl.cpp index c3ce6bb91..4518fa998 100644 --- a/aegisub/auto4_perl.cpp +++ b/aegisub/auto4_perl.cpp @@ -39,6 +39,7 @@ #include "auto4_perl.h" #include "auto4_perl_console.h" +#include "auto4_perl_factory.h" #include "options.h" #include "ass_style.h" diff --git a/aegisub/auto4_perl.h b/aegisub/auto4_perl.h index 26fe90c95..704c2ab4e 100644 --- a/aegisub/auto4_perl.h +++ b/aegisub/auto4_perl.h @@ -239,23 +239,6 @@ namespace Automation4 { static AssFile *MakeAssLines(AssFile *ass, AV *lines); }; - -/////////////////////// -// PerlScriptFactory -// - class PerlScriptFactory : public ScriptFactory { - private: - PerlInterpreter *parser; - bool loaded; - - public: - PerlScriptFactory(); - ~PerlScriptFactory(); - - void RegisterFactory(); - - Script* Produce(const wxString &filename) const; - }; }; diff --git a/aegisub/auto4_perl_factory.h b/aegisub/auto4_perl_factory.h new file mode 100644 index 000000000..7261099d8 --- /dev/null +++ b/aegisub/auto4_perl_factory.h @@ -0,0 +1,67 @@ +// Copyright (c) 2008, Simone Cociancich +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// * Neither the name of the Aegisub Group nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// ----------------------------------------------------------------------------- +// +// AEGISUB +// +// Website: http://aegisub.cellosoft.com +// Contact: mailto:jiifurusu@gmail.com +// + + +#pragma once +#ifndef _AUTO4_PERL_FACTORY_H +#define _AUTO4_PERL_FACTORY_H + + +#include "auto4_base.h" +struct interpreter; +typedef interpreter PerlInterpreter; + +namespace Automation4 { + + /////////////////////// + // PerlScriptFactory + // + class PerlScriptFactory : public ScriptFactory { + private: + PerlInterpreter *parser; + bool loaded; + + public: + PerlScriptFactory(); + ~PerlScriptFactory(); + + void RegisterFactory(); + + Script* Produce(const wxString &filename) const; + }; +}; + + +#endif diff --git a/aegisub/plugin_manager.cpp b/aegisub/plugin_manager.cpp index 61292e0e8..c1605eddf 100644 --- a/aegisub/plugin_manager.cpp +++ b/aegisub/plugin_manager.cpp @@ -46,10 +46,10 @@ #include "auto4_lua_factory.h" #endif #ifdef WITH_PERL -#include "auto4_perl.h" +#include "auto4_perl_factory.h" #endif #ifdef WITH_AUTO3 -#include "auto4_auto3.h" +#include "auto4_auto3_factory.h" #endif #ifdef WITH_RUBY #include "auto4_ruby_factory.h" diff --git a/build/aegisub_vs2005/aegisub_vs2005.vcproj b/build/aegisub_vs2005/aegisub_vs2005.vcproj index f70a4abc1..6b0fd0e47 100644 --- a/build/aegisub_vs2005/aegisub_vs2005.vcproj +++ b/build/aegisub_vs2005/aegisub_vs2005.vcproj @@ -714,6 +714,10 @@ RelativePath="..\..\aegisub\auto4_perl_dialogs.cpp" > + + @@ -734,6 +738,10 @@ RelativePath="..\..\aegisub\auto4_auto3.h" > + +