-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdenon.py
More file actions
83 lines (73 loc) · 1.84 KB
/
denon.py
File metadata and controls
83 lines (73 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/python
# Denon amp implementation
__author__ = 'Pascal Hahn <ph@lxd.bz>'
import ampify
import socket
class Denon3312(ampify.Amplifier):
COMMANDS = {
'Power': {
'on': 'PWON',
'off': 'PWSTANDBY'
},
'MasterVolume': {
'up': 'MVUP',
'down': 'MVDOWN',
'set': 'MV%i',
},
'Mute': {
'on': 'MUON',
'off': 'MUOFF'
},
'Input': {
'phono': 'SIPHONO',
'cd': 'SICD',
'tuner': 'SITUNER',
'dvd': 'SIDVD',
'bluray': 'SIBD',
'tv': 'SITV',
'cable': 'SISAT/CBL',
'dvr': 'SIDVR',
'game': 'SIGAME',
'game2': 'SIGAME2',
'v.aux': 'SIV.AUX',
'dock': 'SIDOCK',
'net_usb': 'SINET/USB',
'lastfm': 'SILASTFM',
'flickr': 'SIFLICKR',
'favorites': 'SIFAVORITES',
'iradio': 'SIIRADIO',
'server': 'SISERVER',
},
'InputAndPlay': {
'ipod': 'SIIPOD',
'usb': 'SIUSB',
'ipod_direct': 'SIIPD',
'iradio': 'SIIRP',
'favorites': 'SIFVR'
},
'MainZone': {
'on': 'ZMON',
'off': 'ZMOFF'
},
'SleepTimer': {
'off': 'SLPOFF',
'on': 'SL%i'
},
}
def __init__(self, amp_ip):
super(Denon3312, self).__init__(
self.__class__.COMMANDS,
DenonIpConnector(amp_ip))
class DenonIpConnector(ampify.BaseConnector):
def __init__(self, amp_ip, timeout=2, amp_port=23):
self.amp_ip = amp_ip
self.amp_port = amp_port
self.timeout = timeout
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect((self.amp_ip, self.amp_port))
def execute(self, command):
self.sock.send(command + '\r')
if __name__ == '__main__':
myamp = Denon3312('192.168.94.220')
import pdb
pdb.set_trace()