Skip to content
Snippets Groups Projects
cds.c 2.79 KiB
Newer Older
T.Wadi's avatar
T.Wadi committed
#include <stdio.h>
#include <stdlib.h>
T.Wadi's avatar
T.Wadi committed
#include <string.h>
T.Wadi's avatar
T.Wadi committed
#include "datastructure.h"
#include "cds.h"
#include "tools.h"
#include "datetime.h"

T.Wadi's avatar
T.Wadi committed
unsigned int countCDs = 0;
T.Wadi's avatar
T.Wadi committed
sCD CDData[MAXCDS];

void createCD()
{
    if (countCDs == MAXCDS)
    {
        puts("Maximum number of cds reached!");
        exit(0);
    }

    clearScreen();
    puts("Erfassung einer neuen CD");
    printLine('=', 50);

    (CDData + countCDs)->numberOfSongs = 0;
    getText("Geben Sie bitte den Titel der CD ein:", 35, &(CDData + countCDs)->title, 0);
    getText("Geben Sie bitte den Interpreten ein:", 35, &(CDData + countCDs)->artist, 1);
    getNumber("Geben Sie bitte das Erscheinungsjahr ein:", &(CDData + countCDs)->publicationYear, 1982, 2022);
    puts("Geben Sie bitte die Daten der Lieder ein:");
    creatSong();
    countCDs++;
}
void creatSong()
{

    do
    {

        printf("Lied %i:\n", ((CDData + countCDs)->numberOfSongs) + 1);
        getText("Geben Sie bitte den Titel des Liedes ein:", 35, &(CDData + countCDs)->Songs[(CDData + countCDs)->numberOfSongs].title, 0);
        getText("Geben Sie bitte den Interpreten ein:", 35, &(CDData + countCDs)->Songs[(CDData + countCDs)->numberOfSongs].artist, 1);
        inputTime("Geben Sie bitte die Dauer des Liedes ein\n   (Format hh:mm:ss oder mm:ss):\n   -> ", &(CDData + countCDs)->Songs[(CDData + countCDs)->numberOfSongs].duration);
        (CDData + countCDs)->numberOfSongs++;

    } while ((askYesOrNo("Moechten Sie noch ein weiteres Lied eingeben (j/n)?")) && ((CDData + countCDs)->numberOfSongs) < MAXSONGS);
}
void editCd()
{

    puts("editCd");
    waitForEnter();
}

void deleteCD()
{
    puts("deleteCd");
    waitForEnter();
}

void searchSong()
{
    puts("deleteCd");
    waitForEnter();
}

void sortCDs()
{
    puts("SortCd");
    waitForEnter();
}
void ListCDs()
{
T.Wadi's avatar
T.Wadi committed
    for (unsigned int i = 0; i < countCDs; i++)
T.Wadi's avatar
T.Wadi committed
    {
        putchar('\n');
        printf("Titel              : %s\n", (CDData + i)->title);
T.Wadi's avatar
T.Wadi committed
        if ((CDData + i)->artist)
            printf("artist             : %s\n", (CDData + i)->artist);
T.Wadi's avatar
T.Wadi committed
        printf("Erscheinungsjahr   : %i\n", (CDData + i)->publicationYear);
        printf("Anzahl Lieder      : %i\n", (CDData + i)->numberOfSongs);
        puts("Lieder");
T.Wadi's avatar
T.Wadi committed
        for (unsigned int j = 0; j < (CDData + i)->numberOfSongs; j++)
T.Wadi's avatar
T.Wadi committed
        {
            listOneSong(i, j);
        }
    }

    waitForEnter();
}
T.Wadi's avatar
T.Wadi committed
void listOneSong(unsigned int i, unsigned int j)
T.Wadi's avatar
T.Wadi committed
{
T.Wadi's avatar
T.Wadi committed
    if ((CDData + i)->Songs[j].artist)
    {
        printf("%.1i. %s (%s; ", (j + 1), (CDData + i)->Songs[j].title, (CDData + i)->Songs[j].artist);
        printTime((CDData + i)->Songs[j].duration, 1);
        puts(")");
    }
    else 
    {
        printf("%.1i. %s ( ", (j + 1), (CDData + i)->Songs[j].title);
        printTime((CDData + i)->Songs[j].duration, 1);
        puts(")");
    }
}