summaryrefslogtreecommitdiff
path: root/mkvlib/c
diff options
context:
space:
mode:
Diffstat (limited to 'mkvlib/c')
-rw-r--r--mkvlib/c/README.md10
-rw-r--r--mkvlib/c/exports.go22
-rw-r--r--mkvlib/c/sdk.cs14
-rw-r--r--mkvlib/c/sdk.py11
4 files changed, 36 insertions, 21 deletions
diff --git a/mkvlib/c/README.md b/mkvlib/c/README.md
index dc652f8..89509b9 100644
--- a/mkvlib/c/README.md
+++ b/mkvlib/c/README.md
@@ -57,9 +57,9 @@
//return: 缓存失败字体的json格式的数组
```
- ```c
- char* CopyFontsFromCache(char* subs, char* dist, logCallback lcb);
+ char* CopyFontsFromCache(char* asses, char* dist, logCallback lcb);
//从缓存复制字幕所需的字体
- //subs: 字体文件目录
+ //asses: 字幕文件路径的json的数组
//dist: 字体文件保存目录
//return: 是否全部导出
```
@@ -167,9 +167,9 @@
//return: 是否全程无错
```
- ```c
- char* GetFontsList(char* dir, logCallback lcb);
- //取得指定目录内所有字幕需要的全部字体
- //dir: 字幕文件所在的目录
+ char* GetFontsList(char* files, logCallback lcb);
+ //取得数组内字幕需要的全部字体
+ //files: 字幕文件路径的json的数组
//return: json格式的数组
```
- ```c
diff --git a/mkvlib/c/exports.go b/mkvlib/c/exports.go
index 5cb8c0f..1c12825 100644
--- a/mkvlib/c/exports.go
+++ b/mkvlib/c/exports.go
@@ -132,13 +132,18 @@ func A2P(a2p, apc bool, pr, pf string) {
}
//export GetFontsList
-func GetFontsList(dir *C.char, lcb C.logCallback) *C.char {
+func GetFontsList(files *C.char, lcb C.logCallback) *C.char {
if !checkInstance() {
return cs("")
}
- list := getter.GetProcessorInstance().GetFontsList(gs(dir), _lcb(lcb))
- data, _ := json.Marshal(list)
- return cs(string(data))
+ obj := make([]string, 0)
+ if json.Unmarshal([]byte(gs(files)), &obj) == nil {
+ _files := obj
+ list := getter.GetProcessorInstance().GetFontsList(_files, _lcb(lcb))
+ data, _ := json.Marshal(list)
+ return cs(string(data))
+ }
+ return cs("")
}
//export CreateFontsCache
@@ -152,11 +157,16 @@ func CreateFontsCache(dir, output *C.char, lcb C.logCallback) *C.char {
}
//export CopyFontsFromCache
-func CopyFontsFromCache(subs, dist *C.char, lcb C.logCallback) bool {
+func CopyFontsFromCache(asses, dist *C.char, lcb C.logCallback) bool {
if !checkInstance() {
return false
}
- return getter.GetProcessorInstance().CopyFontsFromCache(gs(subs), gs(dist), _lcb(lcb))
+ obj := make([]string, 0)
+ if json.Unmarshal([]byte(gs(asses)), &obj) == nil {
+ _files := obj
+ return getter.GetProcessorInstance().CopyFontsFromCache(_files, gs(dist), _lcb(lcb))
+ }
+ return false
}
//export Cache
diff --git a/mkvlib/c/sdk.cs b/mkvlib/c/sdk.cs
index 9b5c165..e4cc843 100644
--- a/mkvlib/c/sdk.cs
+++ b/mkvlib/c/sdk.cs
@@ -41,7 +41,7 @@ public static class mkvlib
static extern void A2P(bool a2p, bool apc, IntPtr pr, IntPtr pf);
[DllImport("mkvlib.so")]
- static extern IntPtr GetFontsList(IntPtr dir, logCallback lcb);
+ static extern IntPtr GetFontsList(IntPtr files, logCallback lcb);
[DllImport("mkvlib.so")]
static extern void Cache(IntPtr ccs);
@@ -59,7 +59,7 @@ public static class mkvlib
static extern IntPtr CreateFontsCache(IntPtr dir, IntPtr output, logCallback lcb);
[DllImport("mkvlib.so")]
- static extern bool CopyFontsFromCache(IntPtr subs, IntPtr dist, logCallback lcb);
+ static extern bool CopyFontsFromCache(IntPtr asses, IntPtr dist, logCallback lcb);
[DllImport("mkvlib.so")]
static extern IntPtr GetFontInfo(IntPtr p);
@@ -130,9 +130,10 @@ public static class mkvlib
A2P(a2p, apc, cs(pr), cs(pf));
}
- public static string[] GetFontsList(string dir, Action<string> lcb)
+ public static string[] GetFontsList([]string files, Action<string> lcb)
{
- string result = css(GetFontsList(cs(dir), _lcb(lcb)));
+ string _files = JsonSerializer.Serialize<string[]>(files);
+ string result = css(GetFontsList(cs(_files), _lcb(lcb)));
return JsonSerializer.Deserialize<string[]>(result);
}
@@ -168,9 +169,10 @@ public static class mkvlib
return JsonSerializer.Deserialize<string[]>(result);
}
- public static bool CopyFontsFromCache(string subs, string dist, Action<string> lcb)
+ public static bool CopyFontsFromCache([]string asses, string dist, Action<string> lcb)
{
- return CopyFontsFromCache(cs(subs), cs(dist), _lcb(lcb));
+ string _files = JsonSerializer.Serialize<string[]>(asses);
+ return CopyFontsFromCache(cs(_files), cs(dist), _lcb(lcb));
}
delegate void logCallback(IntPtr ptr);
diff --git a/mkvlib/c/sdk.py b/mkvlib/c/sdk.py
index 613b115..18b4d64 100644
--- a/mkvlib/c/sdk.py
+++ b/mkvlib/c/sdk.py
@@ -73,10 +73,11 @@ def a2p(en, apc, pr, pf):
call(en, apc, pr.encode(), pf.encode())
-def getFontsList(dir, lcb):
+def getFontsList(files, lcb):
call = lib.GetFontsList
call.restype = c_char_p
- return loads(call(dir.encode(), lcb).decode())
+ _files = dumps(files)
+ return loads(call(_files.encode(), lcb).decode())
def cache(ccs):
@@ -84,6 +85,7 @@ def cache(ccs):
_ccs = dumps(ccs)
call(_ccs.encode())
+
def getFontInfo(p):
call = lib.GetFontInfo
call.restype = c_char_p
@@ -96,9 +98,10 @@ def createFontsCache(dir, output, lcb):
return loads(call(dir.encode(), output.encode(), lcb).decode())
-def copyFontsFromCache(subs, dist, lcb):
+def copyFontsFromCache(asses, dist, lcb):
call = lib.CopyFontsFromCache
- return call(subs.encode(), dist.encode(), lcb)
+ _files = dumps(asses)
+ return call(_files.encode(), dist.encode(), lcb)
def mks(en):