Freevo

De Wiki.

Aller à : Navigation, rechercher

Sommaire

1 MPlayer

1.1 Script de lancement

Ce script permet de lancer mplayer en effectuant les actions suivantes:

A utiliser comme commande "mplayer" dans Freevo.

#!/bin/sh
 
# Default values
RATE=60
SPEED=1
 
TEMPFILE=`tempfile -d /tmp`
mplayer "$@" -identify -endpos 0 -ao null -vo null 2>/dev/null > $TEMPFILE
 
VIDEO_ID=`awk -F= '/^ID_VIDEO_ID/ {print $2}' $TEMPFILE`
 
if [ -n "$VIDEO_ID" ]
then
    VIDEO_FPS=`awk -F= '/^ID_VIDEO_FPS/ {print $2}' $TEMPFILE`
    AUDIO_FORMAT=`awk -F= '/^ID_AUDIO_FORMAT/ {print $2}' $TEMPFILE`
    if [ -n "$VIDEO_FPS" ]
    then
        case $VIDEO_FPS in
        24.000|23.976)
            # AC3 resampling doesn't work
            if [ $AUDIO_FORMAT != "8192" -a $AUDIO_FORMAT != "8193" ]
            then
                RATE=50
                SPEED=`echo 25/$VIDEO_FPS | bc -l`
            fi
            ;;
        50.000|25.000|12.500|6.250)
            RATE=50
            ;;
        esac
    fi
fi
 
rm $TEMPFILE
xrandr -r $RATE
 
exec mplayer "$@" -speed $SPEED

2 Jeu

2.1 Plugin de jeux favoris

Voici un plugin permettant de gérer des favoris pour les jeux (Emulateurs, ...).

Ajouter dans le fichier local_conf.py

plugin.activate('games.favs')
GAMES_FAVS_DIR = '+Favoris'

Code:

import os                                                                                                                                                    
import plugin                                                                                                                                                
import config                                                                                                                                                
import re                                                                                                                                                        
 
class PluginInterface(plugin.ItemPlugin):                                                                                                                        
 
    def actions(self, item):                                                                                                                                     
        items = []                                                                                                                                                 
        item.favs_dir = ''                                                                                                                                         
        item.fav_rpath = ''
        if (item.type == 'mame' or
                        item.type == 'generic' or
                        item.type == 'snes' or
                        item.type == 'genesis') and item.mode == 'file':
                for game_item in config.GAMES_ITEMS:
                    if re.compile(game_item[1]).match(item.filename, 0):
                        item.favs_dir = os.path.join(game_item[1], config.GAMES_FAVS_DIR)
                        if os.path.dirname(item.filename) == item.favs_dir or os.path.islink(os.path.join(item.favs_dir, os.path.basename(item.filename))):
                            items.append((self.remove_from_favourites, 'Enlever des favoris'))
                        else:
                            if os.path.isdir(item.favs_dir):
                                item.fav_rpath = self.relpath(item.favs_dir, os.path.dirname(item.filename))
                                items.append((self.add_to_favourites, 'Ajouter aux favoris'))
                        break
        self.item = item
 
        return items
 
    def remove_from_favourites(self, arg=None, menuw=None):
        self.safe_unlink(os.path.join(self.item.favs_dir, os.path.basename(self.item.filename)))
        menuw.back_one_menu()
        return
 
    def add_to_favourites(self, arg=None, menuw=None):
        os.symlink(os.path.join(self.item.fav_rpath, os.path.basename(self.item.filename)),
                                        os.path.join(self.item.favs_dir, os.path.basename(self.item.filename)))
        menuw.back_one_menu()
        return
 
    def safe_unlink(self, filename):
        try:
            os.unlink(filename)
        except:
            print 'Can\'t delete %s' % filename
 
    def pathsplit(self, p, rest=[]):
        (h,t) = os.path.split(p)
        if len(h) < 1: return [t]+rest
        if len(t) < 1: return [h]+rest
        return self.pathsplit(h,[t]+rest)
 
    def commonpath(self, l1, l2, common=[]):
        if len(l1) < 1: return (common, l1, l2)
        if len(l2) < 1: return (common, l1, l2)
        if l1[0] != l2[0]: return (common, l1, l2)
        return self.commonpath(l1[1:], l2[1:], common+[l1[0]])
 
    def relpath(self, p1, p2):
        (common,l1,l2) = self.commonpath(self.pathsplit(p1), self.pathsplit(p2))
        p = []
        if len(l1) > 0:
            p = [ '../' * len(l1) ]
        p = p + l2
        return os.path.join( *p )

3 Emulation

3.1 Script de lancement d'ePSXe

Script permettant de lancer ePSXe en effectuant les actions suivantes:

#!/bin/sh
 
DELAY=10
NAME="ePSXe - Enhanced PSX emulator"
 
CARDPATH="/mnt/datas/programs/epsxe/memcards"
CARD0=$CARDPATH/`basename "$@"`-0.mcr
CARD1=$CARDPATH/`basename "$@"`-1.mcr
 
if (basename "$@" | grep -q PAL)
then
        xrandr -r 50 &
else
        xrandr -r 60 &
fi
 
if [ ! -f "$CARD0" ]
then
        dd if=/dev/zero of="$CARD0" bs=1024 count=128
fi
 
if [ ! -f "$CARD1" ]
then
        dd if=/dev/zero of="$CARD1" bs=1024 count=128
fi
 
( sleep $DELAY; joy2key -config epsxe1 "$NAME" ) &
( sleep $DELAY; joy2key -config epsxe2 "$NAME" ) &
 
exec epsxe -nogui -loadmemc0 "$CARD0" -loadmemc1 "$CARD1" -loadiso "$@"

3.2 Adapter automatiquement la fréquence de l'écran

Si vous utiliser des outils pour renommer automatiquement vos ROMs, elles comportent sûrement une indication de leur localisation ((F)=France, (E)=Europe, (J)=Japon).

Voici un petit script utilisable avec pas mal d'émulateurs qui permet de changer automatiquement la fréquence de l'écran en fonction de la localisation détectée:

#!/bin/sh
 
EMUL=zsnes
 
if echo "$@" | grep -qi "(\(e\|f\|g\|s\))"
then
        xrandr -r 50 &
elif echo "$@" | grep -qi "(\(u\|j\|ju\|jua\|jue\))"
then
        xrandr -r 60 &
fi
 
exec $EMUL "$@"
Récupérée de « http://kerlinux.org/wiki/Freevo »
Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Liens
Boîte à outils