Advertisement
Guest User

vlcwrap.py

a guest
Dec 9th, 2013
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. import os
  2. import sys
  3. import pythoncom, pyHook
  4. import win32api
  5. import subprocess
  6. import ctypes
  7.  
  8. def kbeventhandler(event,instance):
  9.    
  10.     if event.Key=='Home':
  11.         instance.play_prev()
  12.     if event.Key=='End':
  13.         instance.play_next()
  14.     return True
  15.  
  16. class vlc(object):
  17.     def __init__(self,filepath,vlcp):
  18.         self.fn=filepath
  19.         self.vlcpath=vlcp
  20.         self.process = subprocess.Popen([self.vlcpath, self.fn])
  21.     def kill(self):
  22.         PROCESS_TERMINATE = 1
  23.         handle = ctypes.windll.kernel32.OpenProcess(PROCESS_TERMINATE, False, self.process.pid)
  24.         ctypes.windll.kernel32.TerminateProcess(handle, -1)
  25.         ctypes.windll.kernel32.CloseHandle(handle)
  26.         print self.process.poll()
  27.     def play_next(self):
  28.         self.kill()
  29.         f=self.get_new_file(1)
  30.         self.process = subprocess.Popen([self.vlcpath, f])
  31.         self.fn=f
  32.     def play_prev(self):
  33.         self.kill()
  34.         f=self.get_new_file(-1)
  35.         self.process = subprocess.Popen([self.vlcpath, f])
  36.         self.fn=f
  37.    
  38.     def get_new_file(self,switch):
  39.        
  40.         dirname= os.path.dirname(self.fn)    
  41.         supplist=['.mkv','.flv','.avi','.mpg','.wmv']
  42.         files = [os.path.join(dirname,f) for f in os.listdir(dirname) if (os.path.isfile(os.path.join(dirname,f)) and os.path.splitext(f)[-1]in supplist)]
  43.         files.sort()
  44.         try: currentindex=files.index(self.fn)
  45.         except: currentindex=0
  46.         i=0
  47.         if switch==1:
  48.             if currentindex<(len(files)-1):i=currentindex+1
  49.            
  50.         else:
  51.             if currentindex>0:i=currentindex-1
  52.            
  53.         return files[i]    
  54.  
  55. def main():
  56.     vlcpath='vlc'
  57.     if os.name=='nt': vlcpath='C:/Program Files (x86)/VideoLAN/VLC/vlc.exe'
  58.     fn='H:\\Anime\\needless\\Needless_[E-D]\\[Exiled-Destiny]_Needless_Ep11v2_(04B16479).mkv'
  59.     if len(sys.argv)>1:
  60.         fn=sys.argv[1] #use argument if available or else use default file
  61.     instance=vlc(fn,vlcpath)
  62.     hm = pyHook.HookManager()
  63.     def kbwrap(event):
  64.         kbeventhandler(event,instance)
  65.     hm.KeyDown = kbwrap
  66.     hm.HookKeyboard()    
  67.     pythoncom.PumpMessages()
  68.    
  69. if __name__ == '__main__':
  70.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement