2018-11-19 00:59:17 +11:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from __future__ import absolute_import, division, unicode_literals
|
|
|
|
|
|
|
|
|
|
|
|
class PlayState(object):
|
|
|
|
# "empty" dict for the PLAYER_STATES above. Use copy.deepcopy to duplicate!
|
|
|
|
template = {
|
|
|
|
'type': None,
|
|
|
|
'time': {
|
|
|
|
'hours': 0,
|
|
|
|
'minutes': 0,
|
|
|
|
'seconds': 0,
|
|
|
|
'milliseconds': 0},
|
|
|
|
'totaltime': {
|
|
|
|
'hours': 0,
|
|
|
|
'minutes': 0,
|
|
|
|
'seconds': 0,
|
|
|
|
'milliseconds': 0},
|
|
|
|
'speed': 0,
|
|
|
|
'shuffled': False,
|
|
|
|
'repeat': 'off',
|
|
|
|
'position': None,
|
|
|
|
'playlistid': None,
|
|
|
|
'currentvideostream': -1,
|
|
|
|
'currentaudiostream': -1,
|
|
|
|
'subtitleenabled': False,
|
|
|
|
'currentsubtitle': -1,
|
|
|
|
'file': None,
|
|
|
|
'kodi_id': None,
|
|
|
|
'kodi_type': None,
|
|
|
|
'plex_id': None,
|
|
|
|
'plex_type': None,
|
|
|
|
'container_key': None,
|
|
|
|
'volume': 100,
|
|
|
|
'muted': False,
|
|
|
|
'playmethod': None,
|
2019-11-03 01:58:22 +11:00
|
|
|
'playcount': None,
|
2021-02-08 07:42:47 +11:00
|
|
|
'external_player': False, # bool - xbmc.Player().isExternalPlayer()
|
|
|
|
'intro_markers': [],
|
2018-11-19 00:59:17 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
# Kodi player states - here, initial values are set
|
|
|
|
self.player_states = {
|
|
|
|
0: {},
|
|
|
|
1: {},
|
|
|
|
2: {}
|
|
|
|
}
|
|
|
|
# The LAST playstate once playback is finished
|
|
|
|
self.old_player_states = {
|
|
|
|
0: {},
|
|
|
|
1: {},
|
|
|
|
2: {}
|
|
|
|
}
|
|
|
|
self.played_info = {}
|
|
|
|
|
2019-10-05 19:29:08 +10:00
|
|
|
# Currently playing PKC item, a PlaylistItem()
|
|
|
|
self.item = None
|
|
|
|
|
2018-11-19 00:59:17 +11:00
|
|
|
# Was the playback initiated by the user using the Kodi context menu?
|
|
|
|
self.context_menu_play = False
|
|
|
|
# Set by context menu - shall we force-transcode the next playing item?
|
|
|
|
self.force_transcode = False
|
|
|
|
# Which Kodi player is/has been active? (either int 1, 2 or 3)
|
|
|
|
self.active_players = set()
|