 (defn request-file-download [track-id]
   (if (nil? (get (:music-files @app-state) track-id))
     (do
+      (swap! app-state assoc :download-status (merge (:download-status @app-state)
+                                                     {track-id :in-progress}))
       (swap! app-state assoc :music-files (merge (:music-files @app-state)
                                                  {track-id (new js/Blob)}))
       (swap! app-state assoc :num-of-downloads (inc (:num-of-downloads @app-state)))


      (if-not (is-track-downloaded? track-id)
        (request-file-download track-id)
        (.emit socket "ready-to-start" sound-id))))


(.on socket "pause"

                          :download-slots default-download-slots
                          :num-of-uploads 0
                          :num-of-downloads 0
                          :download-progress {}
                          :download-status {}}))

(enable-console-print!)

