summaryrefslogtreecommitdiffstats
path: root/kmid/songlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kmid/songlist.cpp')
-rw-r--r--kmid/songlist.cpp247
1 files changed, 0 insertions, 247 deletions
diff --git a/kmid/songlist.cpp b/kmid/songlist.cpp
deleted file mode 100644
index cc2572d8..00000000
--- a/kmid/songlist.cpp
+++ /dev/null
@@ -1,247 +0,0 @@
-/**************************************************************************
-
- songlist.cc - class SongList, which holds a list of songs (collection)
- Copyright (C) 1997,98 Antonio Larrosa Jimenez
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- Send comments and bug fixes to larrosa@kde.org
- or to Antonio Larrosa, Rio Arnoya, 10 5B, 29006 Malaga, Spain
-
-***************************************************************************/
-#include "songlist.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-SongList::SongList(void)
-{
- list=NULL;
- last=NULL;
- active=NULL;
- ntotal=0;
-}
-
-SongList::SongList(SongList &src)
-{
- list=last=active=NULL;
- ntotal=0;
- src.iteratorStart();
- while (!src.iteratorAtEnd())
- {
- AddSong(src.getIteratorName());
- src.iteratorNext();
- }
- if (src.active!=NULL) active=getSongid(src.active->id);
-}
-
-SongList::~SongList()
-{
- clean();
- Song *ptr=list;
- active=last=NULL;
- ntotal=0;
-
- while (ptr!=NULL)
- {
- list=ptr->next;
- delete ptr->name;
- delete ptr;
- ptr=list;
- }
-
-}
-
-SongList::Song *SongList::getSongid(int id)
-{
- Song *ptr=list;
- while ((ptr!=NULL)&&(ptr->id!=id))
- ptr=ptr->next;
-
- return ptr;
-}
-
-int SongList::AddSong(const char *song)
-{
- if (!song) return 0;
-
- if (last==NULL)
- {
- last=new Song;
- list=last;
- }
- else
- {
- last->next=new Song;
- last=last->next;
- }
- last->name=new char[strlen(song)+1];
- strcpy(last->name,song);
- last->id= ++ntotal;
- last->next=NULL;
- if (active==NULL) active=last;
- return last->id;
-}
-
-void SongList::DelSong(int id)
-{
- Song *ptr;
-
- if (list==NULL) return;
- if (id==1)
- {
- if (last->id==1)
- {
- list=last=active=NULL;
- ntotal=0;
- }
- else
- {
- ptr=list;
- if (active->id==1) active=list->next;
- list=list->next;
- delete ptr->name;
- delete ptr;
- ntotal--;
-
- regenerateid(list,1);
- }
- return;
- }
- Song *ptr_prev=getSongid(id-1);
- ptr=ptr_prev->next;
- if (last->id==id) last=ptr_prev;
- if (active->id==id)
- if (active->next!=NULL) active=active->next;
- else active=ptr_prev;
-
- ntotal--;
- ptr_prev->next=ptr->next;
- delete ptr->name;
- delete ptr;
- regenerateid(ptr_prev->next,id);
-
-}
-
-void SongList::regenerateid(Song *song,int id)
-{
- Song *tmp=song;
- int i=id;
- while (tmp!=NULL)
- {
- tmp->id=i++;
- tmp=tmp->next;
- }
- ntotal=i-1;
-}
-
-void SongList::setActiveSong(int id)
-{
- Song *tmp=getSongid(id);
- if (tmp!=NULL) active=tmp;
-}
-
-char *SongList::getName(int id)
-{
- Song *tmp=getSongid(id);
- if (tmp!=NULL) return tmp->name;
- return NULL;
-}
-
-/*
-void SongList::saveList(FILE *fh)
-{
- Song *ptr=list;
- while (ptr!=NULL)
- {
- fputs(fh,ptr->name);
- ptr=ptr->next;
- }
-}
-*/
-
-void SongList::iteratorStart(void)
-{
- it=list;
-}
-
-void SongList::iteratorNext(void)
-{
- if (it!=NULL) it=it->next;
-}
-
-int SongList::getIteratorID(void)
-{
- if (it==NULL) return -1;
- return it->id;
-}
-
-char *SongList::getIteratorName(void)
-{
- if (it==NULL) return NULL;
- return it->name;
-}
-
-
-void SongList::clean(void)
-{
- Song *tmp=list;
- active=last=NULL;
- ntotal=0;
-
- while (tmp!=NULL)
- {
- list=tmp->next;
- delete [] tmp->name;
- delete tmp;
- tmp=list;
- }
-}
-
-void SongList::copy(SongList &src)
-{
- clean();
- src.iteratorStart();
- while (!src.iteratorAtEnd())
- {
- AddSong(src.getIteratorName());
- src.iteratorNext();
- }
- if (src.active!=NULL) active=getSongid(src.active->id);
-}
-
-int SongList::next(void)
-{
- if (list==NULL) {active=NULL;return 0;};
- if (active!=NULL) active=active->next;
- if (active==NULL)
- {
- Song *tmp=list;
- while (tmp->next!=NULL) tmp=tmp->next;
- active=tmp;
- return 0;
- }
- return 1;
-}
-
-
-void SongList::previous(void)
-{
- if (list==NULL) {active=NULL;return;};
- Song *tmp=list;
- while ((tmp->next!=NULL)&&(tmp->next->id!=active->id)) tmp=tmp->next;
- if (tmp->next==NULL) {active=list;return;};
- active=tmp;
-}