PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : powersaved Verhalten steuern



Beatkiller
26-01-2005, 23:32
Hallo,

ich habe hier ein OpenSource-Game, das eigentlich für Windows programmiert wird, aber durch SDL auch auf Linux gut läuft. Nun habe ich das Problem, das der powersaved immer mitten im Spiel den Monitor abschaltet. Sobald man die Maus bewegt, geht er wieder an. Das kommt anscheinend vom powersave-Daemon.

Kann man den als normaler User irgendwie außer Gefecht setzen? Ich kann ja auch den Code um schreiben. Gibt es irgendwo etwas darüber im Netz, was ich noch nicht gefunden habe?

Danke im Vorraus.

anda_skoa
27-01-2005, 16:53
Das selbe Problem ist doch unter Windows auch nicht anders.

Wenn das Spiel über solange Zeit keinen Input bekommt, tritt nunmal so Sachen wie Bildschirmschoner, etc in Kraft.
Wenn der User das nicht will, kann er es ja abschalten.

Ciao,
_

peschmae
27-01-2005, 17:15
Das Ding ist glaub ich eh SuSE-Spezifisch, oder? Von dem her würde ich mich nicht zu sehr darauf fixieren.
Ausserdem braucht man für so zeugs wohl eh root-rechte, oder?

MfG Peschmä

Beatkiller
27-01-2005, 18:52
Das selbe Problem ist doch unter Windows auch nicht anders.

Wenn das Spiel über solange Zeit keinen Input bekommt, tritt nunmal so Sachen wie Bildschirmschoner, etc in Kraft.
_

Eben das is ja das Problem, ich hab mich vermutlich nicht richtig ausgedrückt. Der Bildschirm wird auch schwarz, wenn ich normal spiele, auch wenn ich das Spiel einfach "pausieren" lasse. Ich hab den Eindruck, dass das Game dem OS / powersaved nicht mitteilt, das die Eingaben, die gemacht werden, auch den Timeout für den Blankscreen zurücksetzen.

Gruß
Beat

anda_skoa
27-01-2005, 20:05
Kommt mir ziemlich komisch vor.
Wenn das Spiel Eingaben erhält, sagen wir durch die Tastatur, sollte der XServer seine XDPMS Sachen nicht aktivieren bzw das Desktop Environment keinen Bildschirmschoner starten.

Kommt eigentlich der Bildschirmschoner noch oder schaltet sich der Monitor gleich ab?

Hmm, welche SDL Backend benutzt du da, schon X11 oder?

Ciao,
_

Beatkiller
28-01-2005, 15:57
Nein, der normale Bildschirmschoner kommt nicht. Nur der Blank-Screen.

Abhängigkeitsliste von SDL enthält libX11.so, also wird es wohl X11 benutzen. svgalib und framebuffer kann ich nicht finden.

Ich finds auch etwas strange. :rolleyes:

anda_skoa
28-01-2005, 16:52
Nein, der normale Bildschirmschoner kommt nicht. Nur der Blank-Screen.

Mit Blankscreen meinst du jetzt das Dunkelschalten des Bildschirm selbst, richtig?

Falls das unter KDE ist, schau mal im Kontrollzentrum unter Energiekontrolle->Energiekontrolle für Monitor/Display und schalte es mal aus, wenn es an sein sollte.



Abhängigkeitsliste von SDL enthält libX11.so, also wird es wohl X11 benutzen. svgalib und framebuffer kann ich nicht finden.


Ist eigentlich schon geklärt wenn du das Spiel unter X11 laufen hast.
Wollte nur sicher gehen, dass es nicht vielleicht auf einer Konsole mit svgalib oder framebuffer läuft.

Ciao,
_

Beatkiller
28-01-2005, 18:45
Ja, der Monitor wird schwarz und geht in Standby.

Das ist doch aber blöd, wenn ich wegen einer App gleich den Energie-Spar-Mode abschalte.


Ich hab nun auch fest gestellt, das ein socket unter /var/run/powersave_socket erstellt wird. Das ja eigentlich durch ein open() und mit read() und write() gelesen/geschrieben werden könnte. Gibt es eine Möglichkeit, das Protokoll aufzubereiten? Ich hab es mit einen kleinen C-Programm probiert, das folgendermaßen aufgebaut ist:


#include <stdio.h>
#include <errno.h>

void main(void)
{
FILE *fd;

char in[1024];

fd = fopen("/var/run/powersave_socket","rb");
if(fd == NULL)
{
printf("%s\n",strerror(errno));
return;
}

fread(in,1,1024,fd);

printf("%s",in);

fclose(fd);
}

dabei bekomme ich die Meldung:

"No such device or address"

Da stimmt doch was nicht... Habt ihr eine Idee?

Gruß und Danke für die bisherigen Rückmeldungen.

BTW: Das Socket hat folgende Zugriffsrechte per default:

srw-rw-rwT 1 root root 0 2005-01-28 19:29 /var/run/powersave_socket=

RapidMax
29-01-2005, 12:31
Mit 'xset q' siehst du in der Ausgabe unter DPMS die Werte für die Energiesparmodi. Es sollte keine Unterschiede vor und während dem Spiel geben. Testweise kannst du mit xset das dpms auch mal umkonfigurieren.

Gruss, Andy

anda_skoa
29-01-2005, 12:52
Ja, der Monitor wird schwarz und geht in Standby.

Das ist doch aber blöd, wenn ich wegen einer App gleich den Energie-Spar-Mode abschalte.

Missverständnis.
Die Idee war, einzugrenzen, ob es diese Einstellung ist.
Wenn es also keine Problem mehr gibt, wenn es ausgeschaltet ist, dann hat es was mit diesem Setting zu tun, wenn nicht, liegt es wo anders.

Offensichtlich ist nämlich irgenwas nicht richtig, solange der User irgendeine Form von Input macht, sollte der Bildschirm nicht abschalten.
Es ist schliesslich auch nicht Aufgabe der Applikation, DPMS abzuschalten.



Ich hab nun auch fest gestellt, das ein socket unter /var/run/powersave_socket erstellt wird. Das ja eigentlich durch ein open() und mit read() und write() gelesen/geschrieben werden könnte.

Sockets werden mit connect() geöffnet, bzw die Applikation mit dem Socket verbunden.

Ciao,
_