From 2ad3253d26bfadb8452c82e515eedc60b308cbe9 Mon Sep 17 00:00:00 2001 From: b5f0d6c3 Date: Thu, 21 Oct 2021 11:46:20 +0800 Subject: update mkvlib:new c-exports and sdk.py --- mkvlib/c/exports.go | 53 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) (limited to 'mkvlib/c/exports.go') diff --git a/mkvlib/c/exports.go b/mkvlib/c/exports.go index 6a04665..bf277a4 100644 --- a/mkvlib/c/exports.go +++ b/mkvlib/c/exports.go @@ -9,6 +9,10 @@ import ( var getter = mkvlib.GetProcessorGetterInstance() +func checkInstance() bool { + return getter.GetProcessorInstance() != nil +} + func _lcb(lcb C.logCallback) func(string) { return func(str string) { C.makeLogCallback(cs(str), lcb) @@ -20,14 +24,9 @@ func InitInstance(lcb C.logCallback) bool { return getter.InitProcessorInstance(_lcb(lcb)) } -//export CheckInstance -func CheckInstance() bool { - return getter.GetProcessorInstance() != nil -} - //export GetMKVInfo func GetMKVInfo(file *C.char) *C.char { - if !CheckInstance() { + if !checkInstance() { return cs("") } obj := getter.GetProcessorInstance().GetMKVInfo(gs(file)) @@ -37,7 +36,7 @@ func GetMKVInfo(file *C.char) *C.char { //export DumpMKV func DumpMKV(file, output *C.char, subset bool, lcb C.logCallback) bool { - if !CheckInstance() { + if !checkInstance() { return false } return getter.GetProcessorInstance().DumpMKV(gs(file), gs(output), subset, _lcb(lcb)) @@ -50,7 +49,7 @@ type checkSubset_R struct { //export CheckSubset func CheckSubset(file *C.char, lcb C.logCallback) *C.char { - if !CheckInstance() { + if !checkInstance() { return cs("") } a, b := getter.GetProcessorInstance().CheckSubset(gs(file), _lcb(lcb)) @@ -60,7 +59,7 @@ func CheckSubset(file *C.char, lcb C.logCallback) *C.char { //export CreateMKV func CreateMKV(file, tracks, attachments, output, slang, stitle *C.char, clean bool) bool { - if !CheckInstance() { + if !checkInstance() { return false } a := make([]string, 0) @@ -79,7 +78,7 @@ func CreateMKV(file, tracks, attachments, output, slang, stitle *C.char, clean b //export ASSFontSubset func ASSFontSubset(files, fonts, output *C.char, dirSafe bool, lcb C.logCallback) bool { - if !CheckInstance() { + if !checkInstance() { return false } obj := make([]string, 0) @@ -90,6 +89,40 @@ func ASSFontSubset(files, fonts, output *C.char, dirSafe bool, lcb C.logCallback return false } +//export QueryFolder +func QueryFolder(dir *C.char, lcb C.logCallback) *C.char { + if !checkInstance() { + return cs("") + } + list := getter.GetProcessorInstance().QueryFolder(gs(dir), _lcb(lcb)) + data, _ := json.Marshal(list) + return cs(string(data)) +} + +//export DumpMKVs +func DumpMKVs(dir, output *C.char, subset bool, lcb C.logCallback) bool { + if !checkInstance() { + return false + } + return getter.GetProcessorInstance().DumpMKVs(gs(dir), gs(output), subset, _lcb(lcb)) +} + +//export CreateMKVs +func CreateMKVs(vDir, sDir, fDir, tDir, oDir, slang, stitle *C.char, clean bool, lcb C.logCallback) bool { + if !checkInstance() { + return false + } + return getter.GetProcessorInstance().CreateMKVs(gs(vDir), gs(sDir), gs(fDir), gs(tDir), gs(oDir), gs(slang), gs(stitle), clean, _lcb(lcb)) +} + +//export MakeMKVs +func MakeMKVs(dir, data, output, slang, stitle *C.char, lcb C.logCallback) bool { + if !checkInstance() { + return false + } + return getter.GetProcessorInstance().MakeMKVs(gs(dir), gs(data), gs(output), gs(slang), gs(stitle), _lcb(lcb)) +} + func cs(gs string) *C.char { return C.CString(gs) } -- cgit v1.2.1