Ask Question, Ask an Expert

+1-415-315-9853

info@mywordsolution.com

Ask C/C++ Expert


Home >> C/C++

problem 1) prepare a simple music player with playlist capabilities. You will require to be able to load in “music library” (a song list) of songs on the computer, and then permit the user to create playlist of those songs to play. A playlist is the list of songs which must be played. The order of list determines the order in which the songs must be played. One song file can be on given playlist multiple times.

To implement this functionality you should first create song class to extend the mediaItem class which is included in the supplied source. The mediaItem class has the ability to get and set the location of a .wav (audio) file and then play, pause, and stop that file. Your new class must be a child class (derived class) of mediaItem which extends its functionality to being able to store the artist name and song title with the song.

Ensure to implement your artist name and song title variables as private members of the class with get( ) and set ( ) functions to manipulate them. Add any more functions to your derived class that you see fit. Make it your own. You inherited it.
Next you must create an array or a vector of the new class you have created of length MAX_SONGS.

You will need to read in the text file that describes all the songs we are using (as describeed in the loadSongList function below) into this array. This will be your array representing your music library. You will also need to make the array of integers to store a playlist for the user. The playlist array must be the array of pointers (integers which are the array index of songs) of length MAX_PLAYLIST. These pointers must point to a song in your music library (a song list). This indirection will allow you manipulate the array pointers, while leaving your master music library array as a static structure.

You must implement the following functions in your file to make the program work:

i) bool loadSongList(string filename)

INPUTS: a string containing a path to a file to open. This value is returned from the user's selection in the open file dialog.
OUTPUTS: a boolean indicating whether or not the file could be opened correctly. This function should open a file containing a formatted list of song data. This data should be in the following format:

An integer indicating the total number of songs
An Artist
A song Title
The file's location on disk
(repeat these three the number of times indicated)
So for ex:
2 Beastie Boys
Brass Monkey
./songs/Brass_Monkey.wav Paul Simon
You Can Call Me Al
./songs/Call_Me_Al.wav

Note that each field is delimited by a newline character (\n) there CAN BE WHITESPACE in the fields! You should read all of this data into an array or a vector of song objects you create as described above.

ii) int getNumberOfSongsInSongList( )

INPUTS: NONE
OUTPUTS: An integer indicating the number of songs that are currently loaded into your song object array or vector.

iii) string getSongNameFromSongList(int songNum)

INPUTS: Integer indicating which song object (via its index in your song object array or vector)
OUTPUTS: NONE

This function must return a string in the format of: "Artist - Song Title" which corresponds to the specified song in your song list.

iv) string getSongNameFromPlaylist(int playlistSpot)

INPUTS: An integer indicating which song to return (via its spot in the playlist)
OUTPUTS: NONE

This function must return a string in the format of: "Artist - Song Title" that corresponds to the specified song in your playlist. Note that this is NOT the same thing as getSongNameFromSongList. This function is returning the song data that corresponds to the passed in spot in your playlist. As the playlist is a list of indexes in the array or vector, you will need to follow the index in the designated spot to the actual song requested.

v) void addSongToPlaylist(int songNum)

INPUTS: Integer indicating which song from the song list to add to the playlist
OUTPUTS: NONE

You must add the index to the song from your song list indicated in the argument, to your playlist array or vector.

vi) int getNumberOfSongsInPlaylist()

INPUTS: NONE
OUTPUTS: Return an integer indicating the number of songs currently in the playlist.

vii) void removeSongFromPlaylist(int playlistSpot)

INPUTS: An integer corresponding to which spot in the playlist has a song which requires to be removed
OUTPUTS: NONE

You must remove the song indicated from your playlist. Note: This doesn’t mean delete it from the song list/media library as well. Just the playlist. Again, indirection.

viii) void clearPlaylist()

INPUTS: NONE
OUTPUTS: NONE

You must reset the playlist to empty, i.e., it must be reset to contain no songs.

ix) void moveSongUpInPlaylist(int playlistSpot)

INPUTS: Integer indicating that spot in the playlist has a song which requires to be moved up.
OUTPUTS: NONE

You must swap the song indicated with the spot in the playlist above it (if there is a song above it to swap with).

x) void moveSongDownInPlaylist(int playlistSpot)

INPUTS: Integer indicating that spot in the playlist has a song which requires to be moved down.
OUTPUTS: NONE

You must swap the song indicated with the spot in the playlist below it (if there is a song below it to swap with).

xi) void playSongFromPlaylist(int playlistSpot)

INPUTS: An integer indicating which spot in the playlist has a song which requires to be played.
OUTPUTS: NONE

You must call the playMedia() function that the song specified, inherited from the mediaItem class.

xii) void pauseSongFromPlaylist(int playlistSpot)

INPUTS: An integer indicating which spot in the playlist has a song which requires to be paused.
OUTPUTS: NONE
You must call the pauseMedia() function that the song specified, inherited from mediaItem class.

xiii) void stopSongFromPlaylist(int playlistSpot)

INPUTS: An integer indicating which spot in the playlist has a song that needs to be stopped.
OUTPUTS: NONE

You must call the stopMedia() function that the song specified, inherited from the mediaItem class.

Take note of the globals.h file. You will also notice the variable SHOW_DEBUG_CONSOLE. It may be useful to see output from cout or any other standard I/O function. If you set this variable to true, you will see a console started in addition to the program GUI. You can output things here if you find it helpful.

C/C++, Programming

  • Category:- C/C++
  • Reference No.:- M95666

Have any Question? 


Related Questions in C/C++

Assignmentinstructionsthis assignment is to implement your

Assignment Instructions This assignment is to implement your own mini-grocery store in C++. Suppose you have the following Food hierarchy: FOOD FRUIT APPLE BANANA GRAPE DAIRY MILK YOGURT CHEESE (your choice) (three items ...

Modules in c are called functions c programs are typically

Modules in C are called functions. C programs are typically written by combining user created functions as well as "pre-packaged" functions found in the C Standard Library. For instance, printf() is a function that is fo ...

Computer sciencewhere do you think c and coding games in c

Computer Science Where do you think C++ and coding games in C++ is headed in the next five years? How about in the next 10 years? Do you think there are any significant improvements that need to be made to the code to en ...

Assignmentpart acomplete the following questionswrite c

Assignment Part A Complete the following questions: Write C++ code to open a document with the name Hello.txt, place the message "Hello, World!" in the document, and exit the document. Re open the file you closed, and re ...

Write a console-based c program that can be used as a math

Write a console-based C++ program that can be used as a math tutor for a young student. The program should display two random numbers consisting of three digits each to be added in columnar format, such as: 247 +129 ---- ...

Write a c application that does the followingitem 1 prompts

Write a C++ application that does the following: ITEM 1: Prompts the user to choose one of the following series: 1 + 1/2 + 1/3 + ... + 1/n ((((x * 2) * 2) * ...) * 2) series of n multiplications x + (x * 1) + (x * 2) + ( ...

Programming in cbubba tubs bbq rub is a company that makes

Programming in C++ Bubba Tub's BBQ Rub is a company that makes different BBQ dry rubs and sauces. They make each product when it is ordered with the freshest ingredients and sell it by the unit. A unit is 2 ounces of pro ...

Write a c program that calculates and prints the average of

Write a C program that calculates and prints the average of two or more salaries entered by the user. The program should first prompt the user to enter the number of salaries to process (make sure: at least 2 salaries mu ...

Assignmentwhen writing c programs include comments in your

Assignment When writing C++ programs include comments in your code, make the program readable by indenting, use meaningful variable and function names, and produce meaningful output. This assignment will be to write a bm ...

Transaction processing system tpsxyz electronics is one of

Transaction Processing System (TPS) XYZ Electronics is one of the most popular electronics companies In Sultanate of Oman the company offers affordable electronic gadgets such as mp3 players, portable movie players, mobi ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

WalMart Identification of theory and critical discussion

Drawing on the prescribed text and/or relevant academic literature, produce a paper which discusses the nature of group

Section onea in an atwood machine suppose two objects of

SECTION ONE (a) In an Atwood Machine, suppose two objects of unequal mass are hung vertically over a frictionless

Part 1you work in hr for a company that operates a factory

Part 1: You work in HR for a company that operates a factory manufacturing fiberglass. There are several hundred empl

Details on advanced accounting paperthis paper is intended

DETAILS ON ADVANCED ACCOUNTING PAPER This paper is intended for students to apply the theoretical knowledge around ac

Create a provider database and related reports and queries

Create a provider database and related reports and queries to capture contact information for potential PC component pro