:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > OldSchool Library > Aide au développement

Aide au développement Aide sur l'utilisation d'OSLib

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 11/02/2007, 22h27   #1
Compozitor
Membre
 
Date d'inscription: 11/02/2007
Messages: 10
Par défaut Help with code please!

I can't figure where is the error. I'm new to cpp and to oslib.
I'm working on programm for musiciants, first metronome.

Compiler gives me no errors with this code.
But when i try to run it on psp, there is only black screen and that's all then its shutsdown. When i insert oslShowNeoflashLogo(); in the main int. And run it on psp Logo is playing and then black screen again...

Please help me!

Code PHP:
#include <oslib/oslib.h>

PSP_MODULE_INFO("Metronome"011);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);

OSL_IMAGE *background;
OSL_SOUND *mtick;

void Keys();
void Text();
void PlayMetronome();

int metronomeon 0;

int tempo 120;

int clocktime()
{
return 
clock();
}

int mettick()
{
return 
clocktime()*60/tempo;
}

int main(int argccharargv[])
{
    
//Initialize the different parts of the library
    
oslInit(0);
    
oslInitGfx(OSL_PF_88881);
    
oslInitConsole();
    
oslInitAudio();
    
    
//Загружаем звуки
    
mtick oslLoadSoundFile("tick.wav"OSL_FMT_NONE);
    
oslAssert(mtick);
    
//Загружаем рисунки
    
background oslLoadImageFile("bg.png"OSL_IN_RAMOSL_PF_5551);
    
    if (!
mtick || !background)
        
oslFatalError("Some files are not here.");
    
    
//Конфигурация джойстика
    
oslSetKeyAutorepeatInit(40);
    
oslSetKeyAutorepeatInterval(10);
    
    
//Main loop
    
while (!osl_quit)
    {
    
        
oslStartDrawing();
        
Keys();
        
//back
        
oslDrawImage(background);    
        
//Вывод текста
        
Text();
        
        
PlayMetronome();
        
        
        
oslEndDrawing();
        
//Synchronisation
        
oslSyncFrame();
        
oslAudioVSync();
    }

    
//Game terminated (HOME -> quit)
    
oslEndGfx();
    
oslQuit();
    return 
0;
}

//Metronome is playing
void PlayMetronome()
{
 if (
metronomeon == && mettick() == clocktime()) oslPlaySound(mtick0);
}

void Keys()
{
    
oslReadKeys();

    
//Buttons 
    
if (osl_keys->pressed.crossmetronomeon 1;
    if (
osl_keys->pressed.startoslQuit();            //Exit the sample
}

void Text()
{
    
//Set the color of the text
    
oslSetTextColor(RGBA(0,0,0,255));
    
oslSetBkColor(RGBA(0,0,0,0));

    
oslPrintf_xy(1,5,"Time:"+clocktime());

Compozitor est déconnecté   Réponse avec citation

Publicité

Vieux 11/02/2007, 23h06   #2
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Your program structure seems to be okay. I've not got my devtools right there (I'm on my laptop) but all I can say is that in those cases the best you can do is to debug, using multiple oslDebug instructions. You'll be able to trace where the program crashes, as it's just after where the last oslDebug message was displayed
Code PHP:
oslDebug("#1");
yourInstruction;
oslDebug("#2");
anotherInstruction
Then you know that if only #1 was displayed, you have a problem on "yourInstruction".
Brunni est déconnecté   Réponse avec citation
Vieux 12/02/2007, 21h55   #3
Compozitor
Membre
 
Date d'inscription: 11/02/2007
Messages: 10
Par défaut

Here is the error...
Code PHP:
oslPrintf_xy(1,5,"Time:"+clocktime()); 
What's not right here? If there is only
Code PHP:
oslPrintf_xy(1,5,"Time:"); 
But it's not working with function...


And btw function clock() - returns millisecs in 1 from 1000 and cicles right?

Or it;s non stoppable? from 1 to ~?

When i manage to run the program, it start perfectly... but...
Sound not playing when i click "X" in psp...

help me please a little more. Thx!
Compozitor est déconnecté   Réponse avec citation
Vieux 13/02/2007, 13h48   #4
Compozitor
Membre
 
Date d'inscription: 11/02/2007
Messages: 10
Par défaut

Ok i'm made it to work Now i have metronome.

I just created my own timer What was i thinking before....

Code PHP:
int timer 0;

int clocktime()
{
if (
timer >= 1000timer 0;
timer timer 10;
return 
timer;


Dernière modification par Compozitor ; 13/02/2007 à 14h38.
Compozitor est déconnecté   Réponse avec citation
Vieux 20/02/2007, 18h31   #5
Compozitor
Membre
 
Date d'inscription: 11/02/2007
Messages: 10
Par défaut

Hi all! Again...

Now i really ned help with my metronome code. 2 Programmers was unable to help....

Code PHP:
#include <oslib/oslib.h>

PSP_MODULE_INFO("Metronome"011);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER THREAD_ATTR_VFPU);

OSL_IMAGE *background;
OSL_SOUND *mtick;

void Keys();
void Text();
void PlayMetronome();

int metronomeon 0;

int tempo 120;

int timer 0;

int mettick()
{
    return (int)(
6000/tempo);
}

int clocktime()
{
    if (
timer == 0) {timer mettick();} else {timer--;}
    return 
timer;
}

int main(int argccharargv[])
{
    
//Initialize the different parts of the library
    
oslInit(0);
    
oslInitGfx(OSL_PF_88881);
    
oslInitConsole();
    
oslInitAudio();
    

    
//Загружаем звуки
    
mtick oslLoadSoundFile("tick.wav"OSL_FMT_NONE);
    
//Загружаем рисунки

    
background oslLoadImageFile("bg.png"OSL_IN_RAMOSL_PF_5551);
    

    if (!
mtick || !background)
        
oslFatalError("Some files are not here.");
    

    
//Конфигурация джойстика
    
oslSetKeyAutorepeatInit(40);
    
oslSetKeyAutorepeatInterval(10);
    
    
//Main loop
    
while (!osl_quit)
    {

        
oslStartDrawing();

        
Keys();
        
//back

        
oslDrawImage(background);    
        
//Вывод текста

        
Text();
        

        
PlayMetronome();
        

        
oslEndDrawing();
        
//Synchronisation

        
oslSyncFrame();

        
oslAudioVSync();
    }

    
//Game terminated (HOME -> quit)
    
oslEndGfx();
    
oslQuit();
    return 
0;
}

//Metronome is playing
void PlayMetronome()
{
 if (
metronomeon == 1)
 {
     if (
clocktime() == 0oslPlaySound(mtick0);
 }
}

void Keys()
{
    
oslReadKeys();

    if (
osl_keys->pressed.down && metronomeon == 0tempo tempo 1;
    if (
osl_keys->pressed.up && metronomeon == 0tempo tempo ;

    
//Buttons 
    
if (osl_keys->pressed.cross && metronomeon == 0
    {
        
metronomeon 1;
        
timer mettick();
    }
    else if (
osl_keys->pressed.cross && metronomeon == 1metronomeon 0;
    if (
osl_keys->pressed.startoslQuit();            //Exit the sample
}
void Text()
{
    
//Set the color of the text
    
oslSetTextColor(RGBA(0,0,0,255));
    
oslSetBkColor(RGBA(0,0,0,0));
    
oslPrintf_xy(15"ClockTime: %d"clocktime());
    
oslPrintf_xy(115"MetTick: %d"mettick());
    
oslPrintf_xy(125"Tempo: %d"tempo);
    
oslPrintf_xy(135"MetronomeOn: %d"metronomeon);

The problem is that when tempo = 117,116,113,112,109 and so on... Sound not playing... The same goes and for tempo > 120. But on tempo 120 sound plays alsmost normal. Can someone test it?? And help me. What's wrong here.... Thx!
Compozitor est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h31.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince