Example #1
0
    def free(self):
        """Call this once you are done with the audio device list.

        This might happen if you are, for instance, refreshing the list of audio devices with a new list.
        """
        if self.valid():
            vlc.libvlc_audio_output_device_list_release(self.device_list_ptr)
            self._valid = False
Example #2
0
    def __init__(self, root):
        self.root = root
        self.root.iconbitmap(resource_path('favicon.ico'))
        self.root.title('WinDJHelper')
        default_font = font.nametofont('TkDefaultFont')
        default_font.configure(size=14)
        self.root.option_add('*Font', default_font)
        self.root.bind('<<keypressed>>', self.button_press)

        self.player = vlc.Instance().media_player_new()

        result = []
        mods = self.player.audio_output_device_enum()

        if mods:
            mod = mods
            while mod:
                mod = mod.contents
                result.append((mod.description.decode('ascii'),
                               mod.device.decode('ascii')))
                mod = mod.next

        vlc.libvlc_audio_output_device_list_release(mods)

        devices = ''
        max_device_len = 0
        for index, value in enumerate(result):
            device_str = f'{value[0]}: {value[1]}'
            devices += device_str
            if len(device_str) > max_device_len:
                max_device_len = len(device_str)
            if index != len(result) - 1:
                devices += '\n'

        self.title = tk.Label(root, text='DEVICES:')
        self.title.grid(row=0, padx=5, pady=(5, 0))

        self.label1 = tk.Text(self.root,
                              height=len(result),
                              width=max_device_len)
        self.label1.insert(1.0, devices)
        self.label1.configure(state='disabled',
                              bg=root.cget('bg'),
                              relief=tk.FLAT)
        self.label1.grid(row=1, padx=5, pady=5)

        self.scancodeval = tk.StringVar()
        self.scancodeval.set('KEY CODES:\n')
        self.label2 = tk.Label(self.root, textvariable=self.scancodeval)
        self.label2.grid(row=2, padx=5, pady=5)

        # buttons
        ok = tk.Button(self.root, width=8, text='OK', command=self.dismiss)
        ok.grid(row=3, padx=5, pady=(0, 5))
        ok.focus_set()
Example #3
0
    def __init__(self, root):
        self.root = root
        self.root.iconbitmap('favicon.ico')
        self.root.title('WinDJHelper')
        default_font = tkFont.nametofont("TkDefaultFont")
        default_font.configure(size=14)
        self.root.option_add("*Font", default_font)
        self.root.bind('<<keypressed>>', self.ButtonPress)

        # message

        self.Instance = vlc.Instance()
        self.player = self.Instance.media_player_new()

        result = []
        mods = self.player.audio_output_device_enum()

        if mods:
            mod = mods
            while mod:
                mod = mod.contents
                result.append((mod.description, mod.device))
                mod = mod.next

        vlc.libvlc_audio_output_device_list_release(mods)

        devices = ''
        for index, value in enumerate(result):
            devices += '%s: %s' % (value[0], value[1])
            if index != len(result)-1:
                devices += '\n'

        self.title = Label(root, text='DEVICES:')
        self.title.grid(row=0, padx=5, pady=(5,0))

        self.label1 = Text(self.root, height=len(result))
        self.label1.insert(1.0, devices)
        self.label1.configure(state="disabled")
        self.label1.configure(bg=root.cget('bg'), relief=FLAT)
        self.label1.grid(row=1, padx=5, pady=5)

        self.scancodeval = StringVar()
        self.scancodeval.set('KEY CODES:\n')
        self.label2 = Label(self.root, textvariable=self.scancodeval)
        self.label2.grid(row=2, padx=5, pady=5)

        # buttons
        ok = Button(self.root, width=8, text='OK', command=self.dismiss)
        ok.grid(row=3, padx=5, pady=(0,5))
        ok.focus_set()
Example #4
0
def initialize_vlc(card=0):
    global vlc_player
    global vlc_instance

    vlc_instance = vlc.Instance()
    vlc_player = vlc_instance.media_player_new()
    devices = []
    mods = vlc_player.audio_output_device_enum()
    if mods:
        mod = mods
        while mod:
            mod = mod.contents
            devices.append(mod.device)
            mod = mod.next
    vlc.libvlc_audio_output_device_list_release(mods)
    vlc_player.audio_output_device_set(None, devices[card])
    vlc_player.audio_set_volume(vlc_volume)
Example #5
0
    async def play(self, filepath):
        # something is playing, ignore
        if self.playing_instance['player']:
            return ()

        if filepath not in self.players:
            media = self.vlc_instance.media_new_path(filepath)
            p = self.vlc_instance.media_player_new()

            for output in self.outputs:
                print(output)
            p.audio_output_set(self.outputs[1])
            devices = []
            print('before enum')

            modules = p.audio_output_device_enum()
            if modules:
                device = modules
                while device:
                    device = device.contents
                    devices.append(device.device)
                    device = device.next
            for device in devices:
                print(device)
            vlc.libvlc_audio_output_device_list_release(modules)
            print('after lrease')
            p.audio_output_device_set(None, devices[1])
            p.set_media(media)
            self.players[filepath] = p

        player = self.players[filepath]
        self.playing_instance['player'] = player
        self.playing_instance['filepath'] = filepath
        self.playing_instance['should_stop'] = False

        events = player.event_manager()
        events.event_attach(vlc.EventType.MediaPlayerEndReached,
                            self._sound_finished)
        events.event_attach(vlc.EventType.MediaPlayerPlaying,
                            self._sound_playing)
        player.play()
Example #6
0
    def __init__(self, audioPath, device=None):
        #store normal playlists
        self.CDs = []
        for CDPath in os.listdir(audioPath + '\\CDs'):
            self.CDs.append(CD(audioPath + '\\CDs\\' + CDPath))

        self.boards = []
        for CDPath in os.listdir(audioPath + '\\SoundBoards'):
            self.boards.append(CD(audioPath + '\\SoundBoards\\' + CDPath))

        self.CDIndex = None
        self.songIndex = None
        self.volume = 100
        self.Instance = vlc.Instance()
        self.player = self.Instance.media_player_new()

        self.board_index = None

        #self.player = vlc.MediaPlayer()
        #self.device=device
        if device:

            devices = []
            mods = self.player.audio_output_device_enum()

            if mods:
                mod = mods
                while mod:
                    mod = mod.contents
                    devices.append(mod.device)
                    mod = mod.next

            vlc.libvlc_audio_output_device_list_release(mods)

            # this is the part I change on each run of the code.
            for d in devices:
                if bytes(d) == device:

                    #print('aud device',bytes(devices[4]))
                    self.player.audio_output_device_set(None, d)
Example #7
0
    def get_output_devices(self):
        if sys.platform == 'win32':
            self._vlc_player.audio_output_set('waveout')
        devices = []
        mods = self._vlc_player.audio_output_device_enum()
        if mods:
            mod = mods
            while mod:
                mod = mod.contents
                try:
                    devices.append(
                        SoundDevice(mod.psz_description.decode('UTF-8'),
                                    mod.psz_device, SoundDeviceType.Output))
                except:
                    devices.append(
                        SoundDevice(mod.description.decode('UTF-8'),
                                    mod.device, SoundDeviceType.Output))
                try:
                    mod = mod.p_next
                except:
                    mod = mod.next

        vlc.libvlc_audio_output_device_list_release(mods)
        return devices
Example #8
0
import vlc
import re
import random
print("Instantiating the player")
instance = vlc.Instance()
micspam_player = instance.media_player_new()
#get device list
devices = []
mods = micspam_player.audio_output_device_enum()
if mods:
    mod = mods
    while mod:
        mod = mod.contents
        devices.append(mod.device)
        mod = mod.next
vlc.libvlc_audio_output_device_list_release(mods)
#print the dialogue for selecting the audio output
print("Select audio device: ")
iter = 0
for devname in devices:
    print(str(iter) + ") " + devname.decode("utf-8"))
    iter += 1
device_id = int(input())
while device_id < 0 or device_id > len(devices) - 1:
    print("No such device")
    device_id = int(input())
global device
device = devices[device_id]
#define some functions for help
mode = ""