You can subscribe to this list here.
2004 |
Jan
|
Feb
(11) |
Mar
(5) |
Apr
(18) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(61) |
Oct
|
Nov
(1) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(2) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Taj M. <taj...@us...> - 2004-09-12 20:03:26
|
Update of /cvsroot/davinci/docs/xls/images In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23381/xls/images Log Message: Directory /cvsroot/davinci/docs/xls/images added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:02:47
|
Update of /cvsroot/davinci/docs/xls/htmlhelp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23229/xls/htmlhelp Log Message: Directory /cvsroot/davinci/docs/xls/htmlhelp added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:02:46
|
Update of /cvsroot/davinci/docs/xls/fo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23229/xls/fo Log Message: Directory /cvsroot/davinci/docs/xls/fo added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:02:46
|
Update of /cvsroot/davinci/docs/xls/html In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23229/xls/html Log Message: Directory /cvsroot/davinci/docs/xls/html added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:02:23
|
Update of /cvsroot/davinci/docs/xls/extensions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23181/xls/extensions Log Message: Directory /cvsroot/davinci/docs/xls/extensions added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:02:09
|
Update of /cvsroot/davinci/docs/xls/eclipse In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23092/xls/eclipse Log Message: Directory /cvsroot/davinci/docs/xls/eclipse added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:01:46
|
Update of /cvsroot/davinci/docs/xls/docsrc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23007/xls/docsrc Log Message: Directory /cvsroot/davinci/docs/xls/docsrc added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:01:34
|
Update of /cvsroot/davinci/docs/xls/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22958/xls/doc Log Message: Directory /cvsroot/davinci/docs/xls/doc added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:01:23
|
Update of /cvsroot/davinci/docs/xls/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22924/xls/common Log Message: Directory /cvsroot/davinci/docs/xls/common added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:01:11
|
Update of /cvsroot/davinci/docs/xls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22856/xls Log Message: Directory /cvsroot/davinci/docs/xls added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:00:52
|
Update of /cvsroot/davinci/docs/dtd/ent In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22784/dtd/ent Log Message: Directory /cvsroot/davinci/docs/dtd/ent added to the repository |
From: Taj M. <taj...@us...> - 2004-09-12 20:00:22
|
Update of /cvsroot/davinci/docs/dtd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22648/dtd Log Message: Directory /cvsroot/davinci/docs/dtd added to the repository |
From: Taj M. <taj...@us...> - 2004-09-11 00:58:07
|
Update of /cvsroot/davinci/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17782 Modified Files: AboutPlugins.xml Log Message: Added (puesdo) todo section and Authors Index: AboutPlugins.xml =================================================================== RCS file: /cvsroot/davinci/docs/AboutPlugins.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** AboutPlugins.xml 11 Sep 2004 00:21:55 -0000 1.2 --- AboutPlugins.xml 11 Sep 2004 00:57:57 -0000 1.3 *************** *** 8,15 **** <sect1 id="introduction"><title>DaVinci Introduction</title> ! <para>This document will describe the DaVinci Plugin system. DaVinci by itself ! is useless. The core DV code is little more than a catalyst for plugins. With ! plugins, DaVinci is able to achieve almost anything. The core DV code contains ! these three major parts:</para> <itemizedlist> --- 8,14 ---- <sect1 id="introduction"><title>DaVinci Introduction</title> ! <para>This document will describe the DaVinci Plugin system. The core DV code ! is little more than a catalyst for plugins. With plugins, DaVinci is able to achieve ! almost anything. The core DV code contains these three major parts:</para> <itemizedlist> *************** *** 124,129 **** </sect3> </sect2> ! </sect1> </chapter> </book> --- 123,140 ---- </sect3> </sect2> ! <sect2 id="todo"><title>What's missing? (TODO)</title> ! <para> ! A lot. ! </para> ! </sect2> ! </sect1> </chapter> + <appendix id="ch2"><title>Authors</title> + <itemizedlist> + <listitem><para>Elio Cuevas Gómez <email>elcugo at yahoo dot com dot mx</email></para></listitem> + <listitem><para>Paul Hampson <email>p dot hampson at dsl dot pipex dot net</email></para></listitem> + <listitem><para>Taj Morton <email>taj at wildgardenseed dot com</email></para></listitem> + </itemizedlist> + </appendix> </book> |
From: Taj M. <taj...@us...> - 2004-09-11 00:22:04
|
Update of /cvsroot/davinci/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12518 Modified Files: AboutPlugins.xml Log Message: Made link to to Elio\'s plugin doc clickable (ulink) Index: AboutPlugins.xml =================================================================== RCS file: /cvsroot/davinci/docs/AboutPlugins.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** AboutPlugins.xml 10 Sep 2004 21:48:56 -0000 1.1 --- AboutPlugins.xml 11 Sep 2004 00:21:55 -0000 1.2 *************** *** 61,65 **** plugins build their API via these functions. This idea comes from a document Elio whipped up a while ago ! (http://ndikandi.utm.mx/~ic022604/davinci/PluginIntro.sxw). He suggested that there be a library called libdvgui (or something), that would have functions like DButton_SetCaption, DButton_GetCaption. A --- 61,66 ---- plugins build their API via these functions. This idea comes from a document Elio whipped up a while ago ! (<ulink url="http://ndikandi.utm.mx/~ic022604/davinci/PluginIntro.sxw"> ! http://ndikandi.utm.mx/~ic022604/davinci/PluginIntro.sxw</ulink>). He suggested that there be a library called libdvgui (or something), that would have functions like DButton_SetCaption, DButton_GetCaption. A |
From: Taj M. <taj...@us...> - 2004-09-10 21:50:55
|
Update of /cvsroot/davinci/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13029 Added Files: AboutPlugins.xml Log Message: Added Plugin Documentation 0.1 on XML docbook format. Use the converter at http://www.xml-dev.com/blog/test.php to test, generate HTML, and PDF docs. --- NEW FILE: AboutPlugins.xml --- <?xml version="1.0" standalone="no"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> <book> <title>The DaVinci Plugin System</title> <chapter id="ch1"><title>DaVinci Plugin System</title> <sect1 id="introduction"><title>DaVinci Introduction</title> <para>This document will describe the DaVinci Plugin system. DaVinci by itself is useless. The core DV code is little more than a catalyst for plugins. With plugins, DaVinci is able to achieve almost anything. The core DV code contains these three major parts:</para> <itemizedlist> <listitem><para>The Application</para></listitem> <listitem><para>The API Implementation</para></listitem> <listitem><para>The Plugin System</para></listitem> </itemizedlist> <para>I'll go over each feature separately.</para> <sect2 id="application"><title>The Application</title> <para>The DV executable is simply a tool for loading plugins and providing an output interface for the plugins. [Somebody expand on this, please]</para> </sect2> <sect2 id="api-implementation"><title>The API Implementation</title> <para> The API is one of the most important parts of DaVinci. Basically, the API provides functions to let plugins "do stuff". The API can be broken down into three parts: </para> <itemizedlist> <listitem><para>Low Level API</para></listitem> <listitem><para>Data Processing API</para></listitem> <listitem><para>User Interface API</para></listitem> </itemizedlist> <sect3 id="lowlevel"><title>Low Level API</title> <para>The low level API provides simple, dirty-work, functions, like RegisterProcedure (?), LogDebug, etc. These will probably be called by almost every plugin.</para> </sect3> <sect3 id="dataprocessing"><title>Data Processing API</title> <para> The Data Processing API the meat of the DaVinci API. These functions will also be called by near-every plugin. They provide functions for "doing cool stuff". That includes plotting grids, playing with strings, etc. </para> </sect3> <sect3 id="userinterface-api"><title>User Interface API</title> <para> Also know as the GUI implementation. We're still discussing how this is going to work. My (Taj's) idea, was to write a wrapper for the LCL (Lazarus Component Library), build that into the API, then have plugins build their API via these functions. This idea comes from a document Elio whipped up a while ago (http://ndikandi.utm.mx/~ic022604/davinci/PluginIntro.sxw). He suggested that there be a library called libdvgui (or something), that would have functions like DButton_SetCaption, DButton_GetCaption. A Pascal interface unit will provide a nice OO Pascal interface. See the document for more details on this. </para> <para> Basically, when the plugin is loading, TPlugin calls the start() function of the plugin. start() can now call whatever function it wants. Suggested functions would be SetupGUI, and other such janitorial functions. SetupGUI would use the libgui library and wrapper units to create GUI objects. When a function is loaded, it does the following: </para> <itemizedlist> <listitem><para>Register their functions with TPlugins</para></listitem> <listitem><para>Setup the GUI</para></listitem> <listitem><para>Setup the "extra", not-required "stuff"</para></listitem> </itemizedlist> <sect4 id="register-functions"><title>Register functions with TPlugins</title> <para> The TPlugins object handles all TPlugin objects and plugins that have been loaded. Tplugins has a function, RegisterFunction, which takes the name of the function and the address of the function (via pointers). Here's how I described it to Elio: </para> <para> TPlugins maintains a list of all the symbols (Read: Functions) that are available to the DV core and other plugins (maybe we could add some permissions about who could call what functs--that might be a good thing, donno), as well as their address in the memory (a pointer, or whatever Pascal has). Then, when a plugin/DV wants to call a function, they do TPlugins.RunProcedure(ProcedureName as String), or something like that. RunProcedure then finds out what the address is in the memory (e.g., reads the pointer), and calls that procedure. Something similar for functions, except we need to worry about return types. </para> <para> Hopefully that made sense. </para> </sect4> <sect4 id="setup-gui"><title>Setup the GUI</title> <para> Like I said above. Start() calls SetupGUI(), which deals with the Pascal wrapper for libgui which is a wrapper for the LCL. The only problem using the LCL is that you cannot use the LCL from a library. That's something we're going to have to deal with. </para> </sect4> <sect4 id="setup-extra"> <title>Setup the "extra", not-required "stuff"</title> <para>Random functions that plugins need to setup.</para> </sect4> </sect3> </sect2> </sect1> </chapter> </book> |
From: Elio C. G. <el...@us...> - 2004-09-07 05:53:58
|
Update of /cvsroot/davinci/davinci/core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8869/core Added Files: dvclasses.pas Log Message: Initial implementation. --- NEW FILE: dvclasses.pas --- { Copyright (C) <year> <name of author> 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 Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. } unit dvclasses; {$mode objfpc}{$H+} interface uses Classes, SysUtils; type { TDVObject. Base class for all DaVinci classes } TDVObject=class(TObject) private FID: Integer; public constructor Create; end; implementation { TDVObject } constructor TDVObject.Create; begin { The function RegisterDVObject creates an entry in an array which would allow us to iterate trough all Objects. But thist needs to be implemented somewhere else. } {FID := RegisterDVObject(Self);} FID := 0; inherited Create; end; end. |
From: Elio C. G. <el...@us...> - 2004-09-07 05:53:58
|
Update of /cvsroot/davinci/davinci/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8869/gui Added Files: dvcontrols.pas Log Message: Initial implementation. --- NEW FILE: dvcontrols.pas --- unit dvcontrols; {$mode objfpc}{$H+} interface uses Classes, SysUtils, DVClasses; {Ancestor of all DaVinci visual controls} type TDVControl = class(TDVObject) private FParent: TDVObject; public constructor Create(Parent: TDVObject); end; implementation { TDVControl } constructor TDVControl.Create(Parent: TDVObject); begin FParent := Parent; inherited Create; end; end. |
From: Taj M. <taj...@us...> - 2004-04-18 18:19:38
|
Update of /cvsroot/davinci/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3048 Added Files: master-plan.lyx Log Message: Initial import of master plan in LaTeX format. --- NEW FILE: master-plan.lyx --- #LyX 1.3 created this file. For more info see http://www.lyx.org/ \lyxformat 221 \textclass article \language english \inputencoding auto \fontscheme default \graphics default \paperfontsize default \papersize Default \paperpackage a4 \use_geometry 0 \use_amsmath 0 \use_natbib 0 \use_numerical_citations 0 \paperorientation portrait \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \defskip medskip \quotes_language english \quotes_times 2 \papercolumns 1 \papersides 1 \paperpagestyle default \layout Title DaVinci Master Plan \layout Section Abstract \layout Standard This document contains the master plan for DaVinci. It contains all the information you could ever want to know about DaVinci, its technical details, time line, etc. Questions and comments should be directed to our mailing list (davinci-develop@ lists.sourceforge.net), or our propaganda minister (Taj Morton, taj@wildgardenseed. com). \layout Section Introduction to DaVinci \layout Standard Introduction to DaVinci DaVinci is a cross-platform development environment for any programming language, but designed for web development. \layout Standard It is licensed under the GNU General Public License. It basically states that the internal source code of a program or must be freely available for everyone to see, allow redistribution of the program or source code for free, and allow others to use the code in other GPL'd (or GPL compatible) projects. All documents created by the DaVinci project will be released under the GNU Free Documentation License. This document allows copying and modification of documentation, similar to the GPL. You can find these documents in the appendix. Plugin for DaVinci be released under the GPL. Please read the GPL FAQ (http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins) for an explanation of why. Is is similar to the Linux kernel, were all modules must be GPL'd. DaVinci will be written in Free Pascal (www.freepascal.org), using the Lazarus Component Library (LCL, http://lazarus.freepascal.org) for cross-platform GUI. DaVinci also has a plugin system for extending the functionality of DaVinci. In fact, DaVinci is basically several or many plugins strung together. \layout Subsection Why another development environment? \layout Standard Why do we need another development environment for programming? Because people need choice. If you look at the current offerings for development environments you will see that yes, there certainly are a lot of them, however, most of them are only for one or two languages (except, of course, in the case of emacs/vi!). Programmers need a familiar environment to work in. For example, when I write code for web sites, I use Quanta, when I develop in C, I use emacs, when I write Pascal code, I use Kate. Oh, I switch between them a lot too. \layout Standard \series bold However, we are not trying to be a \begin_inset Quotes eld \end_inset Jack of all trades, master of none. \begin_inset Quotes erd \end_inset development environment. \layout Section TechincalTechnical Details \layout Standard Since DaVinci is a computer program, we thought that it might be wise to describe how it's written. \layout Standard As stated previously, DaVinci will be written in FreePascal using the Lazarus Component Library (LCL). FreePascal has been ported to many different platforms, including Linux, Windows, BSD, Macintosh (Classic and OS X), and others. The LCL has been ported to GTK1, Win32, and several other toolkits are under the works. GTK2 may be available by version 1.0 of Lazarus. Qt development is also in the works. \layout Subsection Plugins \layout Standard Plugins are central to DaVinci. They essentially create it. Without plugins, DaVinci would be little more than a simple window with a useless code editor and menus. Plugins are a dynamically linked shared libraries (called DLLs under windows, shared objects (.so) under Linux. \layout Standard Plugins make function calls to the plugin SDK. The SDK will either be linked into DaVinci or be a shared library. \layout Subsection GUI \layout Standard We will use the Lazarus Component Library for our GUI. The Lazarus project was started to be a free replacement for Delphi. The LCL is a multi-platform/toolkit library for GUI development written in FreePascal. Hopefully it will become more mature and support more toolkits as it progresses. \layout Section DaVinci Communication and Web site \layout Standard The DaVinci project is hosted at Sourceforge.net, the largest Open Source development websiteweb site site, hosting thousands of Open Source projects. Sourceforge.net provides web hosting, mailing lists, CVS repositories, bug tracking, support requests, hosting of project releases, and more. \layout Subsection Mailing Lists \layout Standard The DaVinci team communicates over mailing lists. Read-only archives are available for anyone to read. Mailing lists used by DaVinci include: \layout Itemize davinci-develop \layout Itemize davinci-cvs \layout Itemize davinci-users \layout Itemize davinci-announce \layout Standard You can read more about these lists (as well as how to subscribe) on our web site. \layout Subsection Website \layout Standard The DaVinci web site is located at http://davinci.sourceforge.net. Watch this site for news and updates about DaVinci. \layout Subsection CVS \layout Standard You can access the DaVinci CVS repository in several ways. You can browse through the code online using ViewCVS at http://cvs.sourceforge.ne t/viewcvs.py/davinci. Also, you can download the code onto your computer through anonymous CVS. Please note that the ViewCVS code is synced with the development tree every 5 hours. If you don't need the very latest code, then you can download a nightly CVS tarball from http://cvs.sourceforge.net/cvstarballs/davinci-cvsroot.tar.bz2 \layout Standard If you want to get the very latest code, then you can use anonymous CVS to download the code from the CVS repository. These servers are also synced with the development tree every 5 hours. To download the davinci, code, you can use the cvs program included with most Linux distributions. If you don't have CVS, then you can download it for free from http://www.cvshome. org. Type (no line breaks): \layout LyX-Code cvs -d pserver:ano...@cv...:/cvsroot/davinci login \layout Standard When prompted for a password, press <ENTER>, there is none. \layout Standard Then, type (all one line) You can leave off the -z3 if you have a nice fast connection or a slow processor. The -z option enables compression. Don't use any more than 6 on a public server: \layout LyX-Code cvs -z3 -d:pserver:ano...@cv...:/cvsroot/davinci co \emph on modulename \layout Standard Of course, replace \emph on modulename \emph default with the name of the module you wish to download. The current modules in the davinci repository are: \layout Itemize davinci \layout Itemize docs \layout Itemize plugins \layout Standard davinci holds the core DaVinci code, as well as the plugin SDK. docs holds documentation for DaVinci, including documentation of the plugin SDK. plugins holds various plugins for DaVinci. \layout Standard If you have already downloaded a module, and wish to update it to the latest code, change to that directory (usually the same name as the module), and run: \layout LyX-Code cvs login \layout Standard Press <ENTER> when prompted for a password Then, run \layout LyX-Code cvs update \layout Standard You do not need to enter the module name or repository because the directory you're in already has all the information CVS needs to download the changes. \layout Section Gory Technical Details \layout Subsection Plugin Implementation \layout Standard You can see a graphical explanation of the plugin system in DV_PluginSystem.pdf. Basically, they are implemented as dynamic libraries and loaded at runtime. During loading, symbols are resolved (by loading other plugins). If resolving of symbols fails, then the plugin loading fails. It's like modprobe under Linux. (For those of you who don't know, modprobe is used to load drivers and other extra baggage into the Linux kernel at runtime.). \layout Standard When a plugin is loaded, DaVinci goes threw these steps: \layout Enumerate 1. TPlugin.Create('APlugin') called by DV. \layout Enumerate Tplugin.Create opens the file and resolves symbols. If symbols are resolved correctly, then the plugin is loaded. Otherwise, plugins are recursively loaded until all symbols have been resolved. In the event that symbols cannot be resolved, loading fails. It also fills Tplugin.Info with data. Tplugin.Start and Tplugin.Stop are set to the correct pointer values (using GetProcAddress). \layout Enumerate DV calls Tplugin.Start. From here, the plugin starts taking care of itself. It can now call any functions in the SDK. Common first steps would to call SetupGUI (a function within the plugin that would make calls to the SDK to assemble the GUI). \layout Enumerate When DaVinci is begin shut down, it loops through all Tplugins calling Tplugin.St op. The plugin then takes necessary steps to free memory, destroy GUI, etc. Plugins may also be unloaded at runtime ( \emph on if they are not used by any other plugin! \emph default ). \layout Section Timeline \layout Standard We have already started development of DaVinci and hope to follow the time line below: \layout Enumerate 1. April Planning and plugin implementation (Plugin implementation almost complete) \layout Enumerate May-July Develop the core SDK \layout Enumerate July-October Complete development of the SDK and start developing plugins \layout Enumerate November-December Finish development of plugins. First beta release. \layout Enumerate January 2005-February Final beta releases. \layout Enumerate March 2005 Version ~1.0 released! \layout Section Contact Information \layout Standard If you are interested in helping develop DaVinci and would like to know more, or have suggestions, then we would love to hear from you. \layout Itemize Elio Cuevas Gómez. \series bold Official Title \series default : Programming Guru \series bold Email: \series default el...@ya... \layout Itemize Paul Hampson. \series bold Official Title: \series default Windows Version Maintainer, Editor. \series bold Email: \series default p.h...@ds... \layout Itemize Taj Morton. \series bold Official Title: \series default Propaganda Minister, Programmer. \series bold Email: \series default ta...@wi... \layout Section Revision History \layout Itemize \series bold 0.4 \series default Converted to LaTeX. Ran Spellcheck. Taj Morton <ta...@wi...> Sunday 18 April 2004. \layout Itemize \series bold 0.3 \series default Added section on plugin implementation. Created graphical description of plugins as well. Fixed Typos. Proof Read.Taj Morton <ta...@wi...> Friday 09 April 2004. \layout Itemize \series bold 0.2 \series default Typos. Elio Cuevas Gómez <el...@ya...> Wednesday 07 April 2004. \layout Itemize \series bold 0.1 \series default First Draft. Taj Morton <ta...@wi...> Wednesday 07 April 2004. \the_end |
From: Elio C. G?m. <el...@us...> - 2004-04-05 20:16:39
|
Update of /cvsroot/davinci/davinci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4086 Modified Files: davinci.pas Log Message: Added exception recovery Index: davinci.pas =================================================================== RCS file: /cvsroot/davinci/davinci/davinci.pas,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** davinci.pas 5 Apr 2004 02:21:51 -0000 1.7 --- davinci.pas 5 Apr 2004 20:03:57 -0000 1.8 *************** *** 45,50 **** Writeln('============================='); ! plug.start; ! WriteLn('Good bye'); end. --- 45,64 ---- Writeln('============================='); ! try ! plug.start; ! except ! on EPluginStartError do ! begin ! WriteLn('PANIC: Can''t load default plugin!'); ! Halt(1); ! end; ! end; ! try ! plug.stop; ! except ! on EPluginStopError do ! WriteLn('WARNING: Error shutting down default plugin.'); ! end; ! WriteLn('Shutting down DaVinci.'); end. |
From: Elio C. G?m. <el...@us...> - 2004-04-05 06:14:25
|
Update of /cvsroot/davinci/davinci/plugins In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6672/plugins Modified Files: plugins.pas Log Message: Added new exception class Index: plugins.pas =================================================================== RCS file: /cvsroot/davinci/davinci/plugins/plugins.pas,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** plugins.pas 5 Apr 2004 03:14:20 -0000 1.11 --- plugins.pas 5 Apr 2004 06:01:45 -0000 1.12 *************** *** 24,28 **** EPluginLoadError = class(Exception); // Can't load plugin ESymbolNotFound = class(Exception); // Can't resolve plugin symbol ! EPluginStartError = class(Exception); // Cant run start TPlugin=class(TObject) --- 24,29 ---- EPluginLoadError = class(Exception); // Can't load plugin ESymbolNotFound = class(Exception); // Can't resolve plugin symbol ! EPluginStartError = class(Exception); // Can't start plugin ! EPluginStopError = class(Exception); // Can't stop plugin TPlugin=class(TObject) |
From: Elio C. G?m. <el...@us...> - 2004-04-05 06:13:28
|
Update of /cvsroot/davinci/davinci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6529 Modified Files: defaultplugin.pas Log Message: Code cleanup Index: defaultplugin.pas =================================================================== RCS file: /cvsroot/davinci/davinci/defaultplugin.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** defaultplugin.pas 5 Apr 2004 02:46:59 -0000 1.3 --- defaultplugin.pas 5 Apr 2004 06:00:53 -0000 1.4 *************** *** 14,32 **** end; - var - Log: Text; - function start: Byte; cdecl; export; begin ! {$I-} ! // Assign(Log, 'davinci.log'); ! // Append(Log); ! if IOResult<>0 then ! begin ! Start := 1; ! Exit; ! end; ! {$I+} ! WriteLn(Log, 'Default plugin started. This plugin will log events.'); Start := 0; end; --- 14,20 ---- end; function start: Byte; cdecl; export; begin ! WriteLn('Default plugin started. This plugin will log events.'); Start := 0; end; *************** *** 34,39 **** function stop: Byte; cdecl; export; begin ! WriteLn(Log, 'Default plugin stoped. Events won''t be logged anymore.'); ! Close(Log); Stop := 0; end; --- 22,26 ---- function stop: Byte; cdecl; export; begin ! WriteLn('Default plugin stoped. Events won''t be logged anymore.'); Stop := 0; end; *************** *** 41,50 **** function getplugininfo(Pinfo: PPluginInfo): Byte; cdecl; export; begin ! Assign(Log,'davinci.log'); ! Append(Log); ! WriteLn(Log, 'DaVinci asked me for my version. I feel happy.'); PInfo^.Name := 'defaultplugin'; ! PInfo^.Author :='(C) 2004 The DaVinci team'; PInfo^.Description := 'This plugin is for testing purposes only.'; PInfo^.Version :='0.1'; --- 28,35 ---- function getplugininfo(Pinfo: PPluginInfo): Byte; cdecl; export; begin ! WriteLn('DaVinci asked me for my version. I feel happy.'); PInfo^.Name := 'defaultplugin'; ! PInfo^.Author :='(C)2004 The DaVinci team'; PInfo^.Description := 'This plugin is for testing purposes only.'; PInfo^.Version :='0.1'; |
From: Elio C. G?m. <el...@us...> - 2004-04-05 03:26:56
|
Update of /cvsroot/davinci/davinci/plugins In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12928/plugins Modified Files: plugins.pas Log Message: Added error checking for TPlugin.Start Index: plugins.pas =================================================================== RCS file: /cvsroot/davinci/davinci/plugins/plugins.pas,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** plugins.pas 5 Apr 2004 02:53:20 -0000 1.10 --- plugins.pas 5 Apr 2004 03:14:20 -0000 1.11 *************** *** 22,27 **** { Exceptions } ! EPluginLoadError = class(Exception); // Can't load plugin ! ESymbolNotFound = class(Exception); // Can't resolve plugin symbol TPlugin=class(TObject) --- 22,28 ---- { Exceptions } ! EPluginLoadError = class(Exception); // Can't load plugin ! ESymbolNotFound = class(Exception); // Can't resolve plugin symbol ! EPluginStartError = class(Exception); // Cant run start TPlugin=class(TObject) *************** *** 72,78 **** begin { TODO: Load the shared object and resolve the symbols } ! {$IFDEF unix}{$I-} FHandle := LoadLibrary(PChar(Filename)); - {$I+} if FHandle=0 then --- 73,78 ---- begin { TODO: Load the shared object and resolve the symbols } ! {$IFDEF unix} FHandle := LoadLibrary(PChar(Filename)); if FHandle=0 then *************** *** 93,97 **** procedure TPlugin.Start; begin ! FStart(); end; --- 93,98 ---- procedure TPlugin.Start; begin ! if FStart() <> 0 then ! Raise EPluginStartError.Create('Error running library'); end; |
From: Taj M. <taj...@us...> - 2004-04-05 03:05:56
|
Update of /cvsroot/davinci/davinci/plugins In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9079/plugins Modified Files: plugins.pas Log Message: Capitalization changes Index: plugins.pas =================================================================== RCS file: /cvsroot/davinci/davinci/plugins/plugins.pas,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** plugins.pas 5 Apr 2004 02:21:51 -0000 1.9 --- plugins.pas 5 Apr 2004 02:53:20 -0000 1.10 *************** *** 81,85 **** Pointer(FStart) := GetProcAddress(FHandle, 'start'); Pointer(FStop) := GetProcAddress(FHandle, 'stop'); ! Pointer(GetPlugInfo) := GetProcAddress(FHandle, 'GetPluginInfo'); GetPlugInfo(@PlugInfo); --- 81,85 ---- Pointer(FStart) := GetProcAddress(FHandle, 'start'); Pointer(FStop) := GetProcAddress(FHandle, 'stop'); ! Pointer(GetPlugInfo) := GetProcAddress(FHandle, 'getplugininfo'); GetPlugInfo(@PlugInfo); |
From: Elio C. G?m. <el...@us...> - 2004-04-05 02:59:32
|
Update of /cvsroot/davinci/davinci In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7887 Modified Files: defaultplugin.pas Log Message: Capitalization changes Index: defaultplugin.pas =================================================================== RCS file: /cvsroot/davinci/davinci/defaultplugin.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** defaultplugin.pas 5 Apr 2004 02:21:51 -0000 1.2 --- defaultplugin.pas 5 Apr 2004 02:46:59 -0000 1.3 *************** *** 39,43 **** end; ! function GetPluginInfo(Pinfo: PPluginInfo): Byte; cdecl; export; begin Assign(Log,'davinci.log'); --- 39,43 ---- end; ! function getplugininfo(Pinfo: PPluginInfo): Byte; cdecl; export; begin Assign(Log,'davinci.log'); *************** *** 54,58 **** exports ! Start, Stop, GetPluginInfo; end. --- 54,58 ---- exports ! start, stop, getplugininfo; end. |
From: Taj M. <taj...@us...> - 2004-04-05 02:34:24
|
Update of /cvsroot/davinci/davinci/plugins In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4199/plugins Modified Files: plugins.pas Log Message: Working plugin implementation! Cleaned up the code a bit as well. Will write some basic docs in the docs module. Index: plugins.pas =================================================================== RCS file: /cvsroot/davinci/davinci/plugins/plugins.pas,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** plugins.pas 4 Apr 2004 21:41:47 -0000 1.8 --- plugins.pas 5 Apr 2004 02:21:51 -0000 1.9 *************** *** 16,28 **** { Procedural types, needed for calling plugin functions } ! TPluginStartProc = function (): Byte; cdecl; ! TPluginStopProc = function (): Byte; cdecl; ! TPluginVersionFunc = function(): PChar; cdecl; TPluginInfoFunc = function(PInfo: PPluginInfo): Byte; cdecl; - { NOTE: Are the ()'s really necesary? } - - { These are obsolete right now... } - PPluginActionProc = ^TPluginActionProc; - TPluginActionProc = function: Integer; { Exceptions } --- 16,23 ---- { Procedural types, needed for calling plugin functions } ! TPluginStartProc = function: Byte; cdecl; ! TPluginStopProc = function: Byte; cdecl; ! TPluginVersionFunc = function: PChar; cdecl; TPluginInfoFunc = function(PInfo: PPluginInfo): Byte; cdecl; { Exceptions } *************** *** 40,44 **** FStart:TPluginStartProc; FStop:TPluginStopProc; - //FVersionP:TPluginVersionFunc; public property Author: string read FAuthor; --- 35,38 ---- *************** *** 54,61 **** { TPluginInfo: Record to store plugin information } TPluginInfo=record ! Name: string; ! Author: string; ! Version: string; ! Description: string; end; --- 48,55 ---- { TPluginInfo: Record to store plugin information } TPluginInfo=record ! Name: PChar; ! Author: PChar; ! Version: PChar; ! Description: PChar; end; *************** *** 89,98 **** Pointer(GetPlugInfo) := GetProcAddress(FHandle, 'GetPluginInfo'); GetPlugInfo(@PlugInfo); FName := PlugInfo.Name; FDescription := PlugInfo.Description; FAuthor := PlugInfo.Author; FVersion := PlugInfo.Version; ! {$ENDIF} ! end; --- 83,92 ---- Pointer(GetPlugInfo) := GetProcAddress(FHandle, 'GetPluginInfo'); GetPlugInfo(@PlugInfo); + FName := PlugInfo.Name; FDescription := PlugInfo.Description; FAuthor := PlugInfo.Author; FVersion := PlugInfo.Version; ! {$ENDIF} end; *************** *** 105,109 **** begin FStop(); ! end; { TPlugin } {$ifdef unix} --- 99,103 ---- begin FStop(); ! end; {$ifdef unix} *************** *** 130,134 **** else Result := dlClose(Pointer(Lib)) = 0; ! end; { FreeLibrary } {$endif} --- 124,128 ---- else Result := dlClose(Pointer(Lib)) = 0; ! end; {$endif} |