padadapter.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/usr/bin/python
  2. from simplemidi.alsaconnector import AlsaPort
  3. from simplemidi.options import *
  4. class PadAdapter:
  5. _DEFAULT_PARAMS={
  6. 'name': None,
  7. 'autoconnect_in': None,
  8. 'autoconnect_out': None
  9. }
  10. def __init__(self, param):
  11. param=initParams(PadAdapter._DEFAULT_PARAMS, param)
  12. self.name=param['name']
  13. self.autoIn=param['autoconnect_in']
  14. self.autoOut=param['autoconnect_out']
  15. def adapt(self, pad):
  16. self.__init_port_out(pad)
  17. self.__init_port_in(pad)
  18. self.onAdapt(pad)
  19. def __init_port_in(self, pad):
  20. if not pad.iport.isOpen():
  21. self.initPortIn(pad)
  22. if self.autoIn:
  23. self.autoconnectIn(pad)
  24. def __init_port_out(self, pad):
  25. if not pad.oport.isOpen():
  26. self.initPortOut(pad)
  27. if self.autoOut:
  28. self.autoconnectOut(pad)
  29. def initPortIn(self, pad):
  30. pad.iport.open()
  31. def initPortOut(self, pad):
  32. pad.oport.open()
  33. def autoconnectIn(self, pad):
  34. i=0
  35. x= pad.iport.getPorts()
  36. for p in x:
  37. if str(p).find(self.autoIn)>=0:
  38. a=AlsaPort(p)
  39. pad.connectIn(a.globalId)
  40. i=i+1
  41. def autoconnectOut(self, pad):
  42. i=0
  43. x= pad.oport.getPorts()
  44. for p in x:
  45. if str(p).find(self.autoOut)>=0:
  46. a=AlsaPort(p)
  47. pad.connectOut(AlsaPort(p).globalId)
  48. i=i+1