remove duplicate std limit + format macro defs
[ardour.git] / tools / session_exchange.py
index 825476c9673ce486b42c143c35798be283cea4f7..b296e759c006fb2b2715ed973770ba2fcb6c7afe 100755 (executable)
@@ -26,6 +26,8 @@ import string
 import sys
 import xml.dom.minidom
 
+v2paths = True
+
 def get_header_size(filename):
        size = 0
        file = open(filename, 'r')
@@ -111,6 +113,7 @@ class Data(object):
                sessions[session_name]['collabs'][collab_name]['sounds'] = []
                sessions[session_name]['collabs'][collab_name]['ip'] = ip_address
                sessions[session_name]['collabs'][collab_name]['port'] = port
+               sessions[session_name]['collabs'][collab_name]['v2paths'] = True
                self._data['sessions'] = sessions
                
                client = ExchangeClientFactory(session_name, collab_name, None, self.debug_mode)
@@ -129,6 +132,11 @@ class Data(object):
                sessions[session_name]['collabs'][self._data['user']] = {}
                sessions[session_name]['collabs'][self._data['user']]['snaps'] = []
                sessions[session_name]['collabs'][self._data['user']]['sounds'] = []
+               if os.path.isdir (os.path.join (session_path,'sounds')):
+                       sessions[session_name]['collabs'][self._data['user']]['v2paths'] = False
+                       v2paths = False
+               else:
+                       sessions[session_name]['collabs'][self._data['user']]['v2paths'] = True
                
                self._data['sessions'] = sessions
                
@@ -139,7 +147,7 @@ class Data(object):
                
                session_path = sessions[session_name]['path']
                sessions[session_name]['collabs'][self._data['user']]['snaps'] = self._scan_snapshots(session_path)
-               sessions[session_name]['collabs'][self._data['user']]['sounds'] = self._scan_sounds(session_path)
+               sessions[session_name]['collabs'][self._data['user']]['sounds'] = self._scan_sounds(session_name)
                
                self._data['sessions'] = sessions
                
@@ -148,16 +156,18 @@ class Data(object):
                print self._data['sessions']
        
        def create_session(self, session_path):
+               sessions = self._data['sessions']
+
+               session_name = session_path[session_path.rfind('/', 0, len(session_path)-2)+1: ]
                try:
                        os.mkdir(session_path)
-                       os.mkdir(session_path+"/sounds")
+                       os.mkdir(os.path.join (session_path,'interchange'))
+                       os.mkdir(os.path.join (session_path,'interchange',session_name))
+                       os.mkdir(os.path.join (session_path,'interchange',session_name,'audiofiles'))
                except OSError:
                        raise_error("Could not create session directory", g_display.window)
                        return
                
-               sessions = self._data['sessions']
-               
-               session_name = session_path[session_path.rfind('/', 0, len(session_path)-2)+1: ]
                sessions[session_name] = {}
                sessions[session_name]['path'] = session_path
                sessions[session_name]['collabs'] = {}
@@ -229,8 +239,15 @@ class Data(object):
                return snaps
        
        def _scan_sounds(self, session):
+               sessions = self._data['sessions']
+
                sounds = []
-               files = os.listdir(session+'/sounds')
+               if v2paths:
+                       print session
+                       print os.path.join (sessions[session]['path'],'interchange', session, 'audiofiles')
+                       files = os.listdir(os.path.join (sessions[session]['path'],'interchange', session, 'audiofiles'))
+               else:
+                       files = os.listdir(os.path.join (session,'sounds'))
                pattern = re.compile(r'\.peak$')
                for file in files:
                        if not pattern.search(file):
@@ -313,7 +330,7 @@ class ExchangeServer (LineReceiver):
                                self.error("snapshot: " + data + " doesn't exist on server")
                elif self.state == "SOUNDFILE" or self.state == "SOUNDFILE_HEADER":
                        if g_data.get_sounds(self.session_name, g_data.get_user()).count(data):
-                               filename = g_data.get_session_path(self.session_name)+"/sounds/"+data
+                               filename = g_data.get_session_path(self.session_name)+"/interchange/"+self.session_name+"/audiofiles/"+data
                                print filename
                                if self.state == "SOUNDFILE":
                                        self.sendLine(str(os.stat(filename).st_size))
@@ -441,7 +458,7 @@ class ExchangeClient (LineReceiver):
                                self.received = 0
                        elif self.state == "SOUNDFILE" or self.state == "SOUNDFILE_HEADER":
                                self.setRawMode()
-                               self.filename = g_data.get_session_path(self.session_name)+'/sounds/'+self.sounds[self.sound_index]
+                               self.filename = g_data.get_session_path(self.session_name)+"/interchange/"+self.session_name+"/audiofiles/"+self.sounds[self.sound_index]
                                self.file = open(self.filename, 'w')
                                self.received = 0
                elif self.state == "ERROR":
@@ -755,21 +772,21 @@ class ArdourShareWindow(object):
                #need to hold a reference to the item_factory or the menubar will disappear.
                self.item_factory = gtk.ItemFactory(gtk.MenuBar, '<main>', accel_group)
                self.item_factory.create_items(menu_items, self.window)
-               main_box.pack_start(self.item_factory.get_widget('<main>'), gtk.FALSE)
+               main_box.pack_start(self.item_factory.get_widget('<main>'), False)
                
                pane1 = gtk.HPaned()
                pane2 = gtk.HPaned()
-               pane1.pack2(pane2, gtk.TRUE, gtk.FALSE)
+               pane1.pack2(pane2, True, False)
                
                scroll1 = gtk.ScrolledWindow()
                scroll1.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-               pane1.pack1(scroll1, gtk.TRUE, gtk.FALSE)
+               pane1.pack1(scroll1, True, False)
                scroll2 = gtk.ScrolledWindow()
                scroll2.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-               pane2.pack1(scroll2, gtk.TRUE, gtk.FALSE)
+               pane2.pack1(scroll2, True, False)
                scroll3 = gtk.ScrolledWindow()
                scroll3.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-               pane2.pack2(scroll3, gtk.TRUE, gtk.FALSE)
+               pane2.pack2(scroll3, True, False)
                
                self.session_model = gtk.ListStore(gobject.TYPE_STRING)
                view1 = gtk.TreeView(self.session_model)
@@ -797,10 +814,10 @@ class ArdourShareWindow(object):
                self.snap_selection.connect("changed", self.cb_snap_selection_changed)
                scroll3.add(view3)
                
-               main_box.pack_start(pane1, gtk.TRUE, gtk.TRUE)
+               main_box.pack_start(pane1, True, True)
                
                self.status_bar = gtk.Statusbar()
-               main_box.pack_start(self.status_bar, gtk.FALSE)
+               main_box.pack_start(self.status_bar, False)
                self._status_cid = self.status_bar.get_context_id('display')
                self._status_mid = ''