Update of /cvsroot/pure-data/externals/clr/Counter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29926/clr/Counter
Added Files: AssemblyInfo.cs Counter.cs Counter.csproj README.txt Log Message: restructured project (MSVC can't cope well with folder/classname mismatch) search for CLR DLLs in PD path first steps to efficient method handling
--- NEW FILE: Counter.csproj --- <VisualStudioProject> <CSHARP ProjectType = "Local" ProductVersion = "7.10.3077" SchemaVersion = "2.0" ProjectGuid = "{8CFEFB15-2A72-45B5-BC99-3BAFFB2B27C3}" > <Build> <Settings ApplicationIcon = "" AssemblyKeyContainerName = "" AssemblyName = "Counter" AssemblyOriginatorKeyFile = "" DefaultClientScript = "JScript" DefaultHTMLPageLayout = "Grid" DefaultTargetSchema = "IE50" DelaySign = "false" OutputType = "Library" PreBuildEvent = "" PostBuildEvent = "" RootNamespace = "Counter" RunPostBuildEvent = "OnBuildSuccess" StartupObject = "" > <Config Name = "Debug" AllowUnsafeBlocks = "false" BaseAddress = "285212672" CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" DefineConstants = "DEBUG;TRACE" DocumentationFile = "" DebugSymbols = "true" FileAlignment = "4096" IncrementalBuild = "false" NoStdLib = "false" NoWarn = "" Optimize = "false" OutputPath = "bin\Debug\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" /> <Config Name = "Release" AllowUnsafeBlocks = "false" BaseAddress = "285212672" CheckForOverflowUnderflow = "false" ConfigurationOverrideFile = "" DefineConstants = "TRACE" DocumentationFile = "" DebugSymbols = "false" FileAlignment = "4096" IncrementalBuild = "false" NoStdLib = "false" NoWarn = "" Optimize = "true" OutputPath = "bin\Release\" RegisterForComInterop = "false" RemoveIntegerChecks = "false" TreatWarningsAsErrors = "false" WarningLevel = "4" /> </Settings> <References> <Reference Name = "System" AssemblyName = "System" HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll" /> <Reference Name = "System.Data" AssemblyName = "System.Data" HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll" /> <Reference Name = "System.XML" AssemblyName = "System.XML" HintPath = "..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll" /> <Reference Name = "PureData" Project = "{0015D5E7-B0FB-4F06-B334-225447D1F992}" Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" /> </References> </Build> <Files> <Include> <File RelPath = "AssemblyInfo.cs" SubType = "Code" BuildAction = "Compile" /> <File RelPath = "Counter.cs" SubType = "Code" BuildAction = "Compile" /> </Include> </Files> </CSHARP> </VisualStudioProject>
--- NEW FILE: Counter.cs --- using System;
/// <summary> /// Descrizione di riepilogo per Counter. /// </summary> public class Counter: PureData.External { public Counter(PureData.AtomList args) { Post("Count.ctor "+args.ToString());
// pd.AddInlet(x, "init", ParametersType.Float); // pd.AddOutlet(x, ParametersType.Float); }
// this function MUST exist private static void Setup(Counter obj) { Add(new MethodBang(obj.MyBang)); Add(new MethodFloat(obj.MyFloat)); Add(new MethodSymbol(obj.MySymbol)); Add(new MethodList(obj.MyList));
Post("Count.Main"); }
protected virtual void MyBang() { Post("Count-BANG"); }
protected virtual void MyFloat(float f) { Post("Count-FLOAT "+f.ToString()); }
protected virtual void MySymbol(PureData.Symbol s) { Post("Count-SYMBOL "+s.ToString()); }
protected virtual void MyList(PureData.AtomList l) { Post("Count-LIST "+l.ToString()); }
/* public void SendOut() { pd.SendToOutlet(x, 0, new Atom(curr)); }
public void Sum(float f) { curr += (int) f; pd.SendToOutlet(x, 0, new Atom(curr)); }
*/ }
--- NEW FILE: README.txt --- to compile External.dll put PureData.dll in this folder then execute this command:
mcs External.cs Counter.cs -out:External.dll -target:library -r:PureData.dll --- NEW FILE: AssemblyInfo.cs --- using System.Reflection; using System.Runtime.CompilerServices;
// // Le informazioni generali relative a un assembly sono controllate dal seguente // insieme di attributi. Per modificare le informazioni associate a un assembly // occorre quindi modificare i valori di questi attributi. // [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]
// // Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: // // Numero di versione principale // Numero di versione secondario // Numero revisione // Numero build // // È possibile specificare tutti i valori o impostare come predefiniti i valori Numero revisione e Numero build // utilizzando l'asterisco (*) come illustrato di seguito:
[assembly: AssemblyVersion("1.0.*")]
// // Per firmare l'assembly è necessario specificare una chiave da utilizzare. // Fare riferimento alla documentazione di Microsoft .NET Framework per ulteriori informazioni sulla firma degli assembly. // // Utilizzare gli attributi elencati di seguito per verificare la chiave utilizzata per la firma. // // Note: // (*) Se non è specificata alcuna chiave, non sarà possibile firmare l'assembly. // (*) KeyName fa riferimento a una chiave installata nel provider di servizi di // crittografia (CSP) sul computer in uso. KeyFile fa riferimento a un file che contiene // una chiave. // (*) Se entrambi i valori KeyFile e KeyName sono specificati, si // verificherà il seguente processo: // (1) Se KeyName è presente in CSP, verrà utilizzata tale chiave. // (2) Se KeyName non esiste e KeyFile esiste, la chiave // di KeyFile verrà installata nel CSP e utilizzata. // (*) Per creare un KeyFile, è possibile utilizzare l'utilità sn.exe (Strong Name). // Quando si specifica il KeyFile, il percorso dovrà essere // relativo alla directory di output del progetto, ovvero // %Project Directory%\obj<configuration>. Se ad esempio il KeyFile si // trova nella directory del progetto, occorre specificare l'attributo AssemblyKeyFile // come [assembly: AssemblyKeyFile("..\..\mykey.snk")] // (*) La firma ritardata è un'opzione avanzata. Vedere la documentazione di Microsoft // .NET Framework per ulteriori informazioni. // [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")]