diff options
Diffstat (limited to 'external/plyer/facades/irblaster.py')
-rw-r--r-- | external/plyer/facades/irblaster.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/external/plyer/facades/irblaster.py b/external/plyer/facades/irblaster.py new file mode 100644 index 0000000..0e15a07 --- /dev/null +++ b/external/plyer/facades/irblaster.py @@ -0,0 +1,59 @@ +class IrBlaster(object): + '''Infrared blaster facade.''' + + @staticmethod + def periods_to_microseconds(frequency, pattern): + '''Convert a pattern from period counts to microseconds. + ''' + period = 1000000. / frequency + return [period * x for x in pattern] + + @staticmethod + def microseconds_to_periods(frequency, pattern): + '''Convert a pattern from microseconds to period counts. + ''' + period = 1000000. / frequency + return [x / period for x in pattern] + + @property + def frequencies(self): + '''Property which contains a list of frequency ranges + supported by the device in the form: + + [(from1, to1), + (from2, to2), + ... + (fromN, toN)] + ''' + return self.get_frequencies() + + def get_frequencies(self): + return self._get_frequencies() + + def _get_frequencies(self): + raise NotImplementedError() + + def transmit(self, frequency, pattern, mode='period'): + '''Transmit an IR sequence. + + :parameters: + `frequency`: int + Carrier frequency for the IR transmission. + `pattern`: list[int] + Burst pair pattern to transmit. + `mode`: str, defaults to 'period' + Specifies the format of the pattern values. + Can be 'period' or 'microseconds'. + ''' + return self._transmit(frequency, pattern, mode) + + def _transmit(self, frequency, pattern, mode): + raise NotImplementedError() + + def exists(self): + '''Check if the device has an infrared emitter. + ''' + return self._exists() + + def _exists(self): + raise NotImplementedError() |