/*******************************************************************************************
							 | 
						|
								*
							 | 
						|
								*   raylib [audio] example - Music playing (streaming)
							 | 
						|
								*
							 | 
						|
								*   NOTE: This example requires OpenAL Soft library installed
							 | 
						|
								*
							 | 
						|
								*   This example has been created using raylib 1.3 (www.raylib.com)
							 | 
						|
								*   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
							 | 
						|
								*
							 | 
						|
								*   Copyright (c) 2015 Ramon Santamaria (@raysan5)
							 | 
						|
								*
							 | 
						|
								********************************************************************************************/
							 | 
						|
								
							 | 
						|
								#include "raylib.h"
							 | 
						|
								
							 | 
						|
								int main()
							 | 
						|
								{
							 | 
						|
								    // Initialization
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								    int screenWidth = 800;
							 | 
						|
								    int screenHeight = 450;
							 | 
						|
								
							 | 
						|
								    InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)");
							 | 
						|
								
							 | 
						|
								    InitAudioDevice();              // Initialize audio device
							 | 
						|
								
							 | 
						|
								    Music music = LoadMusicStream("resources/guitar_noodling.ogg");
							 | 
						|
								    
							 | 
						|
								    PlayMusicStream(music);
							 | 
						|
								
							 | 
						|
								    float timePlayed = 0.0f;
							 | 
						|
								    bool pause = false;
							 | 
						|
								
							 | 
						|
								    SetTargetFPS(60);               // Set our game to run at 60 frames-per-second
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								
							 | 
						|
								    // Main game loop
							 | 
						|
								    while (!WindowShouldClose())    // Detect window close button or ESC key
							 | 
						|
								    {
							 | 
						|
								        // Update
							 | 
						|
								        //----------------------------------------------------------------------------------
							 | 
						|
								        UpdateMusicStream(music);        // Update music buffer with new stream data
							 | 
						|
								        
							 | 
						|
								        // Restart music playing (stop and play)
							 | 
						|
								        if (IsKeyPressed(KEY_SPACE)) 
							 | 
						|
								        {
							 | 
						|
								            StopMusicStream(music);
							 | 
						|
								            PlayMusicStream(music);
							 | 
						|
								        }
							 | 
						|
								        
							 | 
						|
								        // Pause/Resume music playing 
							 | 
						|
								        if (IsKeyPressed(KEY_P))
							 | 
						|
								        {
							 | 
						|
								            pause = !pause;
							 | 
						|
								            
							 | 
						|
								            if (pause) PauseMusicStream(music);
							 | 
						|
								            else ResumeMusicStream(music);
							 | 
						|
								        }
							 | 
						|
								        
							 | 
						|
								        // Get timePlayed scaled to bar dimensions (400 pixels)
							 | 
						|
								        timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400;
							 | 
						|
								        //----------------------------------------------------------------------------------
							 | 
						|
								
							 | 
						|
								        // Draw
							 | 
						|
								        //----------------------------------------------------------------------------------
							 | 
						|
								        BeginDrawing();
							 | 
						|
								
							 | 
						|
								            ClearBackground(RAYWHITE);
							 | 
						|
								
							 | 
						|
								            DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY);
							 | 
						|
								
							 | 
						|
								            DrawRectangle(200, 200, 400, 12, LIGHTGRAY);
							 | 
						|
								            DrawRectangle(200, 200, (int)timePlayed, 12, MAROON);
							 | 
						|
								            DrawRectangleLines(200, 200, 400, 12, GRAY);
							 | 
						|
								            
							 | 
						|
								            DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY);
							 | 
						|
								            DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY);
							 | 
						|
								
							 | 
						|
								        EndDrawing();
							 | 
						|
								        //----------------------------------------------------------------------------------
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // De-Initialization
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								    UnloadMusicStream(music);   // Unload music stream buffers from RAM
							 | 
						|
								
							 | 
						|
								    CloseAudioDevice();         // Close audio device (music streaming is automatically stopped)
							 | 
						|
								
							 | 
						|
								    CloseWindow();              // Close window and OpenGL context
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								
							 | 
						|
								    return 0;
							 | 
						|
								}
							 |