use kiss_tools.OBSTools
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-tools#1721220afa4ba7b388b8cdf240af08dec51d2ad3" into kiss-tools/0.0.0/github/1721220afa4ba7b388b8cdf240af08dec51d2ad3
|
||||
# @install: lix --silent download "gh://github.com/kiss-lang/kiss-tools#7418d158fefe2e145006468f35c9fa0fed8c224c" into kiss-tools/0.0.0/github/7418d158fefe2e145006468f35c9fa0fed8c224c
|
||||
-lib kiss
|
||||
-cp ${HAXE_LIBCACHE}/kiss-tools/0.0.0/github/1721220afa4ba7b388b8cdf240af08dec51d2ad3/src/
|
||||
-cp ${HAXE_LIBCACHE}/kiss-tools/0.0.0/github/7418d158fefe2e145006468f35c9fa0fed8c224c/src/
|
||||
-D kiss-tools=0.0.0
|
@@ -61,7 +61,10 @@
|
||||
(set isLoading false)
|
||||
(.start (director.shortcutHandler))
|
||||
(director.hideTitleCard)
|
||||
(cc))))))
|
||||
// When all loading is done, prompt to start obs recording automatically:
|
||||
(#if debug
|
||||
(promptToRecord cc)
|
||||
(cc)))))))
|
||||
(method doCleanup []
|
||||
(director.cleanup)
|
||||
(set lastInstructionPointer -2)
|
||||
@@ -72,7 +75,10 @@
|
||||
(onComplete))
|
||||
}))
|
||||
|
||||
(defReaderMacro &bof "" [stream] `(#when (StringTools.contains kissFile className) (doPreload cc)))
|
||||
(defReaderMacro &bof "" [stream]
|
||||
`(#when
|
||||
(StringTools.contains kissFile className)
|
||||
(doPreload cc)))
|
||||
(defReaderMacro &eof "" [stream]
|
||||
`(#when (StringTools.contains kissFile className)
|
||||
|
||||
@@ -84,31 +90,8 @@
|
||||
(dictSet v "TowardsPosition" hollywoo.Director.StageFacing.TowardsPosition)
|
||||
(dictSet v "AwayFromPosition" hollywoo.Director.StageFacing.AwayFromPosition)))
|
||||
|
||||
// When all loading is done, start obs recording automatically:
|
||||
(#when debug
|
||||
(preload
|
||||
(when projectObsFolder
|
||||
(let [os (Sys.systemName)
|
||||
profileDir "${projectObsFolder}/${os}_Profile"
|
||||
sceneCollectionFile "${projectObsFolder}/${os}_SceneCollection.json"]
|
||||
(if (and (sys.FileSystem.exists profileDir) (sys.FileSystem.exists sceneCollectionFile))
|
||||
{
|
||||
(new sys.io.Process
|
||||
(case os
|
||||
("Linux" "obs")
|
||||
(otherwise (throw "OBS executable not defined for ${os}")))
|
||||
[
|
||||
"--profile"
|
||||
profileDir
|
||||
"--collection"
|
||||
sceneCollectionFile
|
||||
"--scene"
|
||||
"Scene"
|
||||
"--startrecording"
|
||||
"--minimize-to-tray"
|
||||
"--multi"
|
||||
])
|
||||
(set obsIsRecording true)
|
||||
}
|
||||
(print "OBS profile and scene collection not found for ${os} in ${projectObsFolder}. Will not be recording"))))))
|
||||
(cleanup
|
||||
(#when debug
|
||||
(stopPromptedRecording)))
|
||||
|
||||
(end)))
|
@@ -196,26 +196,11 @@
|
||||
(director.showProp p.prop p.position ReAppearance .camera (_currentScene) cc)
|
||||
cc))))))
|
||||
|
||||
(#when debug
|
||||
(prop &mut :String projectObsFolder null)
|
||||
(prop &mut :Bool obsIsRecording false))
|
||||
|
||||
(method stopObs []
|
||||
(#when debug
|
||||
(when obsIsRecording
|
||||
// kill the obs process
|
||||
(case (Sys.systemName)
|
||||
("Linux"
|
||||
(doFor id (reverse (.split (assertProcess "pgrep" ["obs"]) "\n"))
|
||||
(assertProcess "kill" [id])))
|
||||
(otherwise (throw "OBS executable not defined for $(Sys.systemName)"))))))
|
||||
|
||||
(prop &mut :Bool paused false)
|
||||
(prop &mut :Continuation onComplete null)
|
||||
|
||||
(method pause []
|
||||
(unless paused
|
||||
(stopObs)
|
||||
(TimerWithPause.pause)
|
||||
(set paused true)
|
||||
(director.pause)))
|
||||
@@ -226,6 +211,27 @@
|
||||
(director.resume)
|
||||
(TimerWithPause.resume)))
|
||||
|
||||
(prop &mut promptedRecording false)
|
||||
(method promptToRecord [:Continuation cc]
|
||||
(unless kiss_tools.OBSTools.obsIsRecording
|
||||
(director.chooseString
|
||||
"Start recording?"
|
||||
["Yes" "No"]
|
||||
->:Void choice
|
||||
(case choice
|
||||
("Yes"
|
||||
(set promptedRecording true)
|
||||
(kiss_tools.OBSTools.startObs)
|
||||
(cc))
|
||||
(otherwise (cc))))))
|
||||
|
||||
(method stopPromptedRecording []
|
||||
(set promptedRecording (and promptedRecording kiss_tools.OBSTools.obsIsRecording))
|
||||
(when promptedRecording
|
||||
(kiss_tools.OBSTools.stopObs)
|
||||
(set promptedRecording false)))
|
||||
|
||||
|
||||
(prop :Map<String,Array<String>> positionsInScene (new Map))
|
||||
(method resolvePosition [:Dynamic position]
|
||||
(typeCase [position]
|
||||
|
Reference in New Issue
Block a user