diff options
Diffstat (limited to 'mkvlib/c')
| -rw-r--r-- | mkvlib/c/README.md | 10 | ||||
| -rw-r--r-- | mkvlib/c/exports.go | 22 | ||||
| -rw-r--r-- | mkvlib/c/sdk.cs | 14 | ||||
| -rw-r--r-- | mkvlib/c/sdk.py | 11 |
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): |
