=== libs/ardour/ardour/osc.h
==================================================================
--- libs/ardour/ardour/osc.h	(revision 1269)
+++ libs/ardour/ardour/osc.h	(local)
@@ -54,12 +54,13 @@
 	lo_server _osc_server;
 	lo_server _osc_unix_server;
 	std::string _osc_unix_socket_path;
-   std::string _osc_url_file;
+	std::string _osc_url_file;
 	pthread_t _osc_thread;
 	int _request_pipe[2];
 
 	static void * _osc_receiver(void * arg);
 	void osc_receiver();
+	void send(); // This should accept an OSC payload
 
 	bool init_osc_thread ();
 	void terminate_osc_thread ();
@@ -69,6 +70,11 @@
 
 	void session_going_away ();
 
+	// Handlers for "Application Hook" signals
+	void session_loaded( ARDOUR::Session& );
+	void session_exported( std::string, std::string );
+	// end "Application Hook" handles
+
 	std::string get_server_url ();
 	std::string get_unix_server_url ();
 
=== libs/ardour/ardour/session.h
==================================================================
--- libs/ardour/ardour/session.h	(revision 1269)
+++ libs/ardour/ardour/session.h	(local)
@@ -594,6 +594,7 @@
 	int start_audio_export (ARDOUR::AudioExportSpecification&);
 	int stop_audio_export (ARDOUR::AudioExportSpecification&);
 	void finalize_audio_export ();
+	static sigc::signal<void, std::string, std::string> Exported;
 
 	void add_source (boost::shared_ptr<Source>);
 	void remove_source (boost::weak_ptr<Source>);
=== libs/ardour/osc.cc
==================================================================
--- libs/ardour/osc.cc	(revision 1269)
+++ libs/ardour/osc.cc	(local)
@@ -401,6 +401,10 @@
 {
 	session = &s;
 	session->GoingAway.connect (mem_fun (*this, &OSC::session_going_away));
+
+	// "Application Hooks"
+	session_loaded( s );
+	session->Exported.connect( mem_fun( *this, &OSC::session_exported ) );
 }
 
 void
@@ -409,6 +413,21 @@
 	session = 0;
 }
 
+// "Application Hook" Handlers //
+void
+OSC::session_loaded( Session& s ) {
+	lo_address listener = lo_address_new( NULL, "7770" );
+	lo_send( listener, "/session/loaded", "ss", s.path().c_str(), s.name().c_str() );
+}
+
+void
+OSC::session_exported( std::string path, std::string name ) {
+	lo_address listener = lo_address_new( NULL, "7770" );
+	lo_send( listener, "/session/exported", "ss", path.c_str(), name.c_str() );
+}
+
+// end "Application Hook" Handlers //
+
 /* path callbacks */
 
 int 
=== libs/ardour/session.cc
==================================================================
--- libs/ardour/session.cc	(revision 1269)
+++ libs/ardour/session.cc	(local)
@@ -113,6 +113,8 @@
 sigc::signal<void> Session::StartTimeChanged;
 sigc::signal<void> Session::EndTimeChanged;
 
+sigc::signal<void, std::string, std::string> Session::Exported;
+
 int
 Session::find_session (string str, string& path, string& snapshot, bool& isnew)
 {
=== libs/ardour/session_export.cc
==================================================================
--- libs/ardour/session_export.cc	(revision 1269)
+++ libs/ardour/session_export.cc	(local)
@@ -454,6 +454,8 @@
 	spec.freewheel_connection.disconnect ();
 	spec.clear (); /* resets running/stop etc */
 
+	Exported( spec.path, name() );
+
 	return 0;
 }
 
