🐛[bugfix] Model : overlayのバグを修正

fontのバスを修正
翻訳の変数の型がstr -> listに変更になったため、修正
This commit is contained in:
misyaguziya
2024-11-16 02:41:23 +09:00
parent ea12cbc083
commit 59f544396c
3 changed files with 27 additions and 28 deletions

View File

@@ -92,7 +92,6 @@ class Overlay:
for i, size in enumerate(self.settings.keys()):
self.handle[size] = self.overlay.createOverlay(f"VRCT{i}", f"VRCT{i}")
self.overlay.showOverlay(self.handle[size])
self.initialized = True
for size in self.settings.keys():
self.updateImage(Image.new("RGBA", (1, 1), (0, 0, 0, 0)), size)
@@ -109,6 +108,7 @@ class Overlay:
self.settings[size]["tracker"],
size
)
self.initialized = True
except Exception as e:
printLog("error:Could not initialise OpenVR", e)
@@ -248,9 +248,10 @@ class Overlay:
self.mainloop()
def startOverlay(self):
self.thread_overlay = Thread(target=self.main)
self.thread_overlay.daemon = True
self.thread_overlay.start()
if self.checkSteamvrRunning() and self.initialized is False:
self.thread_overlay = Thread(target=self.main)
self.thread_overlay.daemon = True
self.thread_overlay.start()
def shutdownOverlay(self):
if isinstance(self.thread_overlay, Thread):
@@ -315,7 +316,9 @@ if __name__ == "__main__":
overlay_image = OverlayImage()
overlay = Overlay(settings_dict)
overlay.startOverlay()
time.sleep(1)
while overlay.initialized is False:
time.sleep(1)
# Example usage
img = overlay_image.createOverlayImageLargeLog("send", "こんにちは、世界!さようなら", "Japanese", "Hello,World!Goodbye", "Japanese")

View File

@@ -51,10 +51,12 @@ class OverlayImage:
font_family = self.LANGUAGES.get(language, "NotoSansJP-Regular")
img = Image.new("RGBA", (base_width, base_height), (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", f"{font_family}.ttf")
try:
font_path = os_path.join(os_path.dirname(os_path.dirname(os_path.dirname(__file__))), "fonts", f"{font_family}.ttf")
font = ImageFont.truetype(font_path, font_size)
except Exception:
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", f"{font_family}.ttf")
font = ImageFont.truetype(font_path, font_size)
text_width = draw.textlength(text, font)
@@ -126,10 +128,12 @@ class OverlayImage:
img = Image.new("RGBA", (0, 0), (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", f"{font_family}.ttf")
try:
font_path = os_path.join(os_path.dirname(os_path.dirname(os_path.dirname(__file__))), "fonts", f"{font_family}.ttf")
font = ImageFont.truetype(font_path, font_size)
except Exception:
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", f"{font_family}.ttf")
font = ImageFont.truetype(font_path, font_size)
text_width = draw.textlength(text, font)
@@ -158,10 +162,12 @@ class OverlayImage:
img = Image.new("RGBA", (0, 0), (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", "NotoSansJP-Regular.ttf")
try:
font_path = os_path.join(os_path.dirname(os_path.dirname(os_path.dirname(__file__))), "fonts", "NotoSansJP-Regular.ttf")
font = ImageFont.truetype(font_path, font_size)
except Exception:
font_path = os_path.join(os_path.dirname(__file__), "..", "..", "..", "fonts", "NotoSansJP-Regular.ttf")
font = ImageFont.truetype(font_path, font_size)
text_height = font_size + ui_padding

View File

@@ -251,7 +251,7 @@ class Controller:
model.logger.info(f"[SENT] {message}{translation}")
if config.OVERLAY_LARGE_LOG is True and model.overlay.initialized is True:
overlay_image = model.createOverlayImageLargeLog("send", message, translation)
overlay_image = model.createOverlayImageLargeLog("send", message, translation[0] if len(translation) > 0 else "")
model.updateOverlayLargeLog(overlay_image)
def speakerMessage(self, message) -> None:
@@ -290,11 +290,11 @@ class Controller:
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
if config.OVERLAY_SMALL_LOG is True and model.overlay.initialized is True:
overlay_image = model.createOverlayImageSmallLog(message, translation)
overlay_image = model.createOverlayImageSmallLog(message, translation[0] if len(translation) > 0 else "")
model.updateOverlaySmallLog(overlay_image)
if config.OVERLAY_LARGE_LOG is True and model.overlay.initialized is True:
overlay_image = model.createOverlayImageLargeLog("receive", message, translation)
overlay_image = model.createOverlayImageLargeLog("receive", message, translation[0] if len(translation) > 0 else "")
model.updateOverlayLargeLog(overlay_image)
if config.SEND_RECEIVED_MESSAGE_TO_VRC is True:
@@ -361,7 +361,7 @@ class Controller:
model.oscSendMessage(osc_message)
if config.OVERLAY_LARGE_LOG is True:
overlay_image = model.createOverlayImageLargeLog("send", message, translation)
overlay_image = model.createOverlayImageLargeLog("send", message, translation[0] if len(translation) > 0 else "")
model.updateOverlayLargeLog(overlay_image)
# update textbox message log (Sent)
@@ -1167,8 +1167,7 @@ class Controller:
@staticmethod
def setEnableOverlaySmallLog(*args, **kwargs) -> dict:
config.OVERLAY_SMALL_LOG = True
if model.overlay.initialized is False and model.overlay.checkSteamvrRunning() is True:
model.startOverlay()
model.startOverlay()
return {"status":200, "result":config.OVERLAY_SMALL_LOG}
@staticmethod
@@ -1197,8 +1196,7 @@ class Controller:
@staticmethod
def setEnableOverlayLargeLog(*args, **kwargs) -> dict:
config.OVERLAY_LARGE_LOG = True
if model.overlay.initialized is False and model.overlay.checkSteamvrRunning() is True:
model.startOverlay()
model.startOverlay()
return {"status":200, "result":config.OVERLAY_LARGE_LOG}
@staticmethod
@@ -1356,10 +1354,8 @@ class Controller:
def setEnableTranscriptionSend(self, *args, **kwargs) -> dict:
self.startThreadingTranscriptionSendMessage()
config.ENABLE_TRANSCRIPTION_SEND = True
if (config.OVERLAY_LARGE_LOG is True and
model.overlay.initialized is False and
model.overlay.checkSteamvrRunning() is True):
model.startOverlay()
if config.OVERLAY_LARGE_LOG is True:
model.startOverlay()
return {"status":200, "result":config.ENABLE_TRANSCRIPTION_SEND}
def setDisableTranscriptionSend(self, *args, **kwargs) -> dict:
@@ -1369,14 +1365,8 @@ class Controller:
def setEnableTranscriptionReceive(self, *args, **kwargs) -> dict:
self.startThreadingTranscriptionReceiveMessage()
if (config.OVERLAY_SMALL_LOG is True and
model.overlay.initialized is False and
model.overlay.checkSteamvrRunning() is True):
model.startOverlay()
if (config.OVERLAY_LARGE_LOG is True and
model.overlay.initialized is False and
model.overlay.checkSteamvrRunning() is True):
model.startOverlay()
if (config.OVERLAY_SMALL_LOG is True or config.OVERLAY_LARGE_LOG is True):
model.startOverlay()
config.ENABLE_TRANSCRIPTION_RECEIVE = True
return {"status":200, "result":config.ENABLE_TRANSCRIPTION_RECEIVE}