2014-09-19 21:43:16 +00:00
|
|
|
|
using System;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
|
|
|
|
using BizHawk.Client.Common;
|
|
|
|
|
using LuaInterface;
|
|
|
|
|
|
|
|
|
|
namespace BizHawk.Client.EmuHawk
|
|
|
|
|
{
|
|
|
|
|
[Description("A library for manipulating the Tastudio dialog of the EmuHawk client")]
|
2014-09-20 01:00:50 +00:00
|
|
|
|
[LuaLibraryAttributes(released: false)]
|
2014-09-19 21:43:16 +00:00
|
|
|
|
public sealed class TastudioLuaLibrary : LuaLibraryBase
|
|
|
|
|
{
|
|
|
|
|
public TastudioLuaLibrary(Lua lua)
|
|
|
|
|
: base(lua) { }
|
|
|
|
|
|
|
|
|
|
public TastudioLuaLibrary(Lua lua, Action<string> logOutputCallback)
|
|
|
|
|
: base(lua, logOutputCallback) { }
|
|
|
|
|
|
|
|
|
|
public override string Name { get { return "tastudio"; } }
|
|
|
|
|
|
2014-09-21 15:17:29 +00:00
|
|
|
|
private TAStudio Tastudio
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return GlobalWin.Tools.Get<TAStudio>() as TAStudio;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2014-09-19 21:43:16 +00:00
|
|
|
|
[LuaMethodAttributes(
|
|
|
|
|
"engaged",
|
|
|
|
|
"returns whether or not tastudio is currently engaged (active)"
|
|
|
|
|
)]
|
|
|
|
|
public bool Engaged()
|
|
|
|
|
{
|
|
|
|
|
return GlobalWin.Tools.Has<TAStudio>(); // TODO: eventually tastudio should have an engaged flag
|
|
|
|
|
}
|
2014-09-21 15:17:29 +00:00
|
|
|
|
|
|
|
|
|
[LuaMethodAttributes(
|
|
|
|
|
"getmarker",
|
|
|
|
|
"returns the marker text at the given frame, or an empty string if there is no marker for the given frame"
|
|
|
|
|
)]
|
|
|
|
|
public string GetMarker(int frame)
|
|
|
|
|
{
|
|
|
|
|
if (Engaged())
|
|
|
|
|
{
|
|
|
|
|
var marker = Tastudio.CurrentMovie.Markers.Get(frame);
|
|
|
|
|
if (marker != null)
|
|
|
|
|
{
|
|
|
|
|
return marker.Message;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return string.Empty;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[LuaMethodAttributes(
|
|
|
|
|
"removemarker",
|
|
|
|
|
"if there is a marker for the given frame, it will be removed"
|
|
|
|
|
)]
|
|
|
|
|
public void RemoveMarker(int frame)
|
|
|
|
|
{
|
|
|
|
|
if (Engaged())
|
|
|
|
|
{
|
|
|
|
|
var marker = Tastudio.CurrentMovie.Markers.Get(frame);
|
|
|
|
|
if (marker != null)
|
|
|
|
|
{
|
|
|
|
|
Tastudio.CurrentMovie.Markers.Remove(marker);
|
|
|
|
|
Tastudio.UpdateValues();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[LuaMethodAttributes(
|
|
|
|
|
"setmarker",
|
|
|
|
|
"Adds or sets a marker at the given frame with the given message"
|
|
|
|
|
)]
|
|
|
|
|
public void SetMarker(int frame, string message)
|
|
|
|
|
{
|
|
|
|
|
if (Engaged())
|
|
|
|
|
{
|
|
|
|
|
var marker = Tastudio.CurrentMovie.Markers.Get(frame);
|
|
|
|
|
if (marker != null)
|
|
|
|
|
{
|
|
|
|
|
marker.Message = message;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Tastudio.CurrentMovie.Markers.Add(frame, message);
|
|
|
|
|
Tastudio.UpdateValues();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2014-09-19 21:43:16 +00:00
|
|
|
|
}
|
|
|
|
|
}
|