KINGx - Das inoffizielle PlayStation Forum & News Portal

Normale Version: [HILFE] eine ini datei in einem plugin verwenden.
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
ich bekomme die total krise, bitte kann mir mal einer auf die sprünge helfen.
ich habe ein plugin geschrieben das 7 button-commands hat (psp_ctrl_rtrigger usw), jetzt möchte ich die gerne mit einer ini-datei bearbeiten können.

als poc:

module_start()
{
read config()
{
restartbutton_default = cross;
read config(restarbutton)
if not null
{set restartbutton}
else
[use default}
}

habe von irkey bis joysens alle möglichen source durchgearbeitet, doch leider funktioniert nichts so wie ich das möchte.

hat vielleicht jemand ein template für sowas?

in der z.B. nur eine variable mit zahlenwert steht und eine mit string.

wäre dankbar

mfg 743acid743
Die PSP hat standartmäßig keine Routine zum auslesen von .ini Files. Deswegen muss man sich seine eigene schreiben. Wenn du mir sagst was das Plugin genauso macht, kann ich dir ein Konzept vorschalgen und schreiben. Du musst genau beschreiben um was es geht.
Danke das wenigstens du mir helfen möchtest. Wollte nicht die arbeit eines anderen schlecht machen hat mich nur genervt. Zurück zum thema.

Die config des plugins ist eigentlich nur für die tasten zuständig, bis jetzt:

L-Taste + rauf = Helligkeit rauf
L-Taste + runter = Helligkeit runter
L-Taste + Dreieck = shutdown
L-Taste + Kreis = VSH Neustart
L-Taste + Links = Display aus
L-Taste + rechts = Display an
L-Taste + Viereck = Cold-Reset

dazukommen sollte noch ein zahlenwert für die config vom display, also ein zahlenwert zwischen 0 und 100. Die config am ende sollte in etwa so aussehen:

Code:
Menubutton    = "BUTTON"
OptionButton1 = "BUTTON"   // OptionButton geht von 1 bis 7
OptionButton2 = "BUTTON"  // ... usw
Display = "50"                   // der wert der eingestellten helligkeit von dem display


wäre dankbar wenn du das hinbekommst. Werde jetzt mal versuchen denn code anzupassen denn du im anderen Foren-Beitrag geschrieben hast, vielleicht hilft er mir auch schon weiter.

MfG 743acid743

P.S.: Werde sobald das funktioniert natürlich dich in den danksagungen in der readme eintragen und dir natürlich die erste neu gecodete version mit config zukommen lassen als PM.

Gut hier ist es ein wenig schwieriger aber immer noch machabar:

Code:
/*Als Basis benutze ich den aus dem anderen Thread diesmal wird er aber ein wenig ausgefeilter*/

#include <stdio.h>

/*...*/
  char buffer[50], *result;
  FILE *input = fopen("./config.ini", "r"); //Die Datei im Lese Modus öffnen
  int i;
  char part1[50], part2[50];
  char button1[50], button2[50];
  while (1) {
    result = fgets(buffer,49,input); //Bis zum Ende auslesen
    if (!result)
      break;

    if (buffer[0] == ';')
      continue; /*Die Linie ist auskommentiert*/

    if (buffer[strlen(buffer) -1] == 13 || buffer[strlen(buffer) -1] == 10)
      buffer[strlen(buffer) -1] = '\0'; /*Den Zeilenabsatz ('\n' überschreiben*/

    /*Der String wird am "=" Zeichen in zwei hälften geteilt */
    strcpy(part1, strtok ( buffer, "="));
    strcpy(part2, strtok ( NULL, "="));

    /*Die Strings werden bearbeitet um sie besser vgl. zu könne*/
    if (part1[strlen(part1) -1] == ' ')
      part1[strlen(part1) -1] = '\0';

    /*Wir schauen ob der funktion zwei tasten zu gewiesen sind */
    result = pch=strchr(part1,'+');
    if (result == NULL) {
      /*Wir erwarten jetzt, dass der String den wir ausgelesen hat kein Plus zeichen hat*/
      /*Er sollte ungefähr so aus sehen "PSP_CTRL_LTIGGER" */
      strcpy(button1,part1);
    } else {
      /*Wir teilen String wieder am "+" Zeichen*/
      strcpy(button1, strtok ( part1, "+"));
      strcpy(button2, strtok ( NULL, "+"));

      /*und entfernen die Leerzeichen am Ende und Anfang*/
      if (button1[strlen(button1) -1] == ' ')
        button1[strlen(button1) -1] = '\0';

      if (button2[0] == ' ') {
        /*Jetzt müssen wir die ganze array um ein Feld nach links verschieben*/
        for (i = 0; i <= strlen(button2) +1; i++)
          button1[i] = button1[i +1];
      }
      
    }
    /*usw.*/
  }
/*...*/


Also in dem Code werden die Tasten in als String in button1 und wenn benötigt in button2 kopiert. Die Funktion die, wenn die Taste gedrückt wird ausgeführt werden soll, ist in part2 gespeichert. Diese kann man dann mit vergleichen dann zum Ergebniss führen.

Ich hab den Code nicht ausprobiert und er stellt nur ein Konzept dar. Er sollte aber funktionieren wenn die Funktionen das machen wo von ich ausgegangen bin.
Am besten testet man sowas vorher am PC um es besser debuggen zu können.

Danke für die antwort , doch nun gehts richtig los...
Das dauert jetzt etwas länger bis ich wieder antworte.
Ich hoffe das der code soweit funktioniert, denn nun muss ich den code komplett umschreiben mit den psp-internen-file-funktionen, weil die normalen stdio befehle nicht gehen so wie ich das plugin gecodet habe. Als denn, ran an die arbeit.

Fettes danke nochmal pspbricker
@743acid743 Mach statt config.ini - pluginkürzel.ini (bei mir hide.ini Wink)

Da is es besser, wenn ein anderes Plugin eine config.ini benutzt kann es wahrscheinlich zum Crash führen Wink
Es ist vollbracht, nun könnt ihr das plugin mit euren tasten versehen.
Viel Spass wünsche ich euch damit. Mehr in der readme.txt.

MfG 743acid743

http://www.megaupload.com/?d=Z2UVL0SU
Nicht schlecht - testen...
Referenz-URLs