Files
ableton-osc/ableton_osc/application.py
T
valknar b7cec9d24b Rename package directory AbletonOSC/ -> ableton_osc/
Python package naming convention uses snake_case. Update the import in
the root __init__.py and the setuptools include pattern in pyproject.toml.
Internal relative imports within the package are unaffected.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 13:46:34 +02:00

52 lines
1.7 KiB
Python

"""Handles /live/application/* OSC addresses."""
import logging
from typing import Optional
from .handler import AbletonOSCHandler
logger = logging.getLogger(__name__)
class ApplicationHandler(AbletonOSCHandler):
def init_api(self) -> None:
self.clear_listeners()
self._add("/live/application/get/version", self._get_version)
self._add("/live/application/get/average_process_usage",
self._get_average_process_usage)
self._add("/live/application/get/peak_process_usage",
self._get_peak_process_usage)
def _app(self):
try:
return self.manager.application
except Exception:
return None
def _get_version(self, params: tuple) -> Optional[tuple]:
app = self._app()
if app:
try:
major, minor = app.get_major_version(), app.get_minor_version()
build = app.get_bugfix_version()
return (major, minor, build)
except Exception as e:
logger.warning("get version: %s", e)
return None
def _get_average_process_usage(self, params: tuple) -> Optional[tuple]:
app = self._app()
if app:
try:
return (float(app.average_process_usage),)
except Exception as e:
logger.warning("get avg process usage: %s", e)
return None
def _get_peak_process_usage(self, params: tuple) -> Optional[tuple]:
app = self._app()
if app:
try:
return (float(app.peak_process_usage),)
except Exception as e:
logger.warning("get peak process usage: %s", e)
return None