Skip to content

外部JS面板控制接口

ESLyric edited this page Aug 6, 2022 · 5 revisions

ESLyric导出了COM接口用于WSH等JS面板控制相关设置。

脚本接口

interface IESLyricWindowControl
{
Methods:
    void SetTextRenderer(int p); // 设置文本渲染器, 索引从0开始,对应界面上下拉列表配置顺序
    void SetTextColor(int color); // 设置普通文本颜色,可使用WSH面板示例中的RGB辅助函数,颜色下同
    void SetTextHighlightColor(int color); // 设置高亮颜色
    void SetTextFont(string name, float pxSize, int style); // 设置文本字体,参数同WSH面板中gdi.Font
    void SetTextAlign(int p); // 设置歌词对齐方式,索引从0开始,对应面板右键菜单对齐方式顺序
    void SetBackgroundType(int p); // 设置背景类型,索引从0开始,对应界面上下拉列表配置顺序
    void SetBackgroundColor(int color); // 设置背景颜色,设置后自动启用使用自定义背景色选项。
    void SetBackgroundImageSource(int p); // 设置背景图片来源,索引从0开始,对应界面上下拉列表配置顺序
    void SetBackgroundAlbumArtType(int p); // 设置背景封面类型,为各封面类型异或值,类型定义 FRONT: 1, BACK: 2, DISC: 4, ARTIST: 8
    void SetBackgroundImagePath(string p); // 设置自定义背景路径
    void SetBackgroundShuttleInterval(int p); // 设置背景切换间隔,小于0等于时禁用切换,否则启用且设置对应间隔
    void SetBackgroundImageFit(int p); // 设置图片契合方式, 索引从0开始,对应界面上下拉列表配置顺序
    void SetBackgroundImageBlendAlpha(int p); // 设置背景混合程度,小于0时禁用,否则启用并设置为对应值,启用时有效值(1,100]
    void SetBackgroundImageBlurRadius(int p); // 设置背景模糊程度,小于0时禁用,否则启用并设置为对应值
    void SetVertMargin(int p); // 设置垂直间距
    void SetHorizMargin(int p); // 设置水平间距
    void SetLineSpace(int p); // 设置行间距
    void SetSentenceSpace(int p); // 设置句间距
    void SetTitleFormatText(string p); // 设置格式标题文本
    void SetLayoutName(string p); // 根据布局名称设置布局
    void SetVariesFontDeltaHeight(int p); // 设置高亮行增大歌词,小于等于0时禁用,否则启用并设置为对应值
    void RunContextMenu(string cmd); // 执行面板菜单命令,如 x.RunContextMenu("对齐方式/居中对齐");
};

interface IESLyricControl
{
Properties:
    [r]    string Version; // ESLyric版本号
    [r,w]  string BannerText; // 标识文本
Methods:
    void SetPlayingLyricChangedCallback(callback); // 设置当前播放歌词更改回调
    void RequestLyric(string title, string artist); // 请求歌词
    IESLyricWindowControl GetByGuid(string guid); // 根据面板GUID获取对应的ESLyric控制接口
    IESLyricWindowControl GetAll(); // 根据全部ESLyric面板的控制接口
};

使用示例

使用脚本接口前需开启开关

方式1:
工具->ESLyric->高级选项: pref.script.expose 设置为 1

方式2:
插件同目录创建enable_script_control空文件 或initial_enable_script_control,后者在启动一次播放器后删除。

设置后重启foobar2000生效

function RGB(r, g, b) {
	return (0xff000000 | (r << 16) | (g << 8) | (b));
}

// 创建控制接口IESLyricControl对象
var eslCtrl = new ActiveXObject("ESLyric");
// 获取全部ESLyric面板控制对象,整体修改
var eslPanels = eslCtrl.GetAll();
// 设置普通文本颜色
eslPanels.SetTextColor(RGB(255,0,0));
// ... 
Clone this wiki locally