コード例 #1
0
ファイル: oscbar.py プロジェクト: cmohnacs/OSCbar
    def build_menu(self):
        """ define menu, buttons, sliders """
        # menu items
        self.start_button = rumps.MenuItem(  # Start Osc
            title="Start Oscillator")
        self.stop_button = rumps.MenuItem(  # Stop Osc
            title="Stop Oscillator")
        self.amp_title = rumps.MenuItem(  # Volume title
            title=amp_title_format(self.amplitude),
            callback=None)
        self.amp_slider = rumps.SliderMenuItem(  # Volume slider
            value=self.amplitude,
            min_value=0.0,
            max_value=1.0,
            callback=self.adj_amp,
            dimensions=(200, 20))
        self.sine_wave_button = rumps.MenuItem(  # Sine Wave
            title="Sine Wave", callback=self.set_sine_wave)
        self.square_wave_button = rumps.MenuItem(  # Square Wave
            title="Square Wave", callback=self.set_square_wave)
        self.white_noise_button = rumps.MenuItem(  # White Noise
            title="White Noise", callback=self.set_white_noise)
        self.pink_noise_button = rumps.MenuItem(  # Pink Noise
            title="Pink Noise", callback=self.set_pink_noise)
        self.freq_title = rumps.MenuItem(  # Frequency: title
            title=freq_title_format(self.frequency),
            callback=None)
        self.freq_slider = rumps.SliderMenuItem(  # Frequency slider
            value=freq_to_slider(self.frequency),
            min_value=freq_to_slider(20),  # 20Hz - 20kHz
            max_value=freq_to_slider(20000),
            callback=self.adj_freq,
            dimensions=(200, 20))
        self.octave_button = rumps.MenuItem(  # Octave Walk
            title="Octave Walk",
            callback=lambda sender, timer=self.oct_timer: self.
            begin_octave_walk(sender, timer))
        self.octave_thirds_button = rumps.MenuItem(  # Octave Walk 1/3
            title="Octave Walk  â…“",
            callback=lambda sender, timer=self.oct_thirds_timer: self.
            begin_octave_walk(sender, timer))

        #populate menu
        self.app.menu = [
            self.start_button, self.stop_button, None, self.amp_title,
            self.amp_slider, None, self.sine_wave_button,
            self.square_wave_button, self.white_noise_button,
            self.pink_noise_button, None, self.freq_title, self.freq_slider,
            None, self.octave_button, self.octave_thirds_button, None
        ]
コード例 #2
0
    def __init__(self):

        super().__init__(name="AutoClicker", icon="mouselogo.icns")

        default_value = 0.0
        self.cps_value = AutoClicker.map_slider_to_cps(default_value)
        self.click_timer = rumps.Timer(
            lambda _: self.mouse.click(mouse.Button.left), 1 / self.cps_value)

        def timer_start(_):
            #print(rumps.timers())
            self.click_timer.start()

        self.menu = [
            rumps.MenuItem("Start", timer_start), None, "Stop key: esc",
            "Start key: \\", None, "cps_value",
            rumps.SliderMenuItem(dimensions=(180, 15),
                                 callback=self.change_cps,
                                 min_value=-1,
                                 max_value=5,
                                 value=default_value), None
        ]

        self.menu["cps_value"].title = f"CPS: {self.cps_value}"

        self.mouse = mouse.Controller()

        self.check_keys()
コード例 #3
0
    def setMenu(self, connected=True):
        self.prevItem = rumps.MenuItem(
            "Previous", callback=lambda _: self.device.previous())
        self.playPauseItem = rumps.MenuItem(
            "Play", callback=lambda _: self.__onPlayPauseClicked())
        self.nextItem = rumps.MenuItem("Next",
                                       callback=lambda _: self.device.next())

        self.volumeDescItem = rumps.MenuItem(
            "Volume", callback=lambda _: self.__onMuteClicked())
        self.volumeItem = rumps.SliderMenuItem(
            value=0,
            min_value=0,
            max_value=100,
            callback=lambda item: self.__onVolumeChanged(item.value))

        self.preferencesItem = rumps.MenuItem("Preferences")
        self.deviceSelectedItem = rumps.MenuItem(f"Device: {self.deviceName}")
        self.textShownItem = rumps.MenuItem(
            "Show Artist > Title in Menu Bar",
            callback=lambda _: self.__onTextShownChanged())
        self.textShownItem.state = int(self.config["TEXT_SHOWN"])
        # self.deviceSelectedItem = rumps.MenuItem(f"Device: {self.deviceName}", callback=lambda _ : self.__onDeviceSelectedClicked())
        for cc in self.chromecasts:
            name = cc.device.friendly_name
            self.deviceSelectedItem.add(
                rumps.MenuItem(name, callback=self.__onDeviceSelected))
        self.preferencesItem.add(self.deviceSelectedItem)
        self.preferencesItem.add(self.textShownItem)
        self.preferencesItem.add(None)
        for key in [
                "PREV_KEY", "PLAY_KEY", "NEXT_KEY", "MUTE_KEY", "VOLD_KEY",
                "VOLU_KEY"
        ]:
            self.preferencesItem.add(
                rumps.MenuItem(f"{KEY_NAMES[key]}: {self.config[key]}",
                               callback=self.__onKeyClicked))
        self.preferencesItem.add(None)
        self.reattachKeysItem = rumps.MenuItem(
            "Reload conf", callback=lambda _: self.__init__())
        self.preferencesItem.add(self.reattachKeysItem)

        self.aboutItem = rumps.MenuItem(
            "About",
            callback=lambda item: os.system(
                "open \"\" https://pierrejacquier.com/castmenu"))
        self.quitItem = rumps.MenuItem(
            "Quit", callback=lambda item: rumps.quit_application())

        self.menu.clear()
        self.menu = [
            self.prevItem, self.playPauseItem, self.nextItem, None,
            self.volumeDescItem, self.volumeItem, None, self.preferencesItem,
            self.aboutItem, self.quitItem
        ]
コード例 #4
0
ファイル: casita.py プロジェクト: johnwiese/casita
    def __init__(self):
        global USER_SETTINGS

        self.app = rumps.App("Casita", "🏡")

        # Reusable, generic items
        self.quit_btn = rumps.MenuItem(title="Quit",
                                       callback=rumps.quit_application)
        self.separator = None

        # Items to display when no device is connected
        self.no_device_item = rumps.MenuItem(title="No Device Connected")
        self.cast_devices_parent = rumps.MenuItem(title="Cast Devices")
        self.not_connected_menu_items = [self.no_device_item, self.separator]

        # Items to display in menu while connecting to Cast device
        self.connecting_item = rumps.MenuItem(title="Connecting...")
        self.connecting_menu_items = [self.connecting_item, self.quit_btn]

        # Items to display in menu while media is playing on a Cast device
        self.track_title_item = rumps.MenuItem(title="No Song Playing")
        self.track_album_artist_item = rumps.MenuItem(title="")
        self.pauseplay_btn = rumps.MenuItem(title="Pause",
                                            callback=self.pause_play)
        self.skip_btn = rumps.MenuItem(title="Skip", callback=self.skip)
        self.rewind_btn = rumps.MenuItem(title="Rewind", callback=self.rewind)
        self.volume_slider = rumps.SliderMenuItem(value=0,
                                                  min_value=0,
                                                  max_value=100,
                                                  dimensions=(150, 30),
                                                  callback=self.change_volume)
        self.playing_menu_items = [
            self.track_title_item, self.track_album_artist_item,
            self.separator, self.volume_slider, self.pauseplay_btn,
            self.skip_btn, self.rewind_btn, self.separator,
            self.cast_devices_parent
        ]

        # Items to display in menu while connected, but no media is playing
        self.no_song_item = rumps.MenuItem(title="No Song Playing")
        self.idle_menu_items = [
            self.no_song_item, self.separator, self.volume_slider,
            self.separator, self.cast_devices_parent
        ]

        # If there is a default device assigned in the user settings, show the 'connecting' menu. Otherwise, show the 'not connected' menu
        if USER_SETTINGS["default_device"] != "":
            # Show the connecting menu items
            self.app.menu = self.connecting_menu_items
        else:
            self.app.menu = self.not_connected_menu_items

        # After initializing the menu UI, start the backend's thread
        self.start_thread(USER_SETTINGS["default_device"])
コード例 #5
0
 def __init__(self):
     super(MenuPlaythroughApp, self).__init__('Menu Playthrough')
     try:
         self.dark = NSUserDefaults.standardUserDefaults()\
             .persistentDomainForName_('NSGlobalDomain')['AppleInterfaceStyle'] == 'Dark'
     except KeyError:
         self.dark = False
     self.devices = [None, None]
     try:
         with self.open('settings.json') as f:
             settings = json.loads(f.read())
             self.devices[0] = settings['in']
             self.devices[1] = settings['out']
             try:
                 sd.default.device[0] = sd.query_devices().index(sd.query_devices(settings['in']))
             except ValueError:
                 self.devices[0] = sd.query_devices()[sd.default.device[0]]['name']
             try:
                 sd.default.device[1] = sd.query_devices().index(sd.query_devices(settings['out']))
             except ValueError:
                 self.devices[1] = sd.query_devices()[sd.default.device[1]]['name']
             self.volume = settings['volume']
             self.started = settings['started']
             self.render_icon = settings['render_icon']
     except FileNotFoundError:
         self.devices[0] = sd.query_devices()[sd.default.device[0]]['name']
         self.devices[1] = sd.query_devices()[sd.default.device[1]]['name']
         self.volume = 1
         self.started = False
         self.render_icon = False
     self.run_show = rumps.MenuItem('Running' if self.started else 'Stopped')
     self.run_show.state = self.started
     self.run_toggle = rumps.MenuItem('    ' + ('Stop' if self.started else 'Start'))
     self.run_toggle.set_callback(self.onoff)
     self.volume_slider = rumps.SliderMenuItem(value=self.volume, max_value=1, dimensions=(150, 22))
     self.volume_slider.set_callback(self.slider)
     self.current_passthrough_volume = [0]
     self.input_devices = rumps.MenuItem('Input')
     self.output_devices = rumps.MenuItem('Output')
     self.refresh_devices()
     self.icon_toggle = rumps.MenuItem('Show Activity')
     self.icon_toggle.set_callback(self.toggle_icon)
     self.icon_toggle.state = self.render_icon
     if self.render_icon:
         self.icon_setter()
     else:
         if getattr(sys, 'frozen', False):
             # noinspection PyUnresolvedReferences
             self.icon = sys._MEIPASS[:len(sys._MEIPASS)-5] + 'Resources/icon.png'
         else:
             self.icon = 'imgs/icon.png'
     self.license_button = rumps.MenuItem('Show License')
     self.license_button.set_callback(self.open_license)
     self.quit_button = None
     self.quit = rumps.MenuItem('Quit')
     self.quit.set_callback(self.exit)
     self.menu = [self.run_show,
                  self.run_toggle,
                  None,
                  'Volume',
                  self.volume_slider,
                  None,
                  self.input_devices,
                  self.output_devices,
                  None,
                  self.icon_toggle,
                  self.license_button,
                  self.quit]
     self.stream = sd.Stream(callback=self.stream_callback)
     sd.set_device_changed_callback(self.full_refresh_devices)
     self.title = None
     if self.started:
         self.started = not self.started
         self.onoff()