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>
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
"""Handles /live/groove/* OSC addresses."""
|
||||
import logging
|
||||
from typing import Optional
|
||||
from .handler import AbletonOSCHandler
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class GrooveHandler(AbletonOSCHandler):
|
||||
def init_api(self) -> None:
|
||||
self.clear_listeners()
|
||||
self._add("/live/groove/get/grooves", self._get_grooves)
|
||||
self._add("/live/groove/get/amount", self._get_groove_amount)
|
||||
self._add("/live/groove/set/amount", self._set_groove_amount)
|
||||
|
||||
def _pool(self):
|
||||
try:
|
||||
return self.song.groove_pool
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def _get_grooves(self, params: tuple) -> Optional[tuple]:
|
||||
pool = self._pool()
|
||||
if pool is None:
|
||||
return None
|
||||
try:
|
||||
return tuple(g.name for g in pool.grooves)
|
||||
except Exception as e:
|
||||
logger.warning("get grooves: %s", e)
|
||||
return None
|
||||
|
||||
def _get_groove_amount(self, params: tuple) -> Optional[tuple]:
|
||||
"""params: groove_name"""
|
||||
pool = self._pool()
|
||||
if pool is None or not params:
|
||||
return None
|
||||
name = str(params[0])
|
||||
try:
|
||||
for g in pool.grooves:
|
||||
if g.name == name:
|
||||
return (name, float(g.amount))
|
||||
except Exception as e:
|
||||
logger.warning("get groove amount: %s", e)
|
||||
return None
|
||||
|
||||
def _set_groove_amount(self, params: tuple) -> None:
|
||||
"""params: groove_name, amount"""
|
||||
pool = self._pool()
|
||||
if pool is None or len(params) < 2:
|
||||
return None
|
||||
name = str(params[0])
|
||||
amount = float(params[1])
|
||||
try:
|
||||
for g in pool.grooves:
|
||||
if g.name == name:
|
||||
g.amount = amount
|
||||
break
|
||||
except Exception as e:
|
||||
logger.warning("set groove amount: %s", e)
|
||||
return None
|
||||
Reference in New Issue
Block a user