Esempio n. 1
0
def set_device(id, direction='out'):
    if direction == 'out':
        output = 'DefaultOutput'
    elif direction == 'voice_out':
        output = 'DefaultVoiceOutput'
        direction = 'out'
    elif direction == 'in':
        output = 'DefaultInput'
    elif direction == 'voice_in':
        output = 'DefaultVoiceInput'
        direction = 'in'
    else:
        output = 'DefaultOutput'

    if type(id) == dict:
        # By get_devices output
        device_id = id['id']
    elif type(id) in (str, unicode):
        # By ID
        if id[0] == '{':
            device_id = id
        # By name
        else:
            devices = get_devices()
            device_id = devices[direction][id]['id']
    else:
        return false

    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Drivers\\winealsa.drv': {
                output: device_id}})
Esempio n. 2
0
def set_device(id, direction='out'):
    if direction == 'out':
        output = 'DefaultOutput'
    elif direction == 'voice_out':
        output = 'DefaultVoiceOutput'
        direction = 'out'
    elif direction == 'in':
        output = 'DefaultInput'
    elif direction == 'voice_in':
        output = 'DefaultVoiceInput'
        direction = 'in'
    else:
        output = 'DefaultOutput'

    if type(id) == dict:
        # By get_devices output
        device_id = id['id']
    elif type(id) in (str, unicode):
        # By ID
        if id[0] == '{':
            device_id = id
        # By name
        else:
            devices = get_devices()
            device_id = devices[direction][id]['id']
    else:
        return false

    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\Drivers\\winealsa.drv': {
            output: device_id
        }
    })
Esempio n. 3
0
def set_enabled_drivers(drivers):
    """
        Sets the list of enabled audio drivers
        disabling all others
    """
    #CACHE['audio-enabled-drivers'] = drivers
    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Drivers': {"Audio": ','.join(drivers)}})
Esempio n. 4
0
def set_managed(state):
    if state:
        reg_state = "Y"
    else:
        reg_state = "N"
    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\X11 Driver': {"Managed": reg_state}})
    CACHE['windows-managed'] = (state == True)
Esempio n. 5
0
def set_show_dot_files(value):
    if value:
        registry.set({"HKEY_CURRENT_USER\\Software\\Wine": {"ShowDotFiles": "Y"}})
        CACHE["show-dot-files"] = True
    else:
        registry.set({"HKEY_CURRENT_USER\\Software\\Wine": {"ShowDotFiles": "N"}})
        CACHE["show-dot-files"] = False
Esempio n. 6
0
def set_mouse_grab(state):
    if state:
        reg_state = "Y"
    else:
        reg_state = "N"
    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\X11 Driver': {"DXGrab": reg_state}})
    CACHE['windows-mouse-grab'] = (state == True)
Esempio n. 7
0
def set_eax_support(value, program=None):
    """
        Enables or disables support for EAX on the CPU
    """
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError(
            "type of value should something convertable to a boolean")
    elif value == True:
        value = 'Y'
    else:
        value = None
    if program:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program:
            {
                "EAXEnabled": value
            }
        })
    else:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
                "EAXEnabled": value
            }
        })
Esempio n. 8
0
def set_show_dot_files(value):
    if value:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine': {"ShowDotFiles": "Y"} })
        CACHE['show-dot-files'] = True
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine': {"ShowDotFiles": "N"} })
        CACHE['show-dot-files'] = False
Esempio n. 9
0
def set(foldername, target):
    """Set the shellfolder "foldername" (one of the keys in FOLDER_REG_NAMES) to the directory "target"."""
    if foldername.lower() in FOLDER_REG_NAMES.keys():
        # Camelcase the folder
        #foldername = " ".join([ i.capitalize() for i in foldername.split(" ") ])
        #userpath = registry.get('HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session Manager\\Environment', 'APPDATA')
        #folderpath = "%s/drive_c/%s/%s" % (common.ENV['WINEPREFIX'], "/".join(userpath[3:].split("\\")[:-1]), foldername)
        folder_path = registry.get('HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders', FOLDER_REG_NAMES[foldername.lower()])
        # If the registy folder path is a symlink from inside the configuration, change the symlink
        if isinstance(folder_path, basestring) and ('\\windows\\' or '\\users\\' in folder_path):
            folder_path = util.wintounix(folder_path)
            try:
                os.remove(folder_path)
            except OSError:
                try:
                    os.rmdir(folder_path)
                except OSError:
                    print("Skipping %s, there are files in the directory" % os.path.basename(folder_path), file=sys.stderr)
            os.symlink(target, folder_path)
        # If not, it refers to a real directory, don't mess with it, set the registry info instead
        else:
            folder_path = target
            registry.set({'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders': {FOLDER_REG_NAMES[foldername.lower()]: folder_path}})
        try:
            folders = CACHE['shellfolders']
        except KeyError:
            folders = {}
        folders[foldername] = folder_path
        CACHE['shellfolders'] = folders
Esempio n. 10
0
def set_video_memory_size(value):
    if value != None and type(value) != type(1):
        raise ValueError("type of value should be None or int")
    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
            'VideoMemorySize': value
        }
    })
Esempio n. 11
0
def set_screen_dpi(value):
    dword = 'dword:000000' + hex(int(value))[2:]
    registry.set({
        'HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts':
        {
            "LogPixels": dword
        }
    })
Esempio n. 12
0
def disable_driver(driver):
    """
        Removes an audio driver from the list of enabled audio drivers
        driver can be one of ["alsa", "oss", "coreaudio", "jack", "nas", "esd", "audioio"]
    """
    drivers = get_enabled_drivers()
    if driver in DRIVER_NAMES and DRIVER_NAMES[driver] in drivers:
        drivers.remove(DRIVER_NAMES[driver])
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Drivers': {"Audio": ','.join(drivers)}})
Esempio n. 13
0
def set_antialiasing_disabled(value):
    if value:
        value = "N"
    else:
        value = None

    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\X11 Driver': {
        "ClientSideAntiAliasWithRender": value,
        "ClientSideAntiAliasWithCore": value
    }})
Esempio n. 14
0
def set_bit_depth(bits, program=None):
    """
        Sets the DirectSound audio bit depth
    """
    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program: {
            "DefaultBitsPerSample": bits}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
            "DefaultBitsPerSample": bits}})
Esempio n. 15
0
def set_type(driveletter, drive_type):
    # Make sure we use the same caps for the driveletter as the reg
    typesraw = registry.get('HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives', quiet=True, shallow=True)
    for key,value in typesraw.iteritems():
        if key.lower == driveletter.lower():
            driverletter = key
    # Save it
    if drive_type not in DRIVE_TYPES or drive_type != None:
        util.warning("Setting drive type to unknown value: %s" % drive_type)
    registry.set({'HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives': {"%s:" % driveletter: drive_type}})
Esempio n. 16
0
def set_type(driveletter, drive_type):
    # Make sure we use the same caps for the driveletter as the reg
    typesraw = registry.get("HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives", quiet=True, shallow=True)
    for key, value in typesraw.iteritems():
        if key.lower == driveletter.lower():
            driverletter = key
    # Save it
    if drive_type not in DRIVE_TYPES or drive_type != None:
        util.warning("Setting drive type to unknown value: %s" % drive_type)
    registry.set({"HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives": {"%s:" % driveletter: drive_type}})
Esempio n. 17
0
def set_mouse_warp(state='enable'):
    reg_state = 'enable'  # Default value
    if state in ('enable', 'disable', 'force'):
        reg_state = state
    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\DirectInput': {
            'MouseWarpOverride': reg_state
        }
    })
    CACHE['xinput-mouse-warp'] = reg_state
Esempio n. 18
0
def set_sample_rate(rate, program=None):
    """
        Sets the DirectSound audio sample rate
    """
    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program: {
            "DefaultSampleRate": rate}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
            "DefaultSampleRate": rate}})
Esempio n. 19
0
def set_acceleration(accel, program=None):
    """
        Sets the level of audio acceleration to use.
        accel can be one of ["full", "standard", "basic", "emulation"]
    """
    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % \
            program: {"HardwareAcceleration": ACCELERATION_NAMES[accel]}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
            "HardwareAcceleration": ACCELERATION_NAMES[accel]}})
Esempio n. 20
0
def drive_mapping_to_reg(driveletter, mapping):
    hexmapping = util.utf8tohex(mapping).upper()
    hexletter = "00000000-0000-0000-0000-0000000000%s" % driveletter.upper().encode('hex')

    registry.set({'HKEY_LOCAL_MACHINE\\System\\MountedDevices': {
        "\\\\??\\\\Volume{%s}" % hexletter: "hex:%s" % hexmapping,
        "\\\\DosDevices\\\\%s:" % driveletter.upper(): "hex:%s" % hexmapping
    }})
    registry.set({'HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives': {
        "%s:" % driveletter.upper(): "hd"
    }})
Esempio n. 21
0
def set_enabled_drivers(drivers):
    """
        Sets the list of enabled audio drivers
        disabling all others
    """
    #CACHE['audio-enabled-drivers'] = drivers
    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\Drivers': {
            "Audio": ','.join(drivers)
        }
    })
Esempio n. 22
0
def set_pixel_shader(value, program=None):
    if value == True or type(value) == type(str) and value.lower() == "hardware":
        value = None
    else:
        value = "disabled"
    if program:
        path = 'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\Direct3D' % program
    else:
        path = 'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D'

    registry.set({path: {"PixelShaderMode": value}})
Esempio n. 23
0
def set_allow_multisampling(value):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError("type of value should something convertable to a boolean")
    elif value == True:
        value = "enabled"
    else:
        value = None
    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
        'Multisampling': value
    }})
    return value, True
Esempio n. 24
0
def set_pixel_shader(value, program=None):
    if value == True or type(value) == type(
            str) and value.lower() == "hardware":
        value = None
    else:
        value = "disabled"
    if program:
        path = 'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\Direct3D' % program
    else:
        path = 'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D'

    registry.set({path: {"PixelShaderMode": value}})
Esempio n. 25
0
def set_allow_xrandr(value):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError("type of value should something convertable to a boolean")
    elif value == True:
        value = 'y'
    else:
        value = 'n'

    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\X11 Driver': {
        'UseXRandR': value
    }})
Esempio n. 26
0
def set_antialiasing_disabled(value):
    if value:
        value = "N"
    else:
        value = None

    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\X11 Driver': {
            "ClientSideAntiAliasWithRender": value,
            "ClientSideAntiAliasWithCore": value
        }
    })
Esempio n. 27
0
def enable_driver(driver):
    """
        Adds an audio driver to the list of enabled audio drivers
        driver can be one of ["alsa", "oss", "coreaudio", "jack", "nas", "esd", "audioio"]
    """
    drivers = filter(len, get_enabled_drivers())
    print driver, DRIVER_NAMES
    if driver in DRIVER_NAMES and DRIVER_NAMES[driver] not in drivers:
        drivers.append(DRIVER_NAMES[driver])
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Drivers': {"Audio": ','.join(drivers)}})
    else:
        return False
Esempio n. 28
0
def set_dxva2_vaapi(value, program=None):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError("type of value should something convertable to a boolean")
    elif value == True:
        value = 'va'
    else:
        value = None

    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DXVA2' % program: {'backend': value}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DXVA2': {'backend': value}})
Esempio n. 29
0
def set(version, program=False):
    version = __translate_version_string(version)
    if version not in versions:
        raise KeyError(
            "Error: Version should be one of the following: default, {0}".format(
                ", ".join(versions)
            )
        )

    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s' % program: {"Version": version} })
    else:
        set_default(version)
Esempio n. 30
0
def disable_driver(driver):
    """
        Removes an audio driver from the list of enabled audio drivers
        driver can be one of ["alsa", "oss", "coreaudio", "jack", "nas", "esd", "audioio"]
    """
    drivers = get_enabled_drivers()
    if driver in DRIVER_NAMES and DRIVER_NAMES[driver] in drivers:
        drivers.remove(DRIVER_NAMES[driver])
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\Drivers': {
                "Audio": ','.join(drivers)
            }
        })
Esempio n. 31
0
def drive_mapping_to_reg(driveletter, mapping):
    hexmapping = util.utf8tohex(mapping).upper()
    hexletter = "00000000-0000-0000-0000-0000000000%s" % driveletter.upper().encode("hex")

    registry.set(
        {
            "HKEY_LOCAL_MACHINE\\System\\MountedDevices": {
                "\\\\??\\\\Volume{%s}" % hexletter: "hex:%s" % hexmapping,
                "\\\\DosDevices\\\\%s:" % driveletter.upper(): "hex:%s" % hexmapping,
            }
        }
    )
    registry.set({"HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives": {"%s:" % driveletter.upper(): "hd"}})
Esempio n. 32
0
def set_check_float_constants(value, program=None):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError("type of value should something convertable to a boolean")
    elif value == True:
        value = 'enabled'
    else:
        value = None

    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\Direct3D' % program: {'CheckFloatConstants': value}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {'CheckFloatConstants': value}})
Esempio n. 33
0
def set_offscreen_rendering_mode(mode):
    if mode != None:
        mode = mode.lower()
        if mode in OFFSCREEN_RENDERING_MODES_DEPRECATED:
            raise DeprecationWarning("%s is deprecated. Mode should be %s" % (
                mode, common.list_to_english_or(OFFSCREEN_RENDERING_MODES)
            ))
        elif mode not in OFFSCREEN_RENDERING_MODES:
            raise ValueError("mode should be %s" % (
                common.list_to_english_or(OFFSCREEN_RENDERING_MODES)
            ))
    registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
        'OffscreenRenderingMode': mode
    }})
Esempio n. 34
0
def set_csmt(value, program=None):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError("type of value should something convertable to a boolean")
    elif value == True:
        value = 'enabled'
    else:
        value = 'disabled'
        
    if common.ENV.get('WINE_SUPPORTS_CSMT') == 'true':
        if common.ENV.get('WINE_SUPPORTS_CSMT_TYPE') == 'dll':
            if value == 'enabled':
                value = 'wined3d-csmt.dll'
            else:
                value = None
            if program:
                registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DllRedirects' % program: {'wined3d': value}})
            else:
                registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DllRedirects': {'wined3d': value}})
        else:
            if program:
                registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\Direct3D' % program: {'CSMT': value}})
            else:
                registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {'CSMT': value}})
    else:
        return None
Esempio n. 35
0
def set_acceleration(accel, program=None):
    """
        Sets the level of audio acceleration to use.
        accel can be one of ["full", "standard", "basic", "emulation"]
    """
    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % \
            program: {"HardwareAcceleration": ACCELERATION_NAMES[accel]}})
    else:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
                "HardwareAcceleration": ACCELERATION_NAMES[accel]
            }
        })
Esempio n. 36
0
def set_allow_xrandr(value):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError(
            "type of value should something convertable to a boolean")
    elif value == True:
        value = 'y'
    else:
        value = 'n'

    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\X11 Driver': {
            'UseXRandR': value
        }
    })
Esempio n. 37
0
def set_allow_multisampling(value):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError(
            "type of value should something convertable to a boolean")
    elif value == True:
        value = "enabled"
    else:
        value = None
    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
            'Multisampling': value
        }
    })
    return value, True
Esempio n. 38
0
def set_driver_emulation(state, program=None):
    """
        Sets wether DirectSound should emulate a hardware driver
    """
    if state:
        state_str = "Y"
    else:
        state_str = "N"

    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program: {
            "EmulDriver": state_str}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
            "EmulDriver": state_str}})
Esempio n. 39
0
def set_offscreen_rendering_mode(mode):
    if mode != None:
        mode = mode.lower()
        if mode in OFFSCREEN_RENDERING_MODES_DEPRECATED:
            raise DeprecationWarning(
                "%s is deprecated. Mode should be %s" %
                (mode, common.list_to_english_or(OFFSCREEN_RENDERING_MODES)))
        elif mode not in OFFSCREEN_RENDERING_MODES:
            raise ValueError(
                "mode should be %s" %
                (common.list_to_english_or(OFFSCREEN_RENDERING_MODES)))
    registry.set({
        'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
            'OffscreenRenderingMode': mode
        }
    })
Esempio n. 40
0
def enable_driver(driver):
    """
        Adds an audio driver to the list of enabled audio drivers
        driver can be one of ["alsa", "oss", "coreaudio", "jack", "nas", "esd", "audioio"]
    """
    drivers = filter(len, get_enabled_drivers())
    print driver, DRIVER_NAMES
    if driver in DRIVER_NAMES and DRIVER_NAMES[driver] not in drivers:
        drivers.append(DRIVER_NAMES[driver])
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\Drivers': {
                "Audio": ','.join(drivers)
            }
        })
    else:
        return False
Esempio n. 41
0
def set_default(version):
    version = __translate_version_string(version, strict=True)
    shortversion = version
    version = windowsversions[version]

    # Clear values first
    registry_values = {
        Key9x: { "VersionNumber": None, "SubVersionNumber": None },
        KeyNT: { "CSDVersion": None, "CurrentVersion": None, "CurrentBuildNumber": None },
        KeyProdNT: { "ProductType": None },
        KeyWindNT: { "CSDVersion": None },
        KeyEnvNT: { "OS": None },
        'HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\ServiceCurrent': { "OS": None },
        'HKEY_CURRENT_USER\\Software\\Wine': { "Version": None }
    }

    # Set the required keys for the tree types of version info that exist so far
    if version[wPlatformId] == "WIN32_WINDOWS":
        registry_values.update({
            Key9x: {
                "VersionNumber": "{0}.{1}.{2}".format(
                    version[wMajorVersion], version[wMinorVersion], version[wBuildNumber]
                ),
                "SubVersionNumber": version[wCSDVersion]
            }
        })

    elif version[wPlatformId] == "WIN32_NT":
        registry_values.update({
            KeyNT: {
                "CurrentVersion": "{0}.{1}".format(
                    version[wMajorVersion], version[wMinorVersion]
                ),
                "CSDVersion": version[wCSDVersion],
                "CurrentBuildNumber": version[wBuildNumber]
            },
            KeyProdNT: { "ProductType": version[wProductType] },
            KeyWindNT: { "CSDVersion": "dword:00000%s00" % version[wServicePackMajor] },
            KeyEnvNT: { "OS": "Windows_NT" }
        })

    elif version[wPlatformId] == "WIN32s":
        registry_values.update({
            'HKEY_CURRENT_USER\\Software\\Wine': {"Version": shortversion}
        })

    registry.set(registry_values)
Esempio n. 42
0
def set_sample_rate(rate, program=None):
    """
        Sets the DirectSound audio sample rate
    """
    if program:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program:
            {
                "DefaultSampleRate": rate
            }
        })
    else:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
                "DefaultSampleRate": rate
            }
        })
Esempio n. 43
0
def set_font_antialiasing(value):
    if value:
        reg = {
            "FontSmoothing": 2,
            "FontSmoothingType": "dword:00000002",
            "FontSmoothingGamma": "dword:00000578",
            "FontSmoothingOrientation": "dword:00000001"
        }
    else:
        reg = {
            "FontSmoothing": None,
            "FontSmoothingType": None,
            "FontSmoothingGamma": None,
            "FontSmoothingOrientation": None
        }

    registry.set({'HKEY_CURRENT_USER\\Control Panel\\Desktop': reg})
Esempio n. 44
0
def set_eax_support(value, program=None):
    """
        Enables or disables support for EAX on the CPU
    """
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError("type of value should something convertable to a boolean")
    elif value == True:
        value = 'Y'
    else:
        value = None
    if program:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program: {
            "EAXEnabled": value}})
    else:
        registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
            "EAXEnabled": value}})
Esempio n. 45
0
def set_bit_depth(bits, program=None):
    """
        Sets the DirectSound audio bit depth
    """
    if program:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program:
            {
                "DefaultBitsPerSample": bits
            }
        })
    else:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
                "DefaultBitsPerSample": bits
            }
        })
Esempio n. 46
0
def set_font_antialiasing(value):
    if value:
        reg = {
            "FontSmoothing": 2,
            "FontSmoothingType": "dword:00000002",
            "FontSmoothingGamma": "dword:00000578",
            "FontSmoothingOrientation": "dword:00000001"
        }
    else:
        reg = {
            "FontSmoothing": None,
            "FontSmoothingType": None,
            "FontSmoothingGamma": None,
            "FontSmoothingOrientation": None
        }

    registry.set({'HKEY_CURRENT_USER\\Control Panel\\Desktop': reg})
Esempio n. 47
0
def set_theme(theme):
    theme_file = _get_theme_file_from_name(theme)
    theme_file = util.unixtowin(theme_file)
    return registry.set({
        ('HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\' + 'CurrentVersion\\ThemeManager'):
        {
            "DllName": util.string_escape_char(theme_file, '\\'),
            "ThemeActive": '1'
        }
    })
Esempio n. 48
0
def set_theme(theme):
    theme_file = _get_theme_file_from_name(theme)
    theme_file = util.unixtowin(theme_file)
    return registry.set({
        ('HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\'+
         'CurrentVersion\\ThemeManager'): {
            "DllName": util.string_escape_char(theme_file, '\\'),
            "ThemeActive": '1'
        }
    })
Esempio n. 49
0
def set_user_style(style, state):
    if style not in USER_PREFERENCES_MASK:
        raise ValueError, ("Argument style should be one of " +
                           common.list_to_english_or(
                               ('"{0}"'.format(i)
                                for i in USER_PREFERENCES_MASK.keys())))

    mask = registry.get('HKEY_CURRENT_USER\\Control Panel\\Desktop',
                        'UserPreferenceMask')
    if mask:
        mask = common.bitfield(mask)
        mask[USER_PREFERENCES_MASK[style]['bit']] = int(state)
        registry_value = mask.registry_value()
        registry.set({
            'HKEY_CURRENT_USER\\Control Panel\\Desktop': {
                'UserPreferenceMask': registry_value
            }
        })
    else:
        return False
Esempio n. 50
0
def remove(driveletter):
    driveletter = driveletter[0]
    for driverletter_case in (driveletter.upper(), driveletter.lower()):
        drive_path = "{wineprefix}/dosdevices/{drive}:".format(
            wineprefix=common.ENV["WINEPREFIX"], drive=driverletter_case
        )
        drive_device_path = "{0}:".format(drive_path)

        if os.path.lexists(drive_path):
            os.remove(drive_path)
        if os.path.lexists(drive_device_path):
            os.remove(drive_device_path)

    registry.set({"HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives": {"%s:" % driveletter: None}})

    hex_letter = "00000000-0000-0000-0000-0000000000{hex_letter}".format(hex_letter=driveletter.upper().encode("hex"))
    registry.set(
        {
            "HKEY_LOCAL_MACHINE\\System\\MountedDevices": {
                "\\\\??\\\\Volume{%s}" % hex_letter: None,
                "\\\\DosDevices\\\\%s:" % driveletter.upper(): None,
            }
        }
    )
    registry.set(
        {
            "HKEY_LOCAL_MACHINE\\System\\MountedDevices": {
                "\\??\\Volume{%s}" % hex_letter: None,
                "\\DosDevices\\%s:" % driveletter.upper(): None,
            }
        }
    )
Esempio n. 51
0
def set(foldername, target):
    """Set the shellfolder "foldername" (one of the keys in FOLDER_REG_NAMES) to the directory "target"."""
    if foldername.lower() in FOLDER_REG_NAMES.keys():
        # Camelcase the folder
        #foldername = " ".join([ i.capitalize() for i in foldername.split(" ") ])
        #userpath = registry.get('HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session Manager\\Environment', 'APPDATA')
        #folderpath = "%s/drive_c/%s/%s" % (common.ENV['WINEPREFIX'], "/".join(userpath[3:].split("\\")[:-1]), foldername)
        folder_path = registry.get(
            'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders',
            FOLDER_REG_NAMES[foldername.lower()])
        # If the registy folder path is a symlink from inside the configuration, change the symlink
        if isinstance(folder_path,
                      basestring) and ('\\windows\\'
                                       or '\\users\\' in folder_path):
            folder_path = util.wintounix(folder_path)
            try:
                os.remove(folder_path)
            except OSError:
                try:
                    os.rmdir(folder_path)
                except OSError:
                    print("Skipping %s, there are files in the directory" %
                          os.path.basename(folder_path),
                          file=sys.stderr)
            os.symlink(target, folder_path)
        # If not, it refers to a real directory, don't mess with it, set the registry info instead
        else:
            folder_path = target
            registry.set({
                'HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders':
                {
                    FOLDER_REG_NAMES[foldername.lower()]: folder_path
                }
            })
        try:
            folders = CACHE['shellfolders']
        except KeyError:
            folders = {}
        folders[foldername] = folder_path
        CACHE['shellfolders'] = folders
Esempio n. 52
0
def remove(driveletter):
    driveletter = driveletter[0]
    for driverletter_case in (driveletter.upper(), driveletter.lower()):
        drive_path = '{wineprefix}/dosdevices/{drive}:'.format(
            wineprefix = common.ENV['WINEPREFIX'],
            drive = driverletter_case
        )
        drive_device_path = '{0}:'.format(drive_path)

        if os.path.lexists(drive_path):
            os.remove(drive_path)
        if os.path.lexists(drive_device_path):
            os.remove(drive_device_path)

    registry.set({'HKEY_LOCAL_MACHINE\\Software\\Wine\\Drives': {
        "%s:" % driveletter: None
    }})

    hex_letter = '00000000-0000-0000-0000-0000000000{hex_letter}'.format(
        hex_letter = driveletter.upper().encode('hex')
    )
    registry.set({'HKEY_LOCAL_MACHINE\\System\\MountedDevices': {
        "\\\\??\\\\Volume{%s}" % hex_letter: None,
        "\\\\DosDevices\\\\%s:" % driveletter.upper(): None
    }})
    registry.set({'HKEY_LOCAL_MACHINE\\System\\MountedDevices': {
        "\\??\\Volume{%s}" % hex_letter: None,
        "\\DosDevices\\%s:" % driveletter.upper(): None
    }})
Esempio n. 53
0
def set_dxva2_vaapi(value, program=None):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError(
            "type of value should something convertable to a boolean")
    elif value == True:
        value = 'va'
    else:
        value = None

    if program:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DXVA2' % program:
            {
                'backend': value
            }
        })
    else:
        registry.set(
            {'HKEY_CURRENT_USER\\Software\\Wine\\DXVA2': {
                'backend': value
            }})
Esempio n. 54
0
def set_driver_emulation(state, program=None):
    """
        Sets wether DirectSound should emulate a hardware driver
    """
    if state:
        state_str = "Y"
    else:
        state_str = "N"

    if program:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DirectSound' % program:
            {
                "EmulDriver": state_str
            }
        })
    else:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\DirectSound': {
                "EmulDriver": state_str
            }
        })
Esempio n. 55
0
def set_check_float_constants(value, program=None):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError(
            "type of value should something convertable to a boolean")
    elif value == True:
        value = 'enabled'
    else:
        value = None

    if program:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\Direct3D' % program:
            {
                'CheckFloatConstants': value
            }
        })
    else:
        registry.set({
            'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
                'CheckFloatConstants': value
            }
        })
Esempio n. 56
0
def set_user_style(style, state):
    if style not in USER_PREFERENCES_MASK:
        raise ValueError, (
            "Argument style should be one of "+
            common.list_to_english_or((
                '"{0}"'.format(i) for i in
                USER_PREFERENCES_MASK.keys()
            ))
        )

    mask = registry.get(
        'HKEY_CURRENT_USER\\Control Panel\\Desktop', 'UserPreferenceMask'
    )
    if mask:
        mask = common.bitfield(mask)
        mask[ USER_PREFERENCES_MASK[style]['bit'] ] = int(state)
        registry_value = mask.registry_value()
        registry.set({
            'HKEY_CURRENT_USER\\Control Panel\\Desktop': {
                'UserPreferenceMask': registry_value
            }
        })
    else:
        return False
Esempio n. 57
0
def set_csmt(value, program=None):
    value = common.value_as_bool(value)
    if value == None:
        raise ValueError(
            "type of value should something convertable to a boolean")
    elif value == True:
        value = 'enabled'
    else:
        value = 'disabled'

    if common.ENV.get('WINE_SUPPORTS_CSMT') == 'true':
        if common.ENV.get('WINE_SUPPORTS_CSMT_TYPE') == 'dll':
            if value == 'enabled':
                value = 'wined3d-csmt.dll'
            else:
                value = None
            if program:
                registry.set({
                    'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\DllRedirects' % program:
                    {
                        'wined3d': value
                    }
                })
            else:
                registry.set({
                    'HKEY_CURRENT_USER\\Software\\Wine\\DllRedirects': {
                        'wined3d': value
                    }
                })
        else:
            if program:
                registry.set({
                    'HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\%s\\Direct3D' % program:
                    {
                        'CSMT': value
                    }
                })
            else:
                registry.set({
                    'HKEY_CURRENT_USER\\Software\\Wine\\Direct3D': {
                        'CSMT': value
                    }
                })
    else:
        return None
Esempio n. 58
0
def set_override(library, override):
    _override = override
    if library.endswith(".dll"):
        library = library[:-4]
    if type(override) is bool:
        if override:
            registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides': {
                library: "native,builtin"}})
        else:
            registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides': {
                library: None}})
    else:
        if type(override) is str:
            override = override.lower()

            if override.startswith('disable'):
                override = ''
            else:
                # make sure that the override is separated by only commas
                override = ','.join([
                    i.strip() for i
                    in filter(len, override.replace(',', ' ').split())
                ])

        if library.lower() == 'comctl32':
            common.run([
                'rm', '-rf', util.wintounix(
                    "{0}\\windows\\winsxs\\manifests\\"+
                    "x86_microsoft.windows."+
                    "common-controls_6595b64144ccf1df_6.0."+
                    "2600.2982_none_deadbeef.manifest".format(
                        drives.get_main_drive(use_registry=False)
                    )
                )
            ])

        if override in ('native', 'builtin',
                         'native,builtin', 'builtin,native',
                         '', 'disabled', None):
            registry.set({'HKEY_CURRENT_USER\\Software\\Wine\\DllOverrides': {
                library: override}})
        else:
            raise ValueError("Wrong value for override: {0}".format(_override))