Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / models / Audio.dtram
model {
channel CIO3 {
	out BGMVolume(b: Double, setBGM(b2)) == b2
}
channel CIO2 {
	out soundVolume(s: Double, setSound(s2)) == s2
}
channel CIO1 {
	out audioVolume(a: Double, setAudio(a2)) == a2
}
channel C1 {
	in audioVolume(a, calc(a2, s2)) == a2
	in soundVolume(s, calc(a2, s2)) == s2
	out outputSoundVolume(os, calc(a2, s2)) == a2 * s2
}
channel C2 {
	in audioVolume(a, calc(a2, b2)) == a2
	in BGMVolume(b, calc(a2, b2)) == b2
	out outputBGMVolume(ob, calc(a2, b2)) == a2 * b2
}
}
geometry {
	node r soundVolume:220,140,80,30
	node r audioVolume:220,280,80,30
	node r outputSoundVolume:650,190,80,30
	node r BGMVolume:220,420,80,30
	node r outputBGMVolume:650,340,80,30
	node ioc CIO3:100,420,30,30
	node ioc CIO2:100,140,30,30
	node ioc CIO1:100,280,30,30
	node c C1:530,190,30,30
	node c C2:530,340,30,30
}