Skip to content

Commit

Permalink
refactored class stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
tebjan committed Apr 10, 2012
1 parent 82e9ac4 commit 8ca6249
Show file tree
Hide file tree
Showing 4 changed files with 144 additions and 9 deletions.
66 changes: 63 additions & 3 deletions csharp/example/MainForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions csharp/example/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ private void buttonPlay_Click(object sender, EventArgs args)

private void Play()
{
FLibPDManager.InitAudio();
FLibPDManager.EnableDSP();
this.FAsioOut.Play();
SetButtonStates();
Expand Down Expand Up @@ -187,5 +188,25 @@ private void Cleanup()
this.FAsioOut = null;
}
}

private LibPDMessage ParseMessage()
{
return LibPDMessage.ParseTypedMessage(this.textBoxMessage.Text);
}

void ButtonPatchClick(object sender, EventArgs e)
{
FLibPDPatch.SendMessage(ParseMessage());
}

void ButtonPDClick(object sender, EventArgs e)
{
FLibPDManager.SendMessage(ParseMessage());
}

void ButtonCustomClick(object sender, EventArgs e)
{
ParseMessage().SendTo(this.textBoxReceiver.Text);
}
}
}
34 changes: 28 additions & 6 deletions csharp/libpd/LibPDManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ protected void Print(string message)
Debug.WriteLine(message);
}

//AUDIO---------------------------------------------------------------------------

/// <summary>
/// Initialize or re-initialize the audio system
/// </summary>
Expand All @@ -51,8 +53,6 @@ public void InitAudio(int inChannels=2, int outChannels=2, int sampleRate=44100)
LibPD.init_audio(inChannels, outChannels, sampleRate);
}

//MESSAGING-------------------------------------------------------------------------------------

/// <summary>
/// Start audio processing
/// </summary>
Expand All @@ -77,8 +77,10 @@ public void DisableDSP()
Debug.WriteLine("Disable DSP Start: {0} End: {1}", start, end);
}

//PATCH HANDLING--------------------------------------------------------------------------

/// <summary>
/// Creates a new dynamic patch
/// Creates a new dynamic patch and adds ot to PD
/// </summary>
/// <param name="name">optional name of the new patch</param>
/// <returns>The new patch</returns>
Expand All @@ -87,21 +89,41 @@ public LibPDDynamicPatch NewPatch(string name = "")
if(name == "") name = string.Format("temp-{0:HH-mm-ss-fff}", DateTime.Now.ToLocalTime());

var patch = new LibPDDynamicPatch(name);
patch.Load();
AddPatch(patch);
return patch;
}

/// <summary>
/// Creates a new dynamic patch
/// Creates a new dynamic patch and adds it to PD
/// </summary>
/// <param name="name">optional name of the new patch</param>
/// <returns>The new patch</returns>
public LibPDPatch LoadPatch(string fileName)
{
var patch = new LibPDPatch(fileName);
patch.Load();
AddPatch(patch);
return patch;
}

/// <summary>
/// Add a patch to PD
/// </summary>
/// <param name="patch"></param>
public void AddPatch(LibPDPatch patch)
{
patch.Load();
this.FPatches.Add(patch);
}

/// <summary>
/// Removes a patch from PD
/// </summary>
/// <param name="patch"></param>
public void RemovePatch(LibPDPatch patch)
{
patch.Close();
FPatches.Remove(patch);
}

/// <summary>
/// Sends a message to PD
Expand Down
32 changes: 32 additions & 0 deletions csharp/libpd/LibPDMessage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,29 @@ public override string ToString()
{
return string.Format("{0} TimesSent={1}", String.Join(" ", Args), TimesSent);
}

/// <summary>
/// Create a message from a message string
/// </summary>
/// <param name="message">message as string</param>
/// <returns>New message</returns>
public static LibPDMessage ParseMessage(string message)
{
return new LibPDMessage(message.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries));
}

/// <summary>
/// Create a typed message from a message string
/// </summary>
/// <param name="message">message as string</param>
/// <returns>New message</returns>
public static LibPDTypedMessage ParseTypedMessage(string message)
{
var type = message.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries)[0];
var args = message.Replace(type, "").Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);

return new LibPDTypedMessage(type, args);
}

}

Expand Down Expand Up @@ -137,4 +160,13 @@ public LibPDConnectMessage(int fromObj, int fromPin, int toObj, int toPin)
{
}
}

//connect message
public class LibPDDisconnectMessage : LibPDTypedMessage
{
public LibPDDisconnectMessage(int fromObj, int fromPin, int toObj, int toPin)
: base("disconnect", fromObj.ToString(), fromPin.ToString(), toObj.ToString(), toPin.ToString())
{
}
}
}

0 comments on commit 8ca6249

Please sign in to comment.