Fix inconsistent session-check
[ardour.git] / gtk2_ardour / video_image_frame.cc
index ebcb9e6f96c8b9aabc52806b18b20075b404cdfe..2473da0b4e1f603ada21e2bd96a4941295b4affa 100644 (file)
 #include <sigc++/bind.h>
 #include "ardour/tempo.h"
 
-#include "ardour_ui.h"
-#include "video_image_frame.h"
-#include "public_editor.h"
-#include "utils.h"
-#include "canvas/group.h"
-#include "utils_videotl.h"
-
 #include <gtkmm2ext/utils.h>
 #include <pthread.h>
 
-#include "i18n.h"
+#include "canvas/container.h"
+
+#include "ardour_http.h"
+#include "public_editor.h"
+#include "utils_videotl.h"
+#include "video_image_frame.h"
+
+#include "pbd/i18n.h"
 
 using namespace std;
 using namespace ARDOUR;
@@ -43,7 +43,7 @@ static void freedata_cb (uint8_t *d, void* /*arg*/) {
        free (d);
 }
 
-VideoImageFrame::VideoImageFrame (PublicEditor& ed, ArdourCanvas::Group& parent, int w, int h, std::string vsurl, std::string vfn)
+VideoImageFrame::VideoImageFrame (PublicEditor& ed, ArdourCanvas::Container& parent, int w, int h, std::string vsurl, std::string vfn)
        : editor (ed)
        , _parent(&parent)
        , clip_width(w)
@@ -63,7 +63,7 @@ VideoImageFrame::VideoImageFrame (PublicEditor& ed, ArdourCanvas::Group& parent,
        image = new ArdourCanvas::Image (_parent, Cairo::FORMAT_ARGB32, clip_width, clip_height);
 
        img = image->get_image();
-       fill_frame(0, 0, 0);
+       fill_frame (0, 0, 0);
        draw_line();
        draw_x();
        image->put_image(img);
@@ -80,7 +80,7 @@ VideoImageFrame::~VideoImageFrame ()
 }
 
 void
-VideoImageFrame::set_position (framepos_t sample)
+VideoImageFrame::set_position (samplepos_t sample)
 {
        double new_unit_position = editor.sample_to_pixel (sample);
        image->move (ArdourCanvas::Duple (new_unit_position - unit_position, 0.0));
@@ -100,7 +100,7 @@ VideoImageFrame::exposeimg () {
 }
 
 void
-VideoImageFrame::set_videoframe (framepos_t videoframenumber, int re)
+VideoImageFrame::set_videoframe (samplepos_t videoframenumber, int re)
 {
        if (video_frame_number == videoframenumber && rightend == re) return;
 
@@ -108,7 +108,7 @@ VideoImageFrame::set_videoframe (framepos_t videoframenumber, int re)
        rightend = re;
 
        img = image->get_image();
-       fill_frame(0, 0, 0);
+       fill_frame (0, 0, 0);
        draw_x();
        draw_line();
        cut_rightend();
@@ -116,7 +116,7 @@ VideoImageFrame::set_videoframe (framepos_t videoframenumber, int re)
        exposeimg();
 
        /* request video-frame from decoder in background thread */
-       http_get(video_frame_number);
+       http_get (video_frame_number);
 }
 
 void
@@ -195,13 +195,13 @@ VideoImageFrame::cut_rightend ()
        }
 }
 
-void *
+static void *
 http_get_thread (void *arg) {
        VideoImageFrame *vif = static_cast<VideoImageFrame *>(arg);
        char url[2048];
        pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
        pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-       snprintf(url, sizeof(url), "%s?frame=%li&w=%d&h=%di&file=%s&format=bgra",
+       snprintf(url, sizeof(url), "%s?frame=%li&w=%d&h=%d&file=%s&format=bgra",
          vif->get_video_server_url().c_str(),
          (long int) vif->get_req_frame(), vif->get_width(), vif->get_height(),
          vif->get_video_filename().c_str()
@@ -210,7 +210,7 @@ http_get_thread (void *arg) {
        int timeout = 1000; // * 5ms -> 5sec
        char *res = NULL;
        do {
-               res=a3_curl_http_get(url, &status);
+               res = ArdourCurl::http_get (url, &status, false);
                if (status == 503) Glib::usleep(5000); // try-again
        } while (status == 503 && --timeout > 0);
 
@@ -234,7 +234,7 @@ VideoImageFrame::http_download_done (char *data){
        if (!data) {
                /* Image request failed (HTTP error or timeout) */
                img = image->get_image();
-               fill_frame(128, 0, 0);
+               fill_frame (128, 0, 0);
                draw_x();
                cut_rightend();
                draw_line();
@@ -261,7 +261,7 @@ VideoImageFrame::http_download_done (char *data){
 
 
 void
-VideoImageFrame::http_get(framepos_t fn) {
+VideoImageFrame::http_get (samplepos_t fn) {
        if (pthread_mutex_trylock(&request_lock)) {
                pthread_mutex_lock(&queue_lock);
                queued_request=true;
@@ -284,7 +284,7 @@ VideoImageFrame::http_get(framepos_t fn) {
 }
 
 void
-VideoImageFrame::http_get_again(framepos_t /*fn*/) {
+VideoImageFrame::http_get_again(samplepos_t /*fn*/) {
        pthread_mutex_lock(&queue_lock);
        queued_request=false;
        req_video_frame_number=want_video_frame_number;