logger.info logs added

voicemeeter-api, vban-cmd dependency ver updated

changelog updated to reflect changes

minor version bump
This commit is contained in:
onyx-and-iris 2022-09-29 13:45:06 +01:00
parent d4b2b90fc0
commit 35775f5024
9 changed files with 49 additions and 15 deletions

2
.gitignore vendored
View File

@ -1,5 +1,5 @@
# quick test # quick test
z_*.py quick.py
# Byte-compiled / optimized / DLL files # Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/

View File

@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- [ ] Add support for forest theme (should be coming soon) - [ ] Add support for forest theme (should be coming soon)
## [1.6.0] - 2022-09-29
### Added
- Logging module used in place of print statements across the interface.
## [1.5.1] - 2022-09-16 ## [1.5.1] - 2022-09-16
### Added ### Added
@ -20,8 +26,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- sv_ttk updated to v2.0. - sv_ttk updated to v2.0.
- event toggles used to pause updates when dragging sliders. - event toggles used to pause updates when dragging sliders.
### Removed
## [1.4.2] - 2022-09-03 ## [1.4.2] - 2022-09-03
### Added ### Added

6
poetry.lock generated
View File

@ -84,7 +84,7 @@ python-versions = ">=3.7"
[[package]] [[package]]
name = "vban-cmd" name = "vban-cmd"
version = "1.4.4" version = "1.5.2"
description = "Python interface for the VBAN RT Packet Service (Sendtext)" description = "Python interface for the VBAN RT Packet Service (Sendtext)"
category = "main" category = "main"
optional = false optional = false
@ -95,7 +95,7 @@ tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""}
[[package]] [[package]]
name = "voicemeeter-api" name = "voicemeeter-api"
version = "0.7.0" version = "0.8.1"
description = "A Python wrapper for the Voiceemeter API" description = "A Python wrapper for the Voiceemeter API"
category = "main" category = "main"
optional = false optional = false
@ -107,7 +107,7 @@ tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""}
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.10" python-versions = "^3.10"
content-hash = "1013fe45920526153e77b65bd21f9cdaac34841917159ea85565bec747c1e455" content-hash = "0fc1f7b08a87f389504c898142c5a0f2ed20c8f56deabb3028fa815774b7fc98"
[metadata.files] [metadata.files]
black = [] black = []

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "voicemeeter-compact" name = "voicemeeter-compact"
version = "1.5.3" version = "1.6.0"
description = "A Compact Voicemeeter Remote App" description = "A Compact Voicemeeter Remote App"
authors = ["onyx-and-iris <code@onyxandiris.online>"] authors = ["onyx-and-iris <code@onyxandiris.online>"]
license = "MIT" license = "MIT"
@ -16,8 +16,8 @@ include = ["vmcompact/img/cat.ico"]
python = "^3.10" python = "^3.10"
sv-ttk = "^2.0" sv-ttk = "^2.0"
tomli = { version = "^2.0.1", python = "<3.11" } tomli = { version = "^2.0.1", python = "<3.11" }
voicemeeter-api = "^0.7.0" voicemeeter-api = "^0.8.1"
vban-cmd = "^1.4.4" vban-cmd = "^1.5.2"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
black = {version = "^22.6.0", allow-prereleases = true} black = {version = "^22.6.0", allow-prereleases = true}

View File

@ -35,6 +35,8 @@ class App(tk.Tk):
self._vmr = vmr self._vmr = vmr
self._vmr.event.add("ldirty") self._vmr.event.add("ldirty")
self._vmr.event.remove("mdirty")
self._vmr.event.remove("midi")
icon_path = Path(__file__).parent.resolve() / "img" / "cat.ico" icon_path = Path(__file__).parent.resolve() / "img" / "cat.ico"
if icon_path.is_file(): if icon_path.is_file():
self.iconbitmap(str(icon_path)) self.iconbitmap(str(icon_path))

View File

@ -1,4 +1,5 @@
import abc import abc
import logging
import tkinter as tk import tkinter as tk
from functools import partial from functools import partial
from tkinter import ttk from tkinter import ttk
@ -27,6 +28,8 @@ class AbstractBuilder(abc.ABC):
class MainFrameBuilder(AbstractBuilder): class MainFrameBuilder(AbstractBuilder):
"""Responsible for building the frames that sit directly on the mainframe""" """Responsible for building the frames that sit directly on the mainframe"""
logger = logging.getLogger("builders.mainframebuilder")
def __init__(self, app): def __init__(self, app):
self.kind = app.kind self.kind = app.kind
self.app = app self.app = app
@ -39,24 +42,26 @@ class MainFrameBuilder(AbstractBuilder):
if _configuration.themes_enabled: if _configuration.themes_enabled:
if sv_ttk.get_theme() not in ("light", "dark"): if sv_ttk.get_theme() not in ("light", "dark"):
sv_ttk.set_theme(_configuration.theme_mode) sv_ttk.set_theme(_configuration.theme_mode)
print(f"Sunvalley {sv_ttk.get_theme().capitalize()} Theme applied") self.logger.info(
f"Sunvalley {sv_ttk.get_theme().capitalize()} Theme applied"
self.app.target.event.remove("mdirty") )
self.app.target.event.remove("midi")
def create_channelframe(self, type_): def create_channelframe(self, type_):
if type_ == "strip": if type_ == "strip":
self.app.strip_frame = _make_channelframe(self.app, type_) self.app.strip_frame = _make_channelframe(self.app, type_)
else: else:
self.app.bus_frame = _make_channelframe(self.app, type_) self.app.bus_frame = _make_channelframe(self.app, type_)
self.logger.info(f"Finished building channelframe type {type_}")
def create_separator(self): def create_separator(self):
self.app.sep = ttk.Separator(self.app, orient="vertical") self.app.sep = ttk.Separator(self.app, orient="vertical")
self.app.sep.grid(row=0, column=1, sticky=(tk.N, tk.S)) self.app.sep.grid(row=0, column=1, sticky=(tk.N, tk.S))
self.app.columnconfigure(1, minsize=15) self.app.columnconfigure(1, minsize=15)
self.logger.info(f"Finished building separator")
def create_navframe(self): def create_navframe(self):
self.app.nav_frame = Navigation(self.app) self.app.nav_frame = Navigation(self.app)
self.logger.info(f"Finished building navframe")
def create_configframe(self, type_, index, id): def create_configframe(self, type_, index, id):
if type_ == "strip": if type_ == "strip":
@ -102,6 +107,7 @@ class MainFrameBuilder(AbstractBuilder):
) )
for _, frame in enumerate(self.app.bus_frame.labelframes) for _, frame in enumerate(self.app.bus_frame.labelframes)
] ]
self.logger.info(f"Finished building configframe for {type_}[{index}]")
self.app.after(5, self.reset_config_frames) self.app.after(5, self.reset_config_frames)
def reset_config_frames(self): def reset_config_frames(self):
@ -114,6 +120,7 @@ class MainFrameBuilder(AbstractBuilder):
def create_banner(self): def create_banner(self):
self.app.banner = Banner(self.app) self.app.banner = Banner(self.app)
self.app.banner.grid(row=4, column=0, columnspan=3) self.app.banner.grid(row=4, column=0, columnspan=3)
self.logger.info(f"Finished building banner")
def teardown(self): def teardown(self):
pass pass

View File

@ -1,3 +1,4 @@
import logging
from pathlib import Path from pathlib import Path
try: try:
@ -5,6 +6,8 @@ try:
except ModuleNotFoundError: except ModuleNotFoundError:
import tomli as tomllib import tomli as tomllib
LOGGER = logging.getLogger("configurations")
configuration = {} configuration = {}
config_path = [Path.cwd() / "configs"] config_path = [Path.cwd() / "configs"]
@ -21,7 +24,7 @@ for path in config_path:
print(f"Invalid TOML config: configs/{filename.stem}") print(f"Invalid TOML config: configs/{filename.stem}")
for name, cfg in configs.items(): for name, cfg in configs.items():
print(f"Loaded configuration configs/{name}") LOGGER.info(f"Loaded configuration configs/{name}")
configuration[name] = cfg configuration[name] = cfg
_defaults = { _defaults = {

View File

@ -1,3 +1,4 @@
import logging
import tkinter as tk import tkinter as tk
import webbrowser import webbrowser
from functools import partial from functools import partial
@ -11,6 +12,8 @@ from .data import _base_values, _configuration, get_configuration, kind_get
class Menus(tk.Menu): class Menus(tk.Menu):
logger = logging.getLogger("menu.menus")
def __init__(self, parent, vmr): def __init__(self, parent, vmr):
super().__init__() super().__init__()
self.parent = parent self.parent = parent
@ -268,6 +271,9 @@ class Menus(tk.Menu):
for menu in self.menu_layout.winfo_children() for menu in self.menu_layout.winfo_children()
if isinstance(menu, tk.Menu) if isinstance(menu, tk.Menu)
] ]
self.logger.info(
f"Finished loading theme Sunvalley {sv_ttk.get_theme().capitalize()} theme"
)
def menu_teardown(self, i): def menu_teardown(self, i):
# remove config load menus # remove config load menus
@ -304,11 +310,14 @@ class Menus(tk.Menu):
self.vban = vban_cmd.api(kind_id, **opts) self.vban = vban_cmd.api(kind_id, **opts)
# login to vban interface # login to vban interface
try: try:
self.logger.info(f"Attempting vban connection to {opts.get('ip')}")
self.vban.login() self.vban.login()
except VBANCMDError as e: except VBANCMDError as e:
self.vban.logout()
msg = (str(e), f"Please check your connection settings") msg = (str(e), f"Please check your connection settings")
messagebox.showerror("Connection Error", "\n".join(msg)) messagebox.showerror("Connection Error", "\n".join(msg))
self.vban.logout() msg = (str(e), f"resuming local connection")
self.logger.error(", ".join(msg))
self.after(1, self.enable_vban_menus) self.after(1, self.enable_vban_menus)
return return
self.menu_teardown(i) self.menu_teardown(i)

View File

@ -1,3 +1,4 @@
import logging
import tkinter as tk import tkinter as tk
from tkinter import ttk from tkinter import ttk
@ -7,6 +8,8 @@ from .gainlayer import SubMixFrame
class Navigation(ttk.Frame): class Navigation(ttk.Frame):
logger = logging.getLogger("navigation.navigation")
def __init__(self, parent): def __init__(self, parent):
super().__init__(parent) super().__init__(parent)
self.parent = parent self.parent = parent
@ -26,6 +29,9 @@ class Navigation(ttk.Frame):
def show_submix(self): def show_submix(self):
if self.submix.get(): if self.submix.get():
self.parent.submix_frame = SubMixFrame(self.parent) self.parent.submix_frame = SubMixFrame(self.parent)
self.logger.info(
f"Finished building submixframe for submix {_configuration.submixes}"
)
else: else:
if _configuration.extends_horizontal: if _configuration.extends_horizontal:
self.parent.submix_frame.teardown() self.parent.submix_frame.teardown()
@ -39,6 +45,9 @@ class Navigation(ttk.Frame):
self.parent.bus_frame.grid() self.parent.bus_frame.grid()
else: else:
self.parent.rowconfigure(2, weight=0, minsize=0) self.parent.rowconfigure(2, weight=0, minsize=0)
self.logger.info(
f"Finished tearing down submixframe for submix {_configuration.submixes}"
)
if not _configuration.themes_enabled: if not _configuration.themes_enabled:
self.styletable.configure( self.styletable.configure(