1 (23.02.2010 13:51:50 отредактировано KiRiK)

Тема: Скрипт на Python, активирующий портретный режим экрана(вращение)

Появилось видео и скрипт для активации изменения режимов экрана(вращение) - картинка крутиться вокруг своей оси.

its just a dirty hack so far cool

Что нужно, чтобы такое получить:

Создаём и устанавливаем файл rotate.py - можно и скачать, смотрим прикреплённые файлы, если вы решили скачать файл, то переходим сразу к пункту 4
1. в обычном текстовом редакторе, только сохраняем с окончанием .py, создаём файл
2. Копируем ниже приведённый текст и вставляем в файл:

from ctypes import *
import os
import sys
import time
from math import atan2
from pprint import pprint

xlib = cdll.LoadLibrary("libX11.so.6")
rr = cdll.LoadLibrary("libXrandr.so.2")

def get_rotation():
    f = open("/sys/class/i2c-adapter/i2c-3/3-001d/coord", 'r' )
    coords = [int(w) for w in f.readline().split()]
    f.close()
    return coords

print get_rotation()

def rotate(angle):
    rr.XRRSetScreenConfigAndRate(display,config,root,size,angle,rate,timestamp)

display = xlib.XOpenDisplay(os.getenv("DISPLAY"))
screen = xlib.XDefaultScreen(display)
root = xlib.XDefaultRootWindow(display, screen)

class XRRScreenConfiguration(Structure):
   pass

gsi = rr.XRRGetScreenInfo
gsi.restype = POINTER(XRRScreenConfiguration)
config = gsi(display, root)

current_time = c_ulong()
rr.XRRTimes.restpye = c_ulong
timestamp = rr.XRRTimes(display, screen, byref(current_time))

xccr = rr.XRRConfigCurrentRate
xccr.restype = c_int
rate = xccr(config)

rotation = c_ushort()
size = rr.XRRConfigCurrentConfiguration(config, byref(rotation))

while True:
    [x,y,z] = get_rotation()
    print x,y,z
    if y < -500:
        rotate(1)
    elif y > 500:
        rotate(4)

    elif x < -500:
        rotate(2)
    elif x > 500:
        rotate(8)

    time.sleep(1)

3. Сохраняем документ, не забываем изменить тип на все файлы и вписать название rotate.py
4. Копируем на N900 в корневую папку /  - (root dir /)
5. В X-терминале пишем:

         root [enter]
         cd / [enter]
         python rotate.py [enter]

6. Окно терминала переводим  в бэкграунд и пусть оно там висит (minimize window and rotate phone!)

Как предложил Mike, можно немного модернизировать скрипт:

Можно еще во все строки начинающиеся с print добавить # - т.е. закоментировать их
и потом запускать как:

root [enter]
cd / [enter]
nohup python rotate.py &[enter]

и можно выходить из терминала - приложение останется в памяти.

Источник:
nokian900applications.com
talk.maemo.org

Post's attachments

rotate.py 1.23 kb, 67 загрузок с 2010-02-23 

У Вас недостаточно прав для загрузки файлов, прикрепленных к этому сообщению.
Have trouble with Windows - reboot, have trouble with LINUX - be root!

2

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Забавно, но пользоваться телефоном при этом, ну мягко говоря, неудобно...

Поделиться

3

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Dark Knight пишет:

python rotate.py [enter]

А как этот режим выгрузить из памяти? Перегруз?

Поделиться

4

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Z.E.V.S пишет:
Dark Knight пишет:

python rotate.py [enter]

А как этот режим выгрузить из памяти? Перегруз?

Или убить соответствующий процесс или просто закрыть окно терминала. Я думаю, что так.

Have trouble with Windows - reboot, have trouble with LINUX - be root!

Сайт Dark Knight

Поделиться

5 (23.02.2010 14:30:49 отредактировано Z.E.V.S)

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Dark Knight пишет:

Или убить соответствующий процесс или просто закрыть окно терминала.

Да, все правильно... Я немного поторопился задавать вопрос  smile  Задал прежде чем запустил  smile

ЭЭх... Если бы еще значки автоматом выстраивались...

Поделиться

6

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

на видяшке и работает не так шустро. имхо и не совсем это убодно будет, хотя можно приноровиться. важен сам фат запуска портретного режима)))

Ламерство не лечится.

Поделиться

7 (23.02.2010 14:33:06 отредактировано Mike)

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Можно еще во все строки начинающиеся с print добавить # - т.е. закоментировать их
и потом запускать как:

root [enter]
cd / [enter]
nohup python rotate.py &[enter]

и можно выходить из терминала - приложение останется в памяти.

8

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Между прочим, у меня глюк было, когда остался только портретный режим телефона (ещё на прошлой прошивке) и обратно не переворачивался. Так что API этого дела было заложено ещё давно. Но ИМХО, лучше дождаться, когда это нормально сделается.

Поделиться

9

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

у некоторых получалось включать портретный режим, но было либо включится, либо нет.

Ламерство не лечится.

Поделиться

10

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Rumata пишет:

Между прочим, у меня глюк было, когда остался только портретный режим телефона (ещё на прошлой прошивке) и обратно не переворачивался. Так что API этого дела было заложено ещё давно. Но ИМХО, лучше дождаться, когда это нормально сделается.

У меня такой глюк был на последней прошивке - делается просто. Я пытался позвонить и в это время мне входящий звонок был. Я нажал отбой - и портретный режим так и остался пока клавиатуру не открыл

Поделиться

11

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

во первых данный файлик запускается из любой дериктории
во вторых портретный режим корректно отображает только несколько приложений
меню например наполовину не видно, медиаплеер тоже пополам
в общем, вещь прикольная но не практичная  smile

Поделиться

12

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

suavis пишет:

во первых данный файлик запускается из любой дериктории
во вторых портретный режим корректно отображает только несколько приложений
меню например наполовину не видно, медиаплеер тоже пополам
в общем, вещь прикольная но не практичная  smile

Да, чтобы всё более или менее нормально отображалось нужно заново выстраивать отображение всего, от иконок до программ. А тут вроде, я краем глаза глянул, просто изменение координатов, хотя могу ошибаться.

Have trouble with Windows - reboot, have trouble with LINUX - be root!

Сайт Dark Knight

Поделиться

13

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Кривовато ...

Поделиться

14

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Кривой, кстати, скриптик. Память течет. Перегружается тело.

Поделиться

15

Re: Скрипт на Python, активирующий портретный режим экрана(вращение)

Mike пишет:

Кривой, кстати, скриптик. Память течет. Перегружается тело.

не только перезагружаеться тело!!! устоновил значит все как написано сделал! решил погамать значит в Опенарена кваку 3 на телике подрубаю... к ТВ и че происходить!--> в телике показывает экран то есть поварачеваешь тело! переворачиваеться во все стооны! но... захожу в какие то игры!!!! допусим в опен арена экран в Портретном режиме на телике повернуть не как!!!! ну нечего вышел с этой игрухи зашел в Snes погамать в МАрио 3! то же самое в играх экран при подключении к телику стоит портретном режиме даже если тело покрутить не крутиться на телике!!!в чем прикол!!?? или у меня только такое?!!!

Бог : Адам, ну тебе что, ребра жалко что ли? Адам: Да нет ... но у меня предчуствие какое- то нехорошее...=))))

Поделиться