aboutsummaryrefslogtreecommitdiff
path: root/external/pd.cs
diff options
context:
space:
mode:
authorDavide Morelli <morellid@users.sourceforge.net>2006-01-12 17:09:45 +0000
committerDavide Morelli <morellid@users.sourceforge.net>2006-01-12 17:09:45 +0000
commit7aa2fe31bf8baa6506e4c792229834b67ebd2207 (patch)
tree8d702888a06b3d1f89325aa55a2c9fb47c688078 /external/pd.cs
parent27ed64f0d1ee32e0ccff7c48d4965c21c9f8128b (diff)
working on lists of atoms
svn path=/trunk/externals/clr/; revision=4392
Diffstat (limited to 'external/pd.cs')
-rwxr-xr-xexternal/pd.cs30
1 files changed, 26 insertions, 4 deletions
diff --git a/external/pd.cs b/external/pd.cs
index 67befdf..33f7f1f 100755
--- a/external/pd.cs
+++ b/external/pd.cs
@@ -71,13 +71,35 @@ typedef struct atom_simple
public enum AtomType {Null = 0, Float=1, Symbol=2};
[StructLayout (LayoutKind.Explicit)]
- public struct Atom
+// [StructLayout (LayoutKind.Sequential)]
+ public class Atom
{
//[FieldOffset (0)] AtomType type;
- [FieldOffset (0)] public int type;
+ //[FieldOffset (0)] public int type;
+ [FieldOffset (0)]
+ public int type;
/* union members */
- [FieldOffset (4)] public long string_value;
- [FieldOffset (4)] public float float_value;
+ [FieldOffset (4)]
+ public float float_value;
+
+// [FieldOffset (4)]
+ [FieldOffset (8)]
+ public string string_value;
+
+
+
+ public Atom(string string_value)
+ {
+ this.type = 2;
+ this.float_value = 0;
+ this.string_value = string_value;
+ }
+ public Atom(float float_value)
+ {
+ this.type = 1;
+ this.string_value = "";
+ this.float_value = float_value;
+ }
}