~elementary-apps/noise/source-view-api

« back to all changes in this revision

Viewing changes to plugins/LastFM/Core.vala

  • Committer: Corentin Noël
  • Date: 2012-11-10 01:53:46 UTC
  • Revision ID: tintou@mailoo.org-20121110015346-g3e6g1dv1btlbjit
Debuged and re-add some functions

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
        LastFM.SimilarMedias similarMedias;
46
46
 
47
 
        Mutex _artists_lock;
48
 
        Mutex _albums_lock;
49
 
        Mutex _tracks_lock;
50
47
        HashMap<string, LastFM.ArtistInfo> _artists;//key:artist
51
48
        HashMap<string, LastFM.AlbumInfo> _albums;//key:artist<sep>album
52
49
        HashMap<string, LastFM.TrackInfo> _tracks;//key:artist<sep>album<sep>track
62
59
            _albums = new HashMap<string, LastFM.AlbumInfo>();
63
60
            _tracks = new HashMap<string, LastFM.TrackInfo>();
64
61
 
65
 
           _artists_lock.lock();
66
 
            foreach(Noise.ArtistInfo a in lm.dbm.load_artists()) {
67
 
                _artists.set(a.name, (LastFM.ArtistInfo)a);
68
 
            }
69
 
            _artists_lock.unlock();
70
 
 
71
 
            _albums_lock.lock();
72
 
            foreach(Noise.AlbumInfo a in lm.dbm.load_albums()) {
73
 
                _albums.set(a.name + " by " + a.artist, (LastFM.AlbumInfo)a);
74
 
            }
75
 
            _albums_lock.unlock();
76
 
 
77
 
            _tracks_lock.lock();
78
 
            foreach(Noise.TrackInfo t in lm.dbm.load_tracks()) {
79
 
                _tracks.set(t.name + " by " + t.artist, (LastFM.TrackInfo)t);
80
 
            }
81
 
            _tracks_lock.unlock();
 
62
            lock(_artists) {
 
63
                foreach(Noise.ArtistInfo a in lm.dbm.load_artists()) {
 
64
                    _artists.set(a.name, (LastFM.ArtistInfo)a);
 
65
                }
 
66
            }
 
67
 
 
68
            lock(_albums) {
 
69
                foreach(Noise.AlbumInfo a in lm.dbm.load_albums()) {
 
70
                    _albums.set(a.name + " by " + a.artist, (LastFM.AlbumInfo)a);
 
71
                }
 
72
            }
 
73
 
 
74
            lock(_tracks) {
 
75
                foreach(Noise.TrackInfo t in lm.dbm.load_tracks()) {
 
76
                    _tracks.set(t.name + " by " + t.artist, (LastFM.TrackInfo)t);
 
77
                }
 
78
            }
82
79
 
83
80
            similarMedias.similar_retrieved.connect(similar_retrieved_signal);
84
81
        }
93
90
        }
94
91
 
95
92
        public void save_artist(LastFM.ArtistInfo artist) {
96
 
            _artists_lock.lock();
97
 
            _artists.set(artist.name.down(), artist);
98
 
            _artists_lock.unlock();
 
93
            lock(_artists) {
 
94
                _artists.set(artist.name.down(), artist);
 
95
            }
99
96
        }
100
97
 
101
98
        public bool artist_info_exists(string artist_key) {
105
102
        public LastFM.ArtistInfo? get_artist(string artist_key) {
106
103
            LastFM.ArtistInfo? rv = null;
107
104
 
108
 
            _artists_lock.lock();
109
 
            if(artist_info_exists(artist_key.down()))
110
 
                rv = _artists.get(artist_key.down());
111
 
            _artists_lock.unlock();
 
105
            lock(_artists) {
 
106
                if(artist_info_exists(artist_key.down()))
 
107
                    rv = _artists.get(artist_key.down());
 
108
            }
112
109
 
113
110
            return rv;
114
111
        }
123
120
        }
124
121
 
125
122
        public void save_album(LastFM.AlbumInfo album) {
126
 
            _albums_lock.lock();
127
 
            _albums.set(album.name.down() + " by " + album.artist.down(), album);
128
 
            _albums_lock.unlock();
 
123
            lock(_albums) {
 
124
                _albums.set(album.name.down() + " by " + album.artist.down(), album);
 
125
            }
129
126
        }
130
127
 
131
128
        public bool album_info_exists(string album_key) {
135
132
        public LastFM.AlbumInfo? get_album(string album_key) {
136
133
            LastFM.AlbumInfo? rv = null;
137
134
 
138
 
            _albums_lock.lock();
139
 
            if(album_info_exists(album_key.down()))
140
 
                rv = _albums.get(album_key.down());
141
 
            _albums_lock.unlock();
 
135
            lock(_albums) {
 
136
                if(album_info_exists(album_key.down()))
 
137
                    rv = _albums.get(album_key.down());
 
138
            }
142
139
 
143
140
            return rv;
144
141
        }
153
150
        }
154
151
 
155
152
        public void save_track(LastFM.TrackInfo track) {
156
 
            _tracks_lock.lock();
157
 
            if (track != null && track.name != null && track.artist != null)
158
 
            _tracks.set(track.name.down() + " by " + track.artist.down(), track);
159
 
            _tracks_lock.unlock();
 
153
            lock(_tracks) {
 
154
                if (track != null && track.name != null && track.artist != null)
 
155
                _tracks.set(track.name.down() + " by " + track.artist.down(), track);
 
156
            }
160
157
        }
161
158
 
162
159
        public bool track_info_exists(string track_key) {
166
163
        public LastFM.TrackInfo? get_track(string track_key) {
167
164
            LastFM.TrackInfo? rv = null;
168
165
 
169
 
            _tracks_lock.lock();
170
 
            if(track_info_exists(track_key.down()))
171
 
                rv = _tracks.get(track_key.down());
172
 
            _tracks_lock.unlock();
 
166
            lock(_tracks) {
 
167
                if(track_info_exists(track_key.down()))
 
168
                    rv = _tracks.get(track_key.down());
 
169
            }
173
170
 
174
171
            return rv;
175
172
        }